为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

米脂 2021-11-09 16:33:39
我正在尝试在 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

希望这有帮助!


查看完整回答
反对 回复 2021-11-09
  • 1 回答
  • 0 关注
  • 198 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信