有没有保证用random.setstate()或random.seed()初始化的带有随机生成器的pyhon2/python3脚本会在不同版本和平台上产生相同的伪随机性序列?(例如python 3.1 on Mac , the same as python 3.2 on Linux 64-bit)
这个问题是关于两个的: python2和python3,假设python3脚本可以在python3解释器上运行,反之亦然。
根据,当我省略可选关键字参数random时,默认情况下使用相同的函数random.random,所以当我给它相同的函数生成随机数时,应该没有区别。我检查了Python3文件夹中的shuffle函数的各个源(shuffle vs. . Python3),发现如果我使用random关键字的函数显式调用Python3版本,它们的行为方式是相同的。如果我省略了这个参数,Python3将使用助手函数_randbelow,因此应该有解决问题的根源。我不明白为什么Python3使用_randbelow
随机种子应该被设置为42。第一个参数应该对应于np.randint的大小-值从0到10。第二个参数是一个整数,您可以将随机值乘以。,第三个参数是将乘法结果索引的值。将索引的整数打印为“您的随机值为k”如果第三个值大于第一个值,程序就不应该崩溃;它不应该在屏幕上打印任何东西。random value is {random_value}") pass
测试用例示例:
python3r
我正在为Python3编写包;对于我自己控制的代码来说,这是相当可行的--但是有许多“在野外”的脚本,如果/当组织默认解释器被拉到3.x时,这些脚本就会中断。典型情况如下:#!/usr/bin/env python # By manipulating the environment I will ...# ... eventually switch this to pick up python3
import company.package# This