random モジュールは、疑似乱数を生成するために使用されます。ソース コードの場所: Lib/random.py
真の乱数 (またはランダム イベント) は、特定の生成プロセス中の実験プロセスに従って動作します。分布確率はランダムに生成され、結果は予測不可能で目に見えません。コンピュータ内のランダム関数は特定のアルゴリズムに従ってシミュレートされ、結果は確実で目に見えます。この予見可能な結果の確率は 100% であると仮定できます。したがって、コンピュータのランダム関数によって生成される「乱数」はランダムではなく、疑似乱数です。
#コンピュータの擬似乱数とは、ランダムシードを一定の計算方法に従って計算した値です。したがって、計算方法と乱数の種が確かであれば、生成される乱数は固定されます。
ユーザーまたはサードパーティがランダム シードを設定しない限り、ランダム シードはデフォルトでシステム クロックから取得されます。
この Python ライブラリは下部に共通のアルゴリズムを使用しています。長期間のテストの結果、その信頼性は何とも言えませんが、パスワード関連の機能には使用しないでください。
1. 基本的な方法
random.seed(a=None, version=2)
擬似乱数生成器を初期化します。 a が指定されていないか、a=None の場合、システム時刻がシードとして使用されます。 a が整数の場合、それがシードとして使用されます。
random.getstate()
現在のジェネレータの内部状態のオブジェクトを返します
random.setstate(state)
前の値を渡しますエクスプロイト getstate メソッドによって取得された状態オブジェクトは、ジェネレーターをこの状態に復元します。
random.getrandbits(k)
K ビット以下の Python 整数 (10 進数) を返します。たとえば、k=10 の場合、結果は 0~2^10 の整数になります。
2. 整数のメソッド
random.randrange(stop) random.randrange(start, stop[, step])
は、choice(range(start, stop, step)) と同等ですが、実際には range オブジェクトを作成しません。
random.randint(a, b)
a <= N <= b の場合、ランダムな整数 N を返します。 randrange(a, b 1)
3. シーケンス クラス構造のメソッド
random.choice(seq)
空にしない ランダムに選択シーケンス seq の要素。 seq が空の場合、IndexError 例外がポップアップします。
random.choices(population,weights=None, *,cum_weights=None, k=1)
バージョン 3.6 の新機能。 K 個の要素が母集団クラスターからランダムに選択されます。 Weights は相対的な重みリスト、cum_weights は累積的な重みであり、2 つのパラメータは同時に存在することはできません。
random.shuffle(x[, random])
シーケンス x 内の要素の順序をランダムにシャッフルします。可変シーケンスにのみ使用できます。不変シーケンスの場合は、以下のsample()メソッドを使用してください。
random.sample(population, k)
母集団サンプルから K 個の非繰り返し要素をランダムに抽出するか、新しいシーケンスを形成するように設定します。繰り返しのないランダムなサンプリングによく使用されます。返されるのは、元のシーケンスを破壊しない新しいシーケンスです。整数範囲から特定の数の整数をランダムに抽出するには、sample(range(10000000), k=60) のようなメソッドを使用します。これは非常に効率的でスペースを節約できます。 k が母集団の長さより大きい場合、ValueError 例外がポップアップします。
4. True Value Distribution
ランダム モジュールの最もハイエンドな関数が実際にここにあります。
random.random()
左閉と右開の間の浮動小数点数を返します [0.0, 1.0)
random.uniform(a, b)
a と b の間の浮動小数点数を返します。 a>b の場合、b と a の間の浮動小数点数になります。ここでの a と b の両方が結果に表示される場合があります。
random.triangular(low, high, mode)
low
random.betavariate(alpha, beta)
ベータ版の配布。返される結果は 0 ~ 1 です。
random.expovariate(lambd)
指数分布
random.gammavariate(alpha, beta)
GA Horse分布
random.gauss(mu, sigma)
ガウス分布
random.lognormvariate(mu, sigma)
対数正規分布
random.normalvariate(mu, sigma)
正規分布
random.vonmisesvariate(mu, kappa)
カッパ分布
random.paretovariate(alpha) )
パレート分布
random.weibullvariate(alpha, beta)
5. オプションのジェネレーター
class random.SystemRandom( [seed])
os.urandom() メソッドを使用して乱数を生成するクラス。ソース コードはオペレーティング システムによって提供されます。すべてのシステムがサポートしているわけではありません
以上がランダム モジュールは Python のどのバージョンに含まれていますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。