Javaでランダムな値を取得する方法について記載します。
目次
ランダムな値を取得する方法
Mathクラス の random メソッドを使用します。
構文
Math.random()
戻り値
double型:0.0以上、1.0 未満の値
1. 0.0以上、1.0未満の値を取得
randomメソッドを、そのまま実行します。
実行例( 0.0 以上、1.0未満の値を取得 )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
// ランダムな値を10回生成する for( int i=0; i < 10; i++ ) { double d = Math.random(); System.out.println(d); } // 実行結果(実行の度に変わります) // 0.14289316165332422 // 0.5650113040099358 // 0.559741128305722 // 0.9064966452587825 // 0.7141845130023894 // 0.8352968361022103 // 0.6049425049523273 // 0.26879624830730675 // 0.5698932869708181 // 0.6602836717337237 |
2. 0以上、9以下の値を取得
Math.floor と組み合わせると、0 〜 9の値を取得できます。
実行例( 0以上、9以下の値を取得 )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
// 0 〜 9 の値のランダムな値を取得する for( int i=0; i < 10; i++ ) { double r1 = Math.random(); double r2 = r1 * 10; // ランダム値(r1)を10倍します double r3 = Math.floor(r2); // 10倍したランダム値の小数点以下を切り下げます System.out.printf("%s(%s)\r\n", r3, r1); } // 実行結果(実行の度に変わります) // 9.0(0.9343328327494853) // 0.0(0.040380454994477066) // 4.0(0.4528286452313851) // 6.0(0.6204569371254797) // 4.0(0.49132710388569223) // 7.0(0.7108698936497343) // 7.0(0.7236323811092893) // 2.0(0.2874132496220557) // 3.0(0.3119108862914294) // 8.0(0.8300726222879999) |
実行結果の括弧内の値は、randomメソッドから取得した変換前の値です。
3. 1以上、10以下の値を取得
Math.ceil と組み合わせると、1 〜 10の値を取得できます。
実行例( 1以上、10以下の値を取得 )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
// 1 〜 10 の値のランダムな値を取得する for( int i=0; i < 10; i++ ) { double r1 = Math.random(); double r2 = r1 * 10; // ランダム値(r1)を10倍します double r3 = Math.ceil(r2); // 10倍したランダム値の小数点以下を切り上げます System.out.printf("%s(%s)\r\n", r3, r1); } // 実行結果(実行の度に変わります) // 3.0(0.22183883147929828) // 4.0(0.33030707170119655) // 8.0(0.7099299868678018) // 1.0(0.05230684997918611) // 9.0(0.8400532346359123) // 4.0(0.3149412519315198) // 1.0(0.06715446871861108) // 8.0(0.7240966903633357) // 9.0(0.8072977389204269) // 3.0(0.2962312654889737) |
実行結果の括弧内の値は、randomメソッドから取得した変換前の値です。