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などの動作)

sqrt = 平方根を求める - AWK

AWKの数値計算関数と関連機能
○Gawk on Windows ○Gawk △(強制終了あり)mawk32 ○Mawk △(注記あり)awk
平方根を求めます。

**** 書式
--------
sqrt( 調べたい値 )
--------

o 調べたい値 -- 正の数値(n >= 0)。文字列で指定する事も出来ます(例:"39.39だよ")。
o 戻り値 -- 結果


**** 使用例
--------
BEGIN {
  print sqrt(3); # 1.73205

  print "# 以下、計算結果の確認です。";
  print sqrt("          39"); # 6.245
  print sqrt("39aaa"); # 6.245
  print sqrt("aaa39"); # 0
}
--------

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


**** 機能
o 数値であると解釈して、平方根を求めます。
o 負の値を指定した時、処理系によって動作が異なります。

o 数値は、文字列の形で指定する事も出来ます。
o 数値の後ろに文字列が続いていても、大丈夫です。
o 先頭に数値以外の文字がある場合
   + 半角空白は読み飛ばします。
   + それ以外の文字があると、0 だと解釈します。

** 処理系に依存する動作
o 負の値を指定すると、例外(mawk MBCS (32bit版) 1.3.3)を除いて、計算不能値(NaN相当の値)を返します。
   + Gawk on Windows 3.1.7の表示は「-1.#IND」。
   + Gawk for Windows 3.1.6の表示は「NaN」
   + mawk MBCS (32bit版) 1.3.3の場合、エラーメッセージを出して終了します。
   + Mawk for Windows 1.3.3の表示は「-2147483647」。表示は整数ですが、内部の値は計算不能値です。
   + original = the one true awk(updated May 1, 2007)の表示は「-1.#IND」。但し、負の値で連続呼び出しすると、2回目以降、1回置きに 1を返しました。


**** 確認した処理系
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
    ▼制作メモ
    > sin = 正弦を求める
    cos = 余弦を求める
    atan2 = 逆正接(arctan = アークタンジェント)を求める
(2010年6月18日追加。実装依存の動作)
(2010年6月12日追加。オリジナルawkなどの動作)

AWKの関数、変数、制御文(目的別) - AWK

AWKプログラムを書く
o 組み込み関数と関連機能
▼数値計算
▼文字列操作
▼時刻取得
▼入出力とコマンド実行
▼インターネット接続(Gawk専用)
▼国際化対応 i18n(Gawk専用)

o その他の機能
▼パターンと制御文
▼配列操作
▼正規表現

o 公式マニュアル
Gawkの操作説明書(マニュアル)をオンラインで見る方法
mawkの操作説明書(マニュアル)をオンラインで見る方法
--------
o 新しい発見がありましたら、随時更新する予定です。


**** 未調査の機能について
o 以下の機能につきましては、まだメモを書いていません。
o 興味のある方は、Gawkのマニュアルや他の方のページをご覧下さい。
    + 演算子の優先順位
    + 正規表現(執筆中)
    + Gawk のインターネット対応の内、Windows版で確認出来なかった機能
    + Gawk の国際化対応(i18n)の内、Windows版で確認出来なかった機能
    + Gawk 4の新機能


==
関連ページ:
    ▼AWKプログラムを書く
    ▼AWKプログラムを動かす
    ▼AWK
    ▼制作メモ
    > ▼AWKの関数、変数、制御文(ABC順)