Javaで、特定の範囲内の値から乱数を生成しようとしています。
例えば範囲が5-10としたら、乱数が取ってくることのできる最小の数が5、最大の数が10、且つ5と10の間のどの数字にでもなれるようにしたいのですが、どう実装したらいいかわからず困っています。
ある特定の範囲内の乱数を返すようなAPIはあるのでしょうか?
下記のような実装を試してみたのですが、上手くいきませんでした。
※ minが最小値、maxが最大値
処理A:
`
num = min + (int)(Math.random()*max);
`
→この場合、numにmaxよりも大きな値が取れてしまう。
処理B:
Random random = new Random(); int i = max - min + 1; int j = random.nextInt() % i; num = min + j;
→この場合、numにminより小さい値が取れてしまう。
宜しくお願いします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2014/08/20 00:44