Fortran90及其后续版本引入了random_seed和random_number两个标准的函数来生成随机数。 1. 解释Fortran中的随机数生成函数 random_seed:用于设置随机数生成的种子。种子决定了随机数序列的起始点,因此相同的种子会产生相同的随机数序列。如果不设置种子,Fortran会使用默认的种子(通常是基于系统时间的),这样每次运行程序时...
INTEGER SEED, NUMBER, GUESS PRINT *, 'ENTER A RANDOM NUMBER SEED' READ *, SEED CALL SRAND(SEED) NUMBER = INT( RAND(0) * 100 + 1 ) PRINT *, 'GUESS A NUMBER BETWEEN 1 AND 100' 10 READ *, GUESS IF (GUESS.LT.NUMBER) THEN PRINT *, 'TOO LOW' ELSE IF (GUESS.GT.NUMBER) THEN...
INTEGER SEED, NUMBER, GUESS PRINT *, 'ENTER A RANDOM NUMBER SEED' READ *, SEED CALL SRAND(SEED) NUMBER = INT( RAND(0) * 100 + 1 ) PRINT *, 'GUESS A NUMBER BETWEEN 1 AND 100' 10 READ *, GUESS IF (GUESS.LT.NUMBER) THEN PRINT *, 'TOO LOW' ELSE IF (GUESS.GT.NUMBER) THEN...
integer :: random_seed, i, n real :: random_array(10) ! 设置随机数种子 call random_seed() ! 生成 -10 到 10 之间的随机数 n = 10 do i = 1, n call random_number(random_array(i)) random_array(i) = (random_array(i) - 0.5) * 20 end do ! 显示生成的随机数 write (*, *)...
real :: my_random real :: t len=ubound-lbound !计算范围大小 call random_number(t) !t是0-1之间的随机数 my_random=lbound+len*t return end 注意:在循环外call random_seed() 3.产生一个随机数数组,只需加一个循环即可 function my_random (lbound,ubound) implicit none real :: lbound,ubound...
random_number(x) 产生一个0到1之间的随机数(x可以是向量),但是每次总是那几个数。 用了random_seed ()后,系统根据日期和时间随机地提供种子,使得随机数更随机了。 program random implicit none real :: x call random_seed () ! 系统根据日期和时间随机地提供种子 ...
random_number(x) 产生一个0到1之间的随机数(x可以是向量),但是每次总是那几个数。 用了random_seed ()后,系统根据日期和时间随机地提供种子,使得随机数更随机了。 program random implicit none real :: x call random_seed () ! 系统根据日期和时间随机地提供种子 ...
伪随机数是一定的,毕竟随机数的算法是确定的。但random_seed是根据系统的时间产生种子,因此随机性已经很好了。在循环外call random_seed(),在循环内call random_number(a),就生成了随机数a。Fortran的Help里面就是这样做的。
先random_seed 然后 int ( random_number * 75 + 1 ) 就可以了
1.0-1之间均匀分布的随机数random_number(x) 产生一个0到1之间的随机数(x可以是向量),但是每次总是那几个数。 用了random_seed ()后,系统根据日期和时间随机地提供种子,使得随机数更随机了。 program random implicit none real :: x call random_seed () ! 系统根据日期和时间随机地提供种子 ...