主题:fortran90,随机数的生成
program ex0825
implicit none
interface
function random10(a,b)
implicit none
real::a,b
real::random10(10)
end function
end interface
real::a(10)
call RANDOM_SEED !启动随机数生成器
a=random10(1.0,10.0) !生成10个1.0到10.0之间的随机数
write(*,"(10f6.2)")a !输出数组a的内容
end
function random10(a,b)
implicit none
real::a,b
real::len
real::random10(10)
real t
integer i
len=b-a
do i=1,10
call RANDOM_NUMBER(t) !t是0-1之间的随机数
random10(i)=a+len*t !把t转换成a~b间的随机数
end do
return
end
前面的都能看懂,不明白的是为什么前面call random_seed已经生成了10个随机数,子程序中还要通过生成t,转化成a~b间的随机数。求大神帮忙,谢谢!