# マニュアルページ shufrans.3m

## 名前

         shufrans - 乱数のシャッフル

## 形式

         cc [ flag ... ] file ...  -lsunmath -lm [ library ... ]

              flag にはフラグ、 file にはファイル名、 library には ラ
              イブラリ名を指定します。

         #include <sunmath.h>

         void i_shufrans_(int *x, int *n, int *l, int *u);

         void u_shufrans_(unsigned *x, int *n, unsigned *l,  unsigned
         *u);

         void r_shufrans_(float *x, int *n, float *l, float *u);

         void d_shufrans_(double *x, int *n, double *l, double *u);

## 機能説明

         これらの関数は、任意の方法で生成された、間隔 [*l,*u], 内の一
         様疑似乱数のシャッフル (混ぜ合わせ) を行います。シャッフルの
         方法は Knuth の"Algorithm B"と呼ばれるものです。シャッフル作
         業 用に、4 個から 256 個までの要素を持つ内部テーブルが割り当
         てられます。この要素の数は、 *n に依存します。

## 使用例

      間隔 [lb,ub] 内の 1000 個の乱数をシャッフルする
              double x[1000] ; int n = 1000 ; double lb, ub;

              d_shufrans_(x, &n, &lb, &ub) ;

## 関連項目

         addrans(3M), drand48(3), lcrans(3M), mwcrans(3M),  rand(3C),
         rand(3V), random(3)

         Knuth 著,『準数値算法』( The  Art  of  Computer  Programming
         Volume II ), 渋谷政昭、中川圭介訳, サイエンス社.

         Park and Miller, Random Number  Generators:  Good  Ones  are
         Hard to Find, Communications of the ACM, October 1988.

## 注意事項

         通常の用途 で は、  addrans(3M)、  drand48(3C)、  rand(3C)、
         random(3B)  に含まれる関数よりも、 lcrans(3M) に含まれる関数
         を (おそらく shufrans(3M) とともに) 使用する方が処理効率が向
         上します。