【週刊ドットインストール】 考える力を養うための新クラス『データで学ぶアルゴリズム』を256timesでリリース!
ceil を使うことに関する質問を拝見しました。
Math.ceil(Math.random() * 6) → 0, 1, 2, 3, 4, 5, 6(非常に小さな確率ですが、Math.random() が 0 になったときに Math.ceil(0) は 0 となるため) Math.ceil(Math.random() * 6) + 1 → 1, 2, 3, 4, 5, 6, 7 となってしまい、1 〜 6 の範囲ではなくなってしまいます。 したがって Math.floor() を使うようにしましょう。
Math.ceil(Math.random() * 6)
Math.random()
Math.ceil(0)
Math.ceil(Math.random() * 6) + 1
Math.floor()
ceil は小数点以下を切り上げと習いました。 ceil を使うと、Math.random() が 0 になった時に、Math.ceil(0) は 0 となる、とのことですが floor でも Math.random() が 0 になった時には、 Math.floor(Math.random() * (max + 1 - min)) + min) において、0 を掛けているので、Math.floor(0) は 0 とならないんでしょうか?
Math.floor(Math.random() * (max + 1 - min)) + min)
Math.floor(0)
floor の方がむしろ切り下げなので、切り上げの ceil で 0 になる意味が理解できていません。 ご教授よろしくお願い致します。
ドットインストールは、3分動画でマスターできるプログラミング学習サービスです。
3分で気軽に学習でき、スマートフォンからも視聴可能です。ホームページやWebサービスの制作を通して、実践的にプログラミングを学べます。
他にも、ゲーム制作やデータ分析・機械学習・AIに使われる言語まで幅広くカバー。学びたい分野のレッスンがきっと見つかります。
この回答を見るにはプレミアムプランへの登録が必要です
ceil を使うことに関する質問を拝見しました。
Math.ceil(Math.random() * 6)→ 0, 1, 2, 3, 4, 5, 6(非常に小さな確率ですが、Math.random()が 0 になったときにMath.ceil(0)は 0 となるため)Math.ceil(Math.random() * 6) + 1→ 1, 2, 3, 4, 5, 6, 7となってしまい、1 〜 6 の範囲ではなくなってしまいます。
したがって
Math.floor()を使うようにしましょう。ceil は小数点以下を切り上げと習いました。
ceil を使うと、
Math.random()が 0 になった時に、Math.ceil(0)は 0 となる、とのことですがfloor でも
Math.random()が 0 になった時には、Math.floor(Math.random() * (max + 1 - min)) + min)において、0 を掛けているので、Math.floor(0)は 0 とならないんでしょうか?floor の方がむしろ切り下げなので、切り上げの ceil で 0 になる意味が理解できていません。
ご教授よろしくお願い致します。