32 ビット整数、単精度浮動小数点、および倍精度浮動小数点形式の均一擬似乱数を生成するための機能には、次の 3 つがあります。
addrans(3m) のマニュアルページで説明されている関数は、テーブル駆動加法的乱数ジェネレータのファミリに基づいています。
mwcrans(3m) のマニュアルページで説明されている関数は、キャリー付き乗算乱数ジェネレータに基づいています。また、これらの関数には、64 ビット整数形式の均一擬似乱数を提供するジェネレータも含まれています。
さらに、shufrans(3m) のマニュアルページで説明されている関数をこれらのいずれかのジェネレータと組み合わせて使用すると、擬似乱数の配列をシャッフルすることによってさらに高いランダム性を、それを必要とするアプリケーションに提供できます。64 ビット整数の配列をシャッフルするための機能はないことに注意してください。
各乱数機能には、1 回につき 1 つ (つまり、1 回の関数呼び出しで 1 つ) の乱数を生成するルーチンのほか、1 回の呼び出しで乱数の配列を生成するルーチンが含まれています。1 回につき 1 つの乱数を生成する関数は、Table 3–17 に示されている範囲内の数値を提供します。
|
1 回の呼び出しで乱数の配列全体を生成する関数では、ユーザーは生成される数値の間隔を指定できます。Appendix A, 例には、異なる間隔にわたって均一に分布された乱数の配列を生成する方法を示すいくつかの例が紹介されています。
addrans および mwcrans ジェネレータは一般に lcrans ジェネレータより効率的ですが、それらの理論はまだそれほど洗練されていません。『Random Number Generators: Good Ones Are Hard To Find』(S. Park 氏、K. Miller 氏共著、Communications of the ACM、1988 年 10 月) は、線形合同アルゴリズムの理論的な特性について説明しています。加法的乱数ジェネレータは、Knuth 氏の『The Art of Computer Programming』の第 2 巻で説明されています。