我参与了一个将在Mac和Windows上运行的python应用程序,使用py2app和py2exe打包成可执行文件.所有应用程序始终生成相同的随机数非常重要.所以随机模块总是得到相同的种子.
但是,在Windows和Mac上,random.shuffle()的结果似乎非常不同.
有没有办法确保始终生成相同的随机数?
代码非常令人兴奋:
<code>import random
random.seed("ladygaga")
swaplist_odd = [n for n in range(len(clipboard)) if n % 2 != 0]
swaplist_even = [n for n in range(len(clipboard)) if n % 2 == 0]
random.shuffle(swaplist_odd)
random.shuffle(swaplist_even)
</code>
想法是洗牌缓冲区,并能够通过再次洗牌重新创建原始缓冲区.
如果进程保留在一个操作系统中,则没有问题.一旦将缓冲区文件复制到另一个操作系统,原始文件的重新创建就会失败.
解决方法:
你有可能使用两个不同版本的Python吗?
根据documentation,Python从使用Wichmann-Hill算法转向使用Mersenne Twister生成从2.3开始的伪随机数.
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!