我有一个使用random.Random和random.SystemRandom的python脚本。 我使用SystemRandom对象来播种Random对象。来自随机对象的值在模拟中使用,并且打印种子值以供用户重现结果。为什么Python的getrandbits()永远不会产生负数?
但是,我注意到,如果我调用getrandbits(64),它们中的任何一个都不会显示数字为负数。它总是一个正整数。
由于随机性,我认为接近50%的时间会产生负值(通过将最左边的位设置为1)。
为什么我的期望不正确?
我的实现:
sr = random.SystemRandom()
seed = sr.getrandbits(64)
seedgen = random.Random(seed)
...
seedgen.getrandbits(64)
你系统上的C'long'有多大? –
@MadPhysicist 8个字节。 – Anro