【Java】すぐに理解できる!randomを使って乱数を取得する!
絶対値を取得する場合にはMathクラスのrandomメソッドを使用します。
Mathクラスのrandomメソッドは、乱数を取得するメソッドとなります。
乱数とは次にどのような値が出るのかわからない数字のことです。
ゲームなどのサイコロを思い出してもらえればわかりやすいかと思います。
サイコロには1~6までの値がありますが、こちらがどの目を出すかを決めるのではなく、振ってみないとどの目が出るのかわかりません。
つまり、「サイコロの目の出す場合はランダムに設定する。」その為にrandomメソッドが使われます。
このように乱数の処理は身近なところで使われているので、基本的な内容は抑えておきましょう。
今回はMathクラスのrandomをメソッドを使って以下の場合での乱数を取得していきます。
⚫︎ 0以上1未満の乱数を取得する場合
⚫︎ 1以上10以下の乱数を取得する場合
目次
randomメソッドとは
Mathクラスのrandomメソッドは、乱数を取得するメソッドとなります。
randomメソッドの書き方
randomメソッドの構文は下記となります。
1 |
Math.random; |
randomを呼び出すことで「0」以上「1」未満のdouble型の乱数を返します。
また、乱数は整数だけではなく、double型など小数点のある数値も扱うことができます。
乱数を取得するサンプルコード
乱数を取得するサンプルコードを紹介します。
0以上1未満の乱数を取得する場合
例
1 2 3 4 5 6 7 8 9 10 11 |
//乱数を取得する public class Main { public static void main(String[] args) throws Exception { // 0以上1未満の乱数を取得 for (int i = 0; i < 5; i++) { double d = Math.random; System.out.println(d); } } } |
出力結果
0.047233176448493674
0.11045905683267498
0.13647262599596333
0.6895436736168848
0.9920354024368888
randomメソッドで0以上1未満の乱数を取得しています。
1以上10以下の乱数を取得する場合
1以上10以下の乱数を取得する場合はrandomメソッドを10倍して+1します。
また、int型で取得するのか、doubled型で取得するのか型をキャストします。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
//乱数を取得する public class Main { public static void main(String[] args) throws Exception { // 1以上10以下の整数の乱数を取得 for (int i = 0; i < 5; i++) { int val = (int) (Math.random * 10) + 1; System.out.println(val); } for (int i = 0; i < 5; i++) { double val = (double) (Math.random * 10) + 1; System.out.println(val); } for (int i = 0; i < 5; i++) { float val = (float) (Math.random * 10) + 1; System.out.println(val); } } } |
出力結果
6
4
2
2
9
6.393647909050232
6.0103872707568
9.237419238647977
1.970148356282411
2.029467737137889
4.7548656
8.116814
6.2567782
2.467053
7.819816
Math.randomを10倍して+1することで1以上10未満の乱数を取得しています。
また、型キャストすることでint型、double型、float型の乱数を取得しています。
乱数を利用した簡易なアプリ
乱数を利用した簡易なアプリを紹介します。
すごろく
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
public class Main { public static void main(String[] args) throws Exception { int goal = 8; System.out.println("サイコロを振る。1回目"); int val1 = (int) (Math.random * 6) + 1; System.out.println(val1 + "が出ました。"); goal = goal - val1; System.out.println("サイコロを振る。2回目"); int val2 = (int) (Math.random * 6) + 1; System.out.println(val2 + "が出ました。"); goal = goal - val2; if(goal <= 0) { System.out.println("ゴールしました。"); } } } |
出力結果
サイコロを振る。1回目
6が出ました。
サイコロを振る。2回目
2が出ました。
ゴールしました。
ガチャガチャ
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
public class Main { public static void main(String[] args) throws Exception { System.out.println("ガチャガチャを引く。"); int val = (int) (Math.random * 10) + 1; if(val == 2) { System.out.println("超レアキャラゲット。"); } else if(val == 4 || val == 6) { System.out.println("レアキャラゲット。"); } else { System.out.println("ノーマルキャラゲット。"); } } } |
出力結果
ガチャガチャを引く。
レアキャラゲット。
今回のポイント
randomで乱数を取得
乱数を取得するにはMathクラスのrandomメソッドを使用する。
⚫︎ Mathクラスのrandomメソッドで、「0」以上「1」未満の乱物を取得することができる。
⚫︎ 1以上10以下の乱数を取得する場合は、「(int)(Math.random * 10) + 1」で乱数の範囲を設定する
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。