首页 > 解决方案 > random_number 跨平台的行为

问题描述

这是我用来生成随机数的程序:

program randtest
    implicit none

    real rands(5)

    call random_number(rands)
    print*, rands

end program randtest

请注意,我没有使用种子进行初始化,random_seed因为这是我的意图。我对伪随机数生成器的了解,就像 Fortran 使用的那样,它们从默认提供或选择的种子值开始。所以如果种子没有改变,产生的随机数序列保持不变。

但是,当我使用gfortran在两个不同的平台上运行此代码时,我看到了不同的行为。

关于为什么会发生这种情况的任何见解?是不是因为在 Ubuntu 中,每次运行时默认选择不同的种子?如果是这样,为什么,当两者都使用gfortran编译时?

标签: randomfortrangfortranrandom-seed

解决方案


推荐阅读