JavaScript 乱数 範囲指定 整数

html-canvas

JavaScript 自分用メモ

めもめも

Math.random( )

基本:Mathオブジェクトの random( ) メソッドを使う

  • random( ) は 0〜1未満の小数を含む乱数を生成する
let random = Math.random();
console.log(random);
//0〜1未満の小数を含む乱数を生成 ex.0.752461466287883

ランダムな整数

基本:Math.floor( ) を使う

  • Math.floor( ) は 与えられた数値以下の最大の整数を返す
Math.floor(Math.random() * max);

例1:0,1,2 から ランダムな整数をとりたい。

  • Math.random( ) は 0〜1未満を返すので、Math.floor( Math.random() * 2 );では0~1の整数を返してしまう。
  • 最大値にプラス1をしてMath.floor( Math.random() * 3 ); で0~2のランダムな整数がとれる。
let random = Math.floor(Math.random() * 3)
console.log(random);
//0,1,2からランダムに返す

例2:0~10 までの ランダムな整数をとりたい。

  • 最大値10にプラス1をしてMath.floor( Math.random() * 11 ); で0~10のランダムな整数がとれる。
let random = Math.floor(Math.random() * 11)
console.log(random);
//0~10の乱数(整数)を生成

範囲内のランダムな整数

基本:最大値の扱いに注意(未満か以下か)

Math.floor(Math.random() * (max - min) + min)
//max未満、min以上のランダムな整数を返す
Math.floor(Math.random() * (max+1 - min) + min)
//max以下、min以上のランダムな整数を返す

例:10~25 までの ランダムな整数をとりたい。

  1. let random = Math.floor(Math.random() * 取り出したい最大値+1) で取り出したい値までの乱数が生成される。
  2. 取り出したいのは、1~25ではなく、10~25なので 上の式から範囲の最小値10をマイナスする。
  3. そこに範囲の最小値を加える
//❶
let random = Math.floor(Math.random() * 26)
console.log(random);
//0~25の乱数(整数)を生成
//❷
let random = Math.floor(Math.random() * (26-10))
console.log(random);
//0~15の乱数(整数)を生成
//❸
let random = Math.floor(Math.random() * 16) + 10;
console.log(random);
//10~25の乱数(整数)を生成

関連記事 JavaScript


にほんブログ村 にほんブログ村へ