JavaScriptでの乱数メモ
さくっと乱数が欲しい時にいつも方法を忘れるのでメモ。
- Math.randomは0以上1未満のNumberを返す。
- 0以上4未満の乱数を得たければMath.random() * 4とする。整数として欲しければMath.floorを使う。
- 3以上7未満は0以上4(=7-3)未満に3を足せばOK。
- 0以上4以下の場合は?
- 整数でよければ5未満と同じなのでMath.floor(Math.random() * 5)でOK。
- 整数でない場合、例えば0以上4.5以下とかは?Math.random() * 4.5では4.5にならない。
- 4.5 * 100000 = 4500000なので、4500000以下の整数にしてから100000で割ればある程度の値が得られる。精度気にしなくていいならこの程度でOK。
// min以上max未満 function rnd1(min, max) { return min + Math.random() * (max - min); } // min以上max以下(整数) function rnd2(min, max) { return min + Math.floor(Math.random() * (max - min + 1)); } // min以上max以下(小数) function rnd3(min, max) { return min + Math.floor(Math.random() * ((max - min) * 100000 + 1)) / 100000; }