diff -urN Python-2.3.4/Doc/lib/librandom.tex Python-2.4/Doc/lib/librandom.tex --- Python-2.3.4/Doc/lib/librandom.tex 2002-12-30 08:03:38.000000000 +0900 +++ Python-2.4/Doc/lib/librandom.tex 2004-09-28 12:04:22.000000000 +0900 @@ -35,6 +35,10 @@ サブクラス化することもできます: この場合、メソッド \method{random()}、 \method{send()}、\method{getstate()}、\method{setstate()}、および \method{jumpahead()} をオーバライドしてください。 +オプションとして、新しいジェネレータは \method{getrandombits()} +メソッドを提供できます --- これにより \method{randrange()} メソッドが +任意の、大きな範囲を超える集合を作成できるようになります。 +\versionadded[\method{getrandombits()} メソッド]{2.4} サブクラス化の例として、\module{random} モジュールは \class{WichmannHill} クラスを提供します。このクラスは Python だけで書かれた代替生成器を実装し @@ -52,6 +56,12 @@ とり得ます。\var{x} が省略されるか \code{None} の場合、現在のシステム 時間が使われます; 現在のシステム時間はモジュールが最初にインポート された時に乱数生成器を初期化するためにも使われます。 + +乱数の発生源をオペレーティングシステムが提供している場合、システム時刻の +代わりにその発生源が使われます(詳細については \function{os.urandom()} +関数を参照)。\versionchanged[通常、オペレーティングシステムのリソースは +使われません]{2.4} + \var{x} が \code{None} でも、整数でも長整数でもない場合、 \code{hash(\var{x})} が代わりに使われます。 \var{x} が整数または長整数の場合、\var{x} が直接使われます。 @@ -86,6 +96,15 @@ {2.3} \end{funcdesc} +\begin{funcdesc}{getrandbits}{k} +乱数ビット\var{k} とともにPyhonの\class{long} intを返します。 +このメソッドはMersenneTwister生成器で提供されており、その他の +乱数生成器でもオプションのAPIとして提供されているかもしれません。 +このメソッドが使えるとき、\method{randrange()}メソッドは大きな +範囲を扱えるようになります。 +\versionadded{2.4} +\end{funcdesc} + 整数用の関数: \begin{funcdesc}{randrange}{\optional{start,} stop\optional{, step}} @@ -106,6 +125,7 @@ \begin{funcdesc}{choice}{seq} 空でない配列 \var{seq} からランダムに要素を返します。 ++ \var{seq} が空のときは、 \exception{IndexError} が送出されます。 \end{funcdesc} \begin{funcdesc}{shuffle}{x\optional{, random}} @@ -158,16 +178,6 @@ 0 から 1 の値を返します。 \end{funcdesc} -\begin{funcdesc}{cunifvariate}{mean, arc} -円形一様分布です。\var{mean} は平均角度で、\var{arc} は平均角を -中心とした分布の範囲です。値は両方ともラジアンで表され、0 から -\emph{pi} の値をとることができます。返される値の範囲は -\code{\var{mean} - \var{arc}/2} から \code{\var{mean} + -\var{arc}/2} になりますが、 0 から \emph{pi} の間に正規化されます。 - - \deprecated{2.3}{\code{(\var{mean} + \var{arc} * (random.random() - 0.5)) \% math.pi} を代わりに使ってください。} -\end{funcdesc} - \begin{funcdesc}{expovariate}{lambd} 指数分布です。\var{lambd} は平均にしたい値で 1.0 を割ったものです。 (このパラメタは ``lambda'' と呼ぶべきなのですが、Python の予約語 @@ -231,6 +241,18 @@ \function{whseed} は、引数に与えた整数が異なっても、内部状態が異なること を保障しません。取り得る内部状態の個数が 2**24 以下になる場合もあります。 \end{funcdesc} + +\begin{classdesc}{SystemRandom}{\optional{seed}} +オペレーティングシステムの提供する発生源によって乱数を生成する +\function{os.urandom()}関数を使うクラスです。 +すべてのシステムで使えるメソッドではありません。 +ソフトウェアの状態に依存してはいけませんし、一連の操作は再現 +不能です。それに応じて、\method{seed()} と \method{jumpahead()} +メソッドは何の影響も及ぼさず、無視されます。 \method{getstate()} と ++\method{setstate()} メソッドが呼び出されると、例外 +\exception{NotImplementedError}が送出されます。 +\versionadded{2.4} +\end{classdesc} \begin{seealso} \seetext{M. Matsumoto and T. Nishimura, ``Mersenne Twister: A