Přeskočit na obsah

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