乱数の生成

乱数の表示を行うJavaサンプルプログラムです。



乱数

このページには、以下のサンプルを掲載しています。 下の項目をクリックをすると各サンプルにジャンプします。 ※2週間以内の新着記事はNewアイコン、更新記事はUpアイコンが表示されます。
  1. 1〜100までの乱数を生成する(Mathクラス)  
  2. 1〜100までの乱数を生成する(Randomクラス)  
  3. 重複しない1〜10までの乱数を生成する  

1. 1〜100までの乱数を生成する(Mathクラス)

[ サンプルプログラムのソースコード - RandomSample01.java - ]
  1. public class RandomSample01 {
  2.   public static void main(String[] args) {
  3.     int r;
  4.     for ( int i = 0; i < 10; i++ ) {
  5.       r = (int)(Math.random() * 100) + 1;
  6.       System.out.print(r + " ");
  7.     }
  8.     System.out.println();
  9.   }
  10. }
[ サンプルプログラムの実行結果 ]
12 18 72 95 61 15 64 77 39 83
[ サンプルプログラムの解説 ]
サンプルでは、1〜100の乱数を10個表示しています。6行目赤字部分Math.random()では、0.0 以上 1.0未満のdouble値を返すので 100倍して1を加算しています。こうすることで1〜100の乱数を得ています。



2. 1〜100までの乱数を生成する(Randomクラス)

[ サンプルプログラムのソースコード - RandomSample02.java - ]
  1. import java.util.Random;
  2. public class RandomSample02 {
  3.   public static void main(String[] args) {
  4.     Random rnd = new Random();
  5.     for ( int i = 0; i < 10; i++ ) {
  6.       int r = rnd.nextInt(100) + 1;
  7.       System.out.print(r + " ");
  8.     }
  9.     System.out.println();
  10.   }
  11. }
[ サンプルプログラムの実行結果 ]
56 43 89 64 15 45 88 1 36 52
[ サンプルプログラムの解説 ]
サンプルでは、1〜100の乱数を10個表示しています。RandomSample01.javaでは、Math.randomを使って乱数を生成していましたが、 こちらのサンプルでは、Randomクラスを使っています。まず、Randomオブジェクトを生成(6行目)します。生成したRandomオブジェクト のnextIntメソッドで乱数を生成します。nextIntメソッドでは、0から引数で与えた数値までの乱数を返します。サンプルでは、100を設定しています。 nextInt(100)の場合、0〜99までの乱数となるため1を加算して1〜100の乱数を生成しています。



3. 重複しない1〜10までの乱数を生成する

[ サンプルプログラムのソースコード - RandomSample03.java - ]
  1. import java.util.ArrayList;
  2. import java.util.Collections;
  3. /**
  4.  * 重複しない1〜10の乱数を作成するサンプル
  5.  *
  6.  */
  7. public class RandomSample03 {
  8.   public static void main(String[] args) {
  9.     // 1 〜 10 の数値が入ったリストを作成
  10.     ArrayList list = new ArrayList();
  11.     for ( int i = 0; i < 10; i++ ) {
  12.       list.add(i);
  13.     }
  14.     // リストの内容をシャッフルします。(1回目)
  15.     Collections.shuffle(list);
  16.     for( Integer num : list ) {
  17.       System.out.print(num + " ");
  18.     }
  19.     System.out.println();
  20.     
  21.     // リストの内容をシャッフルします。(2回目)
  22.     Collections.shuffle(list);
  23.     for( Integer num : list ) {
  24.       System.out.print(num + " ");
  25.     }
  26.   }
  27. }
[ サンプルプログラムの実行結果 ]
2 6 5 1 3 0 9 7 8 4
6 9 0 8 4 7 3 2 5 1
[ サンプルプログラムの解説 ]
Collections.shuffle(19行目と26行目)を使うと引数で与えたリストを内部で生成させた乱数で並び順をシャッフルしてくれます。 リスト内に重複しない数値(サンプルでは、1〜10の数値)を入れてこのメソッドを呼び出すと1〜10の数値が ランダムな順番に並び変わります。






最終更新日:2019/02/13

2015-03-01からの訪問者数
  3431 人