你能用python复制matlab旧的伪随机数生成器吗?

2024-06-16 09:05:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在python中分析随机数的随机流。具体地说,我正在研究以下来自matlab的伪随机流:mt19937ar(Mersenne Twister)、mcg16807(一个LCG)和swb2712(一个改进的带借用生成器的减法)。这里是matlab的prng的reference page。你知道吗

我知道Mersenne Twister是python中使用的随机性的默认生成器,我相信numpy,mcg16807也应该是可复制的,因为它是LCG,但是我不确定如何在python中复制swb2712,因为它可能是matlab专有的,我找不到源代码。我正在尝试做的是可能的还是我应该求助于使用matlab并结束这一天?你知道吗


Tags: numpy源代码pagelcgreferencematlabmersenne随机性
1条回答
网友
1楼 · 发布于 2024-06-16 09:05:21

从这个博客来看,它似乎是基于George Marsaglia的ziggurat算法的变体(生成正态分布随机数) https://blogs.mathworks.com/cleve/2015/05/18/the-ziggurat-random-normal-generator/

两个有用的参考资料。。。你知道吗

George Marsaglia和W.W.Tsang,“产生随机变量的ziggurat方法”,《统计软件杂志》5,1-72000 http://www.jstatsoft.org/v05/i08

Jurgen A.Doornik,“生成正态随机样本的改进的Ziggurat方法”,PDF,牛津大学纳特菲尔德学院,2005年 http://www.doornik.com/research/ziggurat.pdf

本演示还将其详细描述为swb2712:带借用生成器的修改减法,带滞后27和12。。。http://profmsaeed.org/wp-content/uploads/2009/08/MATLAB-V.ppt

希望这对你有帮助!你知道吗

相关问题 更多 >