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)
.