記事
WSHで実用的な乱数を取る
WSH
公開日:2009/04/17 00:00
以前に乱数系列の初期化方法を載せましたが、今度は実用的な乱数の使い方を載せる事にしましょう。
乱数とは単純明快に説明しますと、「サイコロ」ですね。何面でも作成できるような。
では乱数がどのような所で使用されているかと言いますと、1番身近なのはゲームですね。
例えば、勇者の攻撃力が10でスライムの守備力が5で、モンスターに与えるダメージが単純に、
で求められる場合、 スライムに与えるダメージは常に5ではないですよね?
結構3〜6ぐらいなどのばらつきがあるはずです。
このばらつきを発生させているのが乱数なのです。
よって、実際にはこのような式になるはずです。
さて、乱数の取り方ですが、乱数系の関数の実行結果は基本的に小数で返されるので、いざ使おうとしても使いにくいのが現状なので、これを整数化するようにしましょう。
次の例では、1から10までの範囲で乱数を取ります。
実際に使用する場合は、MAXVALUEの値は自分が欲しい値に書き換えて下さい。
あと、VBScriptで使用する場合は以前にもお話しましたように、Randomizeステートメントで乱数系列を初期化するのをお忘れずに。
乱数とは単純明快に説明しますと、「サイコロ」ですね。何面でも作成できるような。
では乱数がどのような所で使用されているかと言いますと、1番身近なのはゲームですね。
例えば、勇者の攻撃力が10でスライムの守備力が5で、モンスターに与えるダメージが単純に、
攻撃力−守備力
で求められる場合、 スライムに与えるダメージは常に5ではないですよね?
結構3〜6ぐらいなどのばらつきがあるはずです。
このばらつきを発生させているのが乱数なのです。
よって、実際にはこのような式になるはずです。
(攻撃力−守備力)+乱数
さて、乱数の取り方ですが、乱数系の関数の実行結果は基本的に小数で返されるので、いざ使おうとしても使いにくいのが現状なので、これを整数化するようにしましょう。
次の例では、1から10までの範囲で乱数を取ります。
[VBScript]
Const MAXVALUE = 10 'As Long
Randomize Time()
WScript.Echo CInt(Rnd(1) * MAXVALUE + 1)
[JScript]
var MAXVALUE = 10;
WScript.Echo( Math.ceil(Math.random() * MAXVALUE) );
実際に使用する場合は、MAXVALUEの値は自分が欲しい値に書き換えて下さい。
あと、VBScriptで使用する場合は以前にもお話しましたように、Randomizeステートメントで乱数系列を初期化するのをお忘れずに。

