Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Fortran > [General] Генерация случайных чисел


Автор: franchesko 19.7.2008, 08:36
Помогите пожалуйста. подскажите как заполнить двумерный массив случайными числами из заданного интервала чисел? допустим от 1 до 9? можно ли это сделать используя random???

Автор: marcusmae 19.7.2008, 14:14
Код

program GenRand

integer :: i, timeArray(3)
integer, parameter :: count = 10
real(8) :: range
real(8), parameter :: rangeMin = 1, rangeMax = 9

! Initialize random seed.
call itime(timeArray)
i = rand (sum(timeArray))

! Generate 10 ranged random numbers.
range = rangeMax - rangeMin 
do i = 1, count
  print *, rand(0) * range + rangeMin
end do

print *, 'Press Enter...'
read *

end program GenRand


Результат :

Цитата

   4.21038365364075
   1.43283370137215
   6.31560850143433
   6.74582481384277
   5.70072698593140
   5.79226350784302
   8.36268424987793
   5.12997293472290
   6.92398452758789
   5.65528631210327
 Press Enter...


Функция rand генерит псевдослучайное число на интервале [0,1]. Умножая на длину отрезка и прибавляя минимальное значение, отображаем [0,1] в требуемый интервал, например, [1,9]. В самом начале бросается seed от системного времени - это нужно, чтобы каждый раз случайная последовательность была новой.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)