質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java Development Kit

Java Development Kit(JDK)とは、Javaでの開発のために要するソフトウェアをまとめたパッケージです。コンパイラの「Javac」やクラスライブラリの「jar」など、Java開発者向けツールが含まれています。

Q&A

解決済

1回答

318閲覧

JavaのMath.randomメソッドで作成した乱数に*10000000する意図

H_Takematsu

総合スコア9

Java Development Kit

Java Development Kit(JDK)とは、Javaでの開発のために要するソフトウェアをまとめたパッケージです。コンパイラの「Javac」やクラスライブラリの「jar」など、Java開発者向けツールが含まれています。

0グッド

0クリップ

投稿2022/01/28 11:53

プログラムの学習をしているのですが、講師が作ったプログラムの中で

nums = (int)(Math.random()*10000000)%43+1;

のような形で出てきた乱数を10000000倍して43を割った余りを+1して1~43の乱数を作っていました。
ここで10000000倍する意図がわかりません。しなくても良いと思うのですが。。。
受講期間が終わってもう質問できないのですが理由が知りたくてここで書かせて頂きました。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2022/01/28 12:16 編集

意図はわかりますが、10000000 が 43 の倍数ではないので、このコードには同意しかねます。 C 言語の標準の乱数は整数型なので剰余を取る手法が良く使われるため、そこからの発想だと思いますが、Java の Math.random は実数なので、素直に 43 倍すべきです。 忘れて構わないコードだと思います。
takasima20

2022/01/28 12:16

Math.random() を何倍かしないといけないのは分かりますか?
H_Takematsu

2022/01/31 01:52

Math.randomが0~1の実数なので何倍かして43以上の数字にする必要があるという理解で良いでしょうか。
guest

回答1

0

ベストアンサー

Math.random()の戻り値は0から1の実数です。

投稿2022/01/28 12:09

ozwk

総合スコア13512

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ozwk

2022/01/28 12:20

ただ、追記欄でコメントがあるように、素直に43倍するのが"普通"かと思います
H_Takematsu

2022/01/31 01:49

そうですよね、自分もそう思いました。 納得しました、ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問