Náhodná čísla
Generování náhodného čísla
Gernerování náhodných čísel je důležité pro mnoho algoritmů. Fortran má pro generování náhodného čísla subroutinu call random_number(). Argumentem této subroutiny je proměnná nebo pole typu real do které se náhodné číslo vygeneruje. Náhodná proměnná “ nabývá hodnot v intervalu 0.0 ≤ _x_<1.0.
V některých kompilátorech se budou při každém spuštění programu generovat pořát stejná čísla. Tomu lze zabránit příkazem call random_seed(), který umístíte za deklaraci proměnných.
program priklad_32
implicit none
real :: g
call random_number(g)
do while(g > 0.1) ! cyklus pobezi dokud nevygenerujeme cislo mensi nez 0.1
write(*,*) g
call random_number(g)
end do
end program
transformace náhodného čísla
Pokud potřebujeme náhodné číslo y s rovnoměrným rozdělením typu real na intervalu a ≤ _y_<b. Získame jej z náhodného čísla x (0.0 ≤ _x_<1.0), tak že y = x*(b-a)+a.
Pokud potřebujeme náhodné číslo z s rovnoměrným rozdělením typu integer na intervalu c ≤ _z_<d. Získame jej z náhodného čísla x (0.0 ≤ _x_<1.0), tak že z = int(x*(d-c+1)+c).