JavaScriptでランダムな数字の最大値を決める仕組み

JavaScript

あーりーです。

前回は、JavaScriptでランダムな数字をつくる方法を見てきました。

 

きょうのテーマは、ランダムな数字の最大値の決め方です。

どんな仕組みで最大値が決まるのかを見ていこうと思います。

 

まず、前回のおさらになりますが…

0から10までのランダムな整数を表示させるJavaScriptはこちらです。

 

<html>
<head>
</head>
<body>

<script>

// 変数aを使う宣言
var a;

//変数aにランダムな整数を代入
a=Math.floor(Math.random()*11); 

//aを画面に表示
document.write(a);
 
</script>

</body>
</html>

※少しでもわかりやすいように、JavaScriptのところは丁寧に、HTMLの部分は究極にあっさりと書いています

 

この緑色の部分が、0から10までのランダムな整数をつくる部分です。

a=Math.floor(Math.random()*11);

おさらい

では。

この部分の内容を、再確認しておきます。

ランダムな数字を作る

まず以下の赤い部分で、ランダムな数字を作っています。

a=Math.floor(Math.random()*11);

 

このときに作られるランダムな数字は、整数の1より小さいものです。

 

たとえば…

0.427940555770828

とか

0.6279808447799727

とか

0.25192833237803625

などです。

 

ぜんぶ、1より小さい数です。

 

このままだと、ランダムな整数は作れません。

そこで、ある程度の数字をかけ算します。

最大値より一つ大きい数字をかける

ここが今回のキモですね。

さっき作ったランダムな数値に、ある程度の数をかけます。

 

たとえば、0から10までのランダムな数字を作りたい場合、以下の赤い部分のように、11をかけ算します。

a=Math.floor(Math.random()*11);

 

最大値を10にしたい場合、そのまま10をかけるのではなく、それより一つ大きい11をかけるのがポイントです。

11をかけると11より小さい数値になる

かけ算の結果は、かけた数字(今回の場合は11)よりも必ず小さくなります。

 

なぜなら…

さっき「Math.random()」によって作られたランダムな数字は、かならず1より小さい数字だからです。

11に、1より小さい数字をかけると、11より小さくなりますよね。

1より小さい数字は0.00001とか0.99999とかいろいろありますが、今は最大値の話をしているので、なるべく大きい0.99999を例にとってみます。

 

たとえば、こんな感じです。

0.99999×11

 

計算結果は、

10.99989

です。

 

11より小さいです。

ランダムに作られた数値がどんなに大きくても、それが1より小さい数値である以上、かけ算の結果が11に達することはありません。

小数点以下を切り捨てる

あとは、小数点以下を切り捨てます。

 

それが、この赤い部分です。

a=Math.floor(Math.random()*11);

 

たとえば、

0.99999×11=10.99989

 

この計算結果の小数点以下を切り捨てると、「10.99989」が「10」になります。

11よりも一つ小さい整数が出来上がりました。

まとめ

というわけで。

ランダムの最大値は、赤い部分の数字よりも、一つ小さい整数になることがわかります。

a=Math.floor(Math.random()*数字);

 

今回は、これでおしまい~。

 

JavaScriptの記事は、この記事も含めて「初心者のための超わかりやすいJavaScript入門」にまとめてあります。よろしければご覧ください。

タイトルとURLをコピーしました