我正在关注在线fortran教程,并使用addlabelstolabelable
和rand(1)
获得了本应生成随机数的代码相同的数字。
这是我正在关注的教程: https://youtu.be/__2UgFNYgf8?t=927
我们的代码几乎相同,但是为了完整起见,我将在此处重新发布:
call random_number
如您所见,代码中的唯一区别(据我所知)是,我添加了一行额外内容来打印program fortrantutorial
real :: float_num = 1.111111111111111
real :: float_num2 = 1.111111111111111
double precision :: dbl_num = 1.1111111111111111d+0
double precision :: dbl_num2 = 1.1111111111111111d+0
real :: rand(1)
integer :: low = 1, high = 10
print "(f17.15)", float_num + float_num2
print "(f17.15)", dbl_num + dbl_num2
call random_number(rand)
print "(f7.5)", rand
print "(i2)", low + floor((high + 1 - low)*rand)
end program fortrantutorial
本身。
此代码的输出始终为:
rand
但是运行本教程的那个家伙正在获得各种各样的随机数; 5、2、4、9 ...
尽管代码实际上是相同的,但我不明白为什么他得到的数字不同于我。我有什么遗漏可以选择新种子吗?为什么这对于他的代码来说是自动的,而不是我的代码?