我现在在将fortran改成Julia语言,结果一直不吻合,所以我在想是不是随机数的产生出现了问题使用rand()循环产生的随机数是真正数学意义上的随机数吗?
默认的不是,默认 rand()
使用全局的梅森旋转演算法(Mersenne twister)生成器产生伪随机数。
要真随机,得用系统提供的 API:
- unix 去读
/dev/random
; - windows 参见 Cryptography API: Next Generation
简单一点用 https://www.random.org/ 的 API 就行。
fortran 与 julia 不吻合需要多注意下两边的差异,感觉大家写fortran的时候都不怎么注意数组边界问题,老一点的代码拿 gf 编译一下就出一堆警告。