# 9 `whrandom` -- 擬似乱数生成器

リリース 2.1 で撤廃されました。 `random` を代りに使ってください。

注意: Python 2.1 以前のリリースでは、このモジュールは `random` モジュールの実装における一部でした。 現在はもう使われていません。このモジュールを直接使わないで ください; 代わりに `random` を使ってください。 This module was an implementation detail of the

このモジュールは Wichmann-Hill による擬似乱数生成器クラスを実装します。 このクラスはまた、 `whrandom` と名づけられています。 `whrandom` クラスのインスタンスは 節で記述されている乱数生成器インタフェース (Random Number Generator インタフェース) に準拠しています。 このモジュールではまた、Wichmann-Hill アルゴリズムに特有の 以下のメソッドを提供しています:

`seed`( | [x, y, z])

  整数 x、y、z から乱数生成器を初期化します。 このモジュールが最初に取り込まれたときに、乱数は現在の時刻から 取り出された値で初期化されます。 x、y、および z が省略されるか `0` の場合、 乱数のシードは現在のシステム時刻から計算されます。引数のうち 3 つ全てではなく、1 または 2 個だけが `0` の場合、ゼロ に鳴っている値は 1 に置き換えられます。このことにより、一見して 異なるシード値が同じ値になってしまい、乱数生成器から生成される 擬似乱数列もこれに対応します。

`choice`( | seq)

  空でないシーケンス seq からランダムに要素を選んで返します。

`randint`( | a, b)

  `a<=N<=b` であるような整数の乱数 N を返します。

`random`( | )

  範囲 [0.0 ... 1.0) から次の浮動小数点数の乱数 N を返します。

`seed`( | x, y, z)

  整数 x、y、z から乱数生成器を初期化します。 このモジュールが最初にインポートされた際、乱数は現在の時刻から 取り出された値で初期化されます。

`uniform`( | a, b)

  `a<=N<b` であるようなランダムな実数 N を返します。

`whrandom` モジュールがインポートされた時、`whrandom` クラスのインスタンスも生成され、このインスタンスのメソッドを モジュールレベルで利用できるようにします。従って、 `N = whrandom.random()` を以下のコード:

    generator = whrandom.whrandom()
    N = generator.random()

のように書くこともできます。

乱数生成器の別々のインスタンスを使った場合、擬似乱数の列 は独立になるので注意してください。

参考:

`random`:モジュール
  Generators for various random distributions and documentation for the Random Number Generator interface.

Wichmann, B. A. & Hill, I. D., ``Algorithm AS 183: An efficient and portable pseudo-random number generator'', Applied Statistics 31 (1982) 188-190.