Qraft(クラフト) 資格・学習クイズアプリ

JavaScript入門 練習問題 37:組み込みオブジェクト:Mathオブジェクトによる乱数生成

次のコードの実行結果としてあり得る範囲で、正しいものはどれですか?

```javascript
Math.floor(Math.random() * 3) + 1
```

  1. 常に1から3までのいずれかの整数が返される
  2. 常に0から3までのいずれかの整数が返される
  3. 常に1から4までのいずれかの整数が返される
  4. 常に0から2までのいずれかの整数が返される
  5. 常に0から4までのいずれかの整数が返される

Qraftユーザーの成績:正答率 70%(7/10回正解)

正解と解説を見る
正解:常に1から3までのいずれかの整数が返される

Math.random()は0以上1未満の小数を返し、これに3を掛けてMath.floor()で切り捨てることで0〜2の整数になり、最後に1を足すため1〜3の整数が正解です。

【正解の理由】
Math.random() * 3 は「0以上3未満」の小数を生成し、Math.floor() で小数点以下を切り捨てると「0, 1, 2」のいずれかになります。最後に1を加算しているため、結果は「1, 2, 3」のいずれかの整数になります。

【不正解の理由】
• 「常に0から3までのいずれかの整数が返される」は誤り。1が足されているため0にはならない
• 「常に1から4までのいずれかの整数が返される」は誤り。Math.random()は1を含まないため4にはならない
• 「常に0から2までのいずれかの整数が返される」は誤り。1を加算しているため結果の範囲が異なる
• 「常に0から4までのいずれかの整数が返される」は誤り。計算結果の範囲と全く一致しない

← 前の問題問題一覧次の問題 →
アプリで解いてレーティングを上げる(無料・登録不要)