11

標準ライブラリのさまざまな乱数関数を見ると、長さがn ビットの数値を生成する方法はありません。

これを達成するために使用できる効率的な機能はありますか?

4

2 に答える 2

13
>>> import random
>>> random.getrandbits(10)
688L
于 2013-05-11T11:47:23.073 に答える
9

はいあります:

>>> import random
>>> random.getrandbits(1)
0L
>>> random.getrandbits(100)
31456252575598781139680104123L
>>> help(random.getrandbits)
Help on built-in function getrandbits:

getrandbits(...)
    getrandbits(k) -> x.  Generates a long int with k random bits.

ドキュメントから:

random.getrandbits(k)ランダムなビット
を持つ python long int を返します。kこのメソッドは MersenneTwister ジェネレーターで提供されており、他のジェネレーターでも API のオプション部分として提供されている場合があります。利用可能な場合、getrandbits()任意randrange()の大きな範囲を処理できます。

于 2013-05-11T11:48:18.853 に答える