#navi(../)

* シェルでランダム値を使用する [#tf9aae2c]
bash, zshでは、$RANDOMに乱数が格納されています。~
以下、bashを利用してランダム値(乱数)の使用方法について記述します。~
(zshでの動作は未確認です)

#contents
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)

* RANDOM変数の説明 [#gbd8d6a8]
bashでは、以下のように$RANDOM変数にランダムな値が格納されています。~
以下、man bashをしRANDOMについて記述されているところの抜粋です。

 RANDOM このパラメータが参照される度に、 0 から 32767 までのランダムな整
        数が生成されます。 RANDOM に値を代入すると、乱数の列を初期化でき
        ます。 RANDOM を unset すると、この変数の特殊な性質は無くなります。
        後で再び set しても元には戻りません。

したがって、端末からechoコマンドを利用し$RANDOMを表示すると以下のようになります。~
表示される値は、man bashに記述されているように0から32767までの乱数になります。
 $ echo $RANDOM
 25480

10回$RANDOM値を表示してみてランダムな値になっていることを確認しました。
 $ for i in `seq 1 10`; do echo RANDOM : $RANDOM; done
 RANDOM : 2596
 RANDOM : 15051
 RANDOM : 16521
 RANDOM : 20035
 RANDOM : 25756
 RANDOM : 22570
 RANDOM : 23602
 RANDOM : 14320
 RANDOM : 2425
 RANDOM : 29152

*  範囲を指定した乱数値を取得したい(例 0~99) [#wbef5797]
例えば0〜99までのランダムな値を取得したい場合は、以下のようにすれば実現できます。~
乱数$RANDOMを100で割り、余りの値を取得します。(割り算をして余りを取得しているので0〜99となります)
 RND=`expr $RANDOM % 100`
 echo $RND

実際に10回ループさせて0〜99までのランダム値を取得してみます。
 $ for i in `seq 1 10`; do echo RANDOM ${i} : `expr $RANDOM % 100`; done
 RANDOM 1 : 90
 RANDOM 2 : 30
 RANDOM 3 : 28
 RANDOM 4 : 24
 RANDOM 5 : 35
 RANDOM 6 : 93
 RANDOM 7 : 45
 RANDOM 8 : 9
 RANDOM 9 : 10
 RANDOM 10 : 78

以上、bashで提供されているRANDOM変数を利用した乱数取得の説明でした。

#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS