random - random_number 跨平台的行为
问题描述
这是我用来生成随机数的程序:
program randtest
implicit none
real rands(5)
call random_number(rands)
print*, rands
end program randtest
请注意,我没有使用种子进行初始化,random_seed
因为这是我的意图。我对伪随机数生成器的了解,就像 Fortran 使用的那样,它们从默认提供或选择的种子值开始。所以如果种子没有改变,产生的随机数序列保持不变。
但是,当我使用gfortran在两个不同的平台上运行此代码时,我看到了不同的行为。
- 在Ubuntu 18.04 LTS、gfortran 7.5.0 上,每次我运行编译后的代码时,它都会生成不同的数字序列。
- 在Windows 10 (MinGW) gfortran 6.3.0 上,无论我运行多少次,它都会生成相同的序列。
关于为什么会发生这种情况的任何见解?是不是因为在 Ubuntu 中,每次运行时默认选择不同的种子?如果是这样,为什么,当两者都使用gfortran编译时?
解决方案
推荐阅读
- server - 奇点容器看不到文件
- javascript - 如何将 aws-cdk typescript 堆栈类构造函数中的定义提取到单独的文件中?
- javascript - 在 JavaScript 中验证数组过滤时间的问题
- kubernetes - 如何从 microk8s 部署访问我网络中的机器
- reactjs - 必须使用 forwardRef Typescript 定义两次应用接口
- laravel - Illuminate\Database\QueryException: SQLSTATE[42S22]: Column not found: 1054 Unknown column
- r - 根据行数向列添加值
- java - 在 Spring Boot 和 Angular 中使用 websockets 向客户端发送触发器
- excel - 将数据复制到新工作表并重新组织它的最佳方法(VBA)
- react-native - 如何在android中添加角色react-native sdk