2010年6月5日土曜日

rand = 乱数を求める - AWK

AWKの数値計算関数と関連機能
○(開始時に注意)Gawk on Windows ○(開始時に注意)Gawk ○mawk32 ○Mawk ○awk
乱数を求めます。(擬似乱数です。)
移植性を高めたい時は、randを初使用する前に、srandを呼び出します。

**** 書式
--------
rand()
--------

o 戻り値 -- 擬似乱数。0以上1未満。但し、0は含まないかもしれません。


**** 使用例
--------
BEGIN {
  srand(); # 乱数の種を設定します。
  print rand(); # 乱数その1
  print rand(); # 乱数その2
}
--------

o 行末のセミコロンは、C言語の書き方に合わせました。無くても動きます。


**** 機能
o 乱数を求めます。完全な乱数ではなく、同じ条件では同じ値を返します。
o srandで種を指定すると、その種に従って擬似乱数を作ります。
o Gawkで動作させたい方は、下記 = 実装依存の動作もご覧下さい。

** 処理系に依存するかもしれない動作
o Gawk on Windows 3.1.7 の場合、戻り値に0を含まないみたいです。
o mawk MBCS (32bit版) 1.3.3の場合、戻り値には 0を含みません。

** 処理系に依存する動作
o Gawk系の場合、最初の種は固定値です。(= 1みたいです。)
   + 確認したのは、Gawk on Windows 3.1.7 と Gawk for Windows 3.1.6です。
   + srandを呼び出さずに randを呼び出すと、プログラムを実行する度に同じ値を返します。
o mawk系とオリジナルでは、srandを事前に呼び出さなくても、プログラムを実行する度に違う値を返します。
   + 確認したのは、mawk MBCS (32bit版) 1.3.3、Mawk for Windows 1.3.3、the one true awk(updated May 1, 2007)です。
   + randを初めて使う前に、srandを呼び出しているみたいです。


**** 確認した処理系
o Gawk on Windows 3.1.7 -- 実行開始時の乱数の種は固定値
o Gawk for Windows 3.1.6 -- 実行開始時の乱数の種は固定値
o mawk MBCS (32bit版) 1.3.3
o Mawk for Windows 1.3.3
o original = the one true awk(updated May 1, 2007)


==
関連ページ:
    ▼AWKの数値計算関数と関連機能▼ABC順
    ▼AWKプログラムを書く▼ABC順
    ▼AWK
    ▼制作メモ
    > srand = 乱数の種を設定する
    and = AND演算する。整数をビット毎に論理積(Gawk専用)
    or = OR演算する。整数をビット毎に論理和(Gawk専用)
(2010年6月12日追加。オリジナルawkなどの動作)