我正在尝试在 python 中分析随机数的随机流。具体来说,我正在研究来自 matlab 的以下伪随机流:mt19937ar(Mersenne Twister)、mcg16807(LCG)和 swb2712(带有借位生成器的修改减法)。这是matlab 的 PRNG的参考页面。我知道 Mersenne Twister 是 python 中使用的默认随机生成器,我相信 numpy,mcg16807 也应该是可复制的,因为它是 LCG,但我不确定如何在 python 中复制 swb2712,因为它可能是 matlab 的专有和我找不到源代码。我正在尝试做的事情是可能的,还是我应该求助于使用 matlab 并称它为一天?
1 回答

30秒到达战场
TA贡献1828条经验 获得超6个赞
从这个博客来看,它似乎是基于 George Marsaglia 的 ziggurat 算法的变体(生成正态分布的随机数) https://blogs.mathworks.com/cleve/2015/05/18/the-ziggurat-random-normal -发电机/
两个有用的参考...
George Marsaglia 和 WW Tsang,“生成随机变量的 ziggurat 方法”。统计软件杂志 5, 1-7, 2000 http://www.jstatsoft.org/v05/i08
Jurgen A. Doornik,“生成正常随机样本的改进 Ziggurat 方法”。PDF,牛津大学纳特菲尔德学院,2005 年 http://www.doornik.com/research/ziggurat.pdf
该演示文稿还将其详细描述为 swb2712:Modified Subtract-with-Borrow generator,滞后 27 和 12 ... http://profmsaeed.org/wp-content/uploads/2009/08/MATLAB-V.ppt
希望这有帮助!
添加回答
举报
0/150
提交
取消