python随机数比大小_1到范围内的随机数系统最大大小总是1模2^10

我试图通过使用频率测试、运行测试和卡平方检验来找到Python(2.7.10)中可用的prng的统计特性。在

为了进行频率测试,我需要将生成的随机数转换为其二进制表示形式,然后计算1和{}的分布。我在python控制台上试验随机数的二进制表示,并观察到这种奇怪的行为:>>> for n in random.sample(xrange(1, sys.maxsize), 50):

... print '{0:b}'.format(n)

...

101101110011011001110011110110101101101101111111101000000000001

110000101001001011101001110111111110011000101011100010000000001

110111101101110011100010001010000101011111110010001110000000001

100001111010011000101001000001000011001111100000001010000000001

1111000010010011111100111110110100100011110111010000000000001

111000001011101011101110100001001001000011011001110110000000001

1000100111011000111000101010000101010100110111000100000000001

11101001000001101111110101111011001000100011011011010000000001

110011010111101101011000110011011001110001111000001010000000001

110110110110111100011111110111011111101000011001100000000001

100010010000011101011100110101011110111100001100100000000000001

10111100011010011010001000101011001110010010000010010000000001

101011100110110001010110000101100000111111011101011000000000001

1111110010110010000111111000010001101011011010101110000000001

11100010101101110110101000101101011011111101101000010000000001

10011110110110010110011010000110010010111001111001010000000001

110110011100111010100111100100000100011101100001100000000000001

100110011001101011110011010101111101100010000111001010000000001

111000101101100111110010110110100110111001000101000000000000001

111111101000010111001011111100111100011101001011010000000001

11110001111100000111010010011111010101101110111001010000000001

100001100101101100010101111100111101111001101010101010000000001

11101010110011000001101110000000001111010001110111000000000001

100111000110111010001110110101001011100101111101010000000001

100001101100000011101101010101111111011010111110111110000000001

100010010011110110111111111000010001101100111001001100000000001

110011111110010011000110101010101001001010000100011010000000001

1111011010100001001101101000011100001011001110010100000000001

110110011101100101001100111010101111001011111101100000000000001

1010001110100101001001011111000111011100001100000110000000001

1000101110010011011000001011010110001000110100100100000000001

11111110011001011100111110110111000001000100100010000000000001

101111101010000101010111111111000001100101111001011110000000001

10010010111111111100000001010010101100111001100000000000001

111110000001110010001110111101110101010110001110000000000000001

100000101101000110101010010000101101000011111010001110000000001

101001011101100011001000011010010000000111110111100010000000001

10110101010000111010110111001111011000001111001100110000000001

10110111100100100011100101001100000000101110100100010000000001

10010111110001011101001110000111011010110100110111110000000001

111011110010110111011011101011001100001000111001010100000000001

101001010001010100010010010001100111101110101111000110000000001

101011111010000101010101000110001101001001011110000000000001

1010001010111101101010111110110110000001111101101110000000001

10111111111010001000110000101101010101011010101100000000001

101011101010110000001111010100100110000011111100100100000000001

111100001101111010100111010001010010000010110110010110000000001

100111111000100110100001110101000010111111010010010000000000001

100111100001011100011000000000101100111111000111100110000000001

110110100000110111011101110101101000101110111111010110000000001

>>>

如您所见,所有数字都以0000000001结尾,即所有数字都是1 mod 2^10。为什么会这样?在

此外,当范围为1 to sys.maxsize时,也会观察到这种行为。如果将范围指定为1 to 2^40,则不会观察到这一点。我想知道这种行为的原因,以及我的代码中是否有任何错误。在

实现我正在使用的prng的随机库的文档是here。在

如果我需要提供更多信息,请告诉我。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值