Provided by: manpages-ja-dev_0.5.0.0.20221215+dfsg-1_all 
      
    
名前
       drand48, erand48, lrand48, nrand48, mrand48, jrand48, srand48, seed48, lcong48 - 一様分布する疑似乱数を生
       成する関数
書式
       #include <stdlib.h>
       double drand48(void);
       double erand48(unsigned short xsubi[3]);
       long lrand48(void);
       long nrand48(unsigned short xsubi[3]);
       long mrand48(void);
       long jrand48(unsigned short xsubi[3]);
       void srand48(long seedval);
       unsigned short *seed48(unsigned short seed16v[3]);
       void lcong48(unsigned short param[7]);
   glibc 向けの機能検査マクロの要件 (feature_test_macros(7)  参照):
       All functions shown above: _XOPEN_SOURCE
           || /* Glibc since 2.19: */ _DEFAULT_SOURCE
           || /* Glibc versions <= 2.19: */ _SVID_SOURCE
説明
       これらの関数は線形合同アルゴリズムと 48ビット整数演算を用いて 疑似乱数を生成する。
       関数 drand48()  と erand48()  は、区間 [0.0, 1.0) で 一様分布する非負の倍精度浮動小数点実数値を返す。
       関数 lrand48() と nrand48() は、区間 [0, 2^31) で一様分布する非負のロング整数を返す。
       関数 mrand48() と jrand48() は、区間 [-2^31, 2^31) で一様分布する符号付きロング整数を返す。
       関数  srand48(), seed48(), lcong48()  は初期化関数 である。 関数 drand48(), lrand48(), mrand48()  を 使用
       する前に、これらの初期化関数のいずれかを呼ぶべきである。 関数 erand48(), nrand48(),  jrand48()   は初めに
       初期化関数を呼ぶことを必要としない。
       ここで説明しているすべての関数は 48ビットの整数の シーケンス (Xi) を生成することで 機能している。生成方法
       は以下の線形合同の式による。
           Xn+1 = (aXn + c) mod m,
       ここで  n >= 0 である。 パラメーターが m = 2^48 であるため、48ビット整数演算が行われている。 lcong48() が
       呼ばれていない場合、a と c は以下の式で与えられる。
           a = 0x5DEECE66D
           c = 0xB
       関数 drand48(), erand48(), lrand48(), nrand48(), mrand48(), jrand48()  で返される値は次のようにして計算さ
       れる。 はじめに、次の48ビットの Xi が計算される。  そして、返すべきデータの型に依存した適切な  ビット数が
       Xi の上位ビットからコピーされる。 最後に、この値を返り値に変換する。
       関数  drand48(), lrand48(), mrand48()  は 最後に生成された48ビットの Xi を内部バッファーに格納する。 配列
       の形の引数 xsubi に個々の Xi の値を  格納できるような領域を確保することを、  関数  erand48(),  nrand48(),
       jrand48()  は、 呼び出し側のプログラムに要求する。 これらの関数は、はじめてそれらの関数を呼ぶ前に Xi の初
       期値を配列に 代入することで初期化される。
       初期化関数  srand48()  は、Xi の 上位32ビットを引数 seedval に設定する。 下位の16ビットは、適当に決められ
       た値である0x330Eに設定される。
       初期化関数 seed48()  は、Xi の値を、 配列の形をした引数である seed16v の中で指定された 48ビットの値に設定
       する。 Xi  の前の値は内部バッファーにコピーされ、このバッファーへのポインターが  seed48()  によって返され
       る。
       初期化関数  lcong48()  は使用者が Xi, a, c の 初期値を指定するための関数である。 配列の形をした引数の要素
       はそれぞれ、param[0-2] は Xi を、 param[3-5] は a を、param[6] は c を指定するもの である。 lcong48()  が
       呼ばれた後で、 srand48()  か seed48()  を呼ぶと、前述の a と c の 標準値が再び設定される。
属性
       この節で使用されている用語の説明については、 attributes(7) を参照。
       ┌───────────────────────┬───────────────┬────────────────────────┐
       │ インターフェース      │ 属性          │ 値                     │
       ├───────────────────────┼───────────────┼────────────────────────┤
       │ drand48(), erand48(), │ Thread safety │ MT-Unsafe race:drand48 │
       │ lrand48(), nrand48(), │               │                        │
       │ mrand48(), jrand48(), │               │                        │
       │ srand48(), seed48(),  │               │                        │
       │ lcong48()             │               │                        │
       └───────────────────────┴───────────────┴────────────────────────┘
       上記の関数は、 乱数生成に使用する状態情報をグローバルに保持する。 そのため、 これらの関数はスレッドセーフ
       ではない。
準拠
       POSIX.1-2001, POSIX.1-2008, SVr4.
関連項目
       rand(3), random(3)
この文書について
       この man ページは Linux man-pages プロジェクトのリリース 5.10  の一部である。プロジェクトの説明とバグ報告
       に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。
                                                   2020-11-01                                         DRAND48(3)