こんにちは、さるまりんです。
ランダムな値を元に何かするという場面に出くわすことが結構あります。
ゲームとかを作っている時に特にそうですね。
そのランダムな数値をパパッととりたい。
$RANDOM
変数を使ってLinuxのコマンドラインでやってみました。
$RANDOM
はBashやZshなど多くのUnixシェルで利用できる組み込み変数です。
この変数は0
から32767
までの間のランダムな整数を生成してくれます。
3回実行して出力してみました。
$ echo $RANDOM
9946
$ echo $RANDOM
23893
$ echo $RANDOM
507
とても簡単ですね。
1
から100
までの乱数を生成するにはこうです。
こちらも3回やってみました。
$ echo $(( $RANDOM % 100 + 1))
81
$ echo $(( $RANDOM % 100 + 1))
41
$ echo $(( $RANDOM % 100 + 1))
53
1
から100
ができるのだから、これもできますね。
1
から6
にして3回サイコロを振ってみました。
$ echo "サイコロの目は $(( $RANDOM % 6 + 1)) です"
サイコロの目は 6 です
$ echo "サイコロの目は $(( $RANDOM % 6 + 1)) です"
サイコロの目は 5 です
$ echo "サイコロの目は $(( $RANDOM % 6 + 1)) です"
サイコロの目は 1 です
この$RANDOM
変数は暗号学的には安全な乱数とはいえないそうです。また範囲も0
から32767
までと限られています。簡単なゲームとかであれば問題ないでしょうが、もっと品質、精度の高いものが必要であれば別の方法を取る必要があるかと思います。
コマンドラインとタイトルにありますが、シェルなのでスクリプト内でも同じように使うことができます。
いろんなプログラミング言語にも乱数生成の仕組みがあるので、必要に応じてそれらを使うことになるかな。
臨機応変、その時に効果的な利用ができるように知識の幅を広げたいです。
読んでくださってありがとうございました。
それではまた!