プログラミング勉強

JS勉強記録-ランダム値

テンプレートリテラル


const mes = `this is ${hensu} very god`
console.log(mes)
​
"this is これは変数 very god"

ランダム値を取得する

console.log(Math.random())
0.7959536411140944
0.8379583723941952
0.7225609935024226
0.6052349259273466
0.20393987840813188
0.1675729270122066
0.930723043115713
0.8295284655061284
0.445081576899375
0.9051232990829166
0.7964838263797791
0.5528411073705484
0.09412547256856474

0.0~0.9までの値が出力されています。

console.log(Math.floor(Math.random()))
0

Math.floorを使うと0になりました。
ここで掛け算をしてみます

console.log(Math.floor(Math.random() * 4))
1
2
1
0
3
0
2
3
0
2
0
2
3
0

0.9*4=3.6でMath.floorで3になります。
0から掛けた数-1を最大値として取得できる。

以上を踏まえると、引数で指定した最大値までのランダム値を取得する関数はこうなります。

function getRandNum(num){
  return Math.floor(Math.random() * num + 1)
}

最小値を指定してランダム値を取得する

最小値を指定するということは、範囲を指定するということです。
現状は必ず0が取得できる状態なので、取得できる結果に最小値を足してみることにします。

function getRandNum(minnum,maxnum){
  return Math.floor(Math.random() * maxnum + 1) + minnum
}
console.log(getRandNum(3,5))

これだと4〜8までの数値がランダムで返されます。
まぁ最小値を足せば最大値以上の数値が出ることは理解できるので、ここに調整が必要になってきます。

function getRandNum(minnum,maxnum){
  return Math.floor(Math.random() * (maxnum - minnum + 1) ) + minnum
}

console.log(getRandNum(3,8))

これで3以上8以下が取得できます。

8-3+1=6なので0~5が取得できます。
最後に3をプラスするので3~8が取得できます。