我正在尝试在python中使用不同的核心随机生成器。在阅读随机模块docs时,我发现我必须覆盖现有的random,seed,getstate和setstate方法。但我无法在随机.py模块中找到随机函数。我正在使用python 3.4。
答案 0 :(得分:0)
你能稍微详细说明吗?我还没有评论的声誉,但是当你说'不同的核心随机发生器'时你指的是改变底层结构? Python使用Mersenne Twister作为核心生成器,这是强大而有效的。
就生成随机数而言,您实际上只需使用
import random
my_random_number_between_0_and_1 = random.random()
my_random_number_between_0_and_1 # print out your new random number
您也可以使用random.seed()
,如果您没有传入种子,则使用当前系统时间,这也是伪随机数。
我希望其中一些有帮助!如果没有,请告诉我。抱歉不完全理解。
答案 1 :(得分:0)
以下是文档的说法:
如果您想使用自己设计的其他基本生成器,则类
Random
也可以进行子类化:在这种情况下,覆盖random()
,{{1} },seed()
和getstate()
方法。可选地,新生成器可以提供getrandbits()方法 - 这允许randrange()在任意大范围内产生选择。
正如评论中所指出的,这个类在C中实现.GVR编写了一个translation in py 3.2,它没有被维护但你可以用来参考语法,参数等。可以找到一个示例性的随机函数在setstate()
。