ホームページ  >  記事  >  バックエンド開発  >  ランダム モジュールは Python のどのバージョンに含まれていますか?

ランダム モジュールは Python のどのバージョンに含まれていますか?

anonymity
anonymityオリジナル
2019-06-17 09:50:133252ブラウズ

random モジュールは、疑似乱数を生成するために使用されます。ソース コードの場所: Lib/random.py

真の乱数 (またはランダム イベント) は、特定の生成プロセス中の実験プロセスに従って動作します。分布確率はランダムに生成され、結果は予測不可能で目に見えません。コンピュータ内のランダム関数は特定のアルゴリズムに従ってシミュレートされ、結果は確実で目に見えます。この予見可能な結果の確率は 100% であると仮定できます。したがって、コンピュータのランダム関数によって生成される「乱数」はランダムではなく、疑似乱数です。

ランダム モジュールは Python のどのバージョンに含まれていますか?

#コンピュータの擬似乱数とは、ランダムシードを一定の計算方法に従って計算した値です。したがって、計算方法と乱数の種が確かであれば、生成される乱数は固定されます。

ユーザーまたはサードパーティがランダム シードを設定しない限り、ランダム シードはデフォルトでシステム クロックから取得されます。

この 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。