標準ライブラリのさまざまな乱数関数を見ると、長さがn ビットの数値を生成する方法はありません。
これを達成するために使用できる効率的な機能はありますか?
標準ライブラリのさまざまな乱数関数を見ると、長さがn ビットの数値を生成する方法はありません。
これを達成するために使用できる効率的な機能はありますか?
>>> import random
>>> random.getrandbits(10)
688L
はいあります:
>>> 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()
の大きな範囲を処理できます。