Javaで乱数を生成する方法とは!?MathクラスとRandomクラスの使い方!
  • facebookページ
  • twitterページ
  • 2019.10.31

    Javaで乱数を生成する方法とは!?MathクラスとRandomクラスの使い方!

    Javaでプログラムを作成する場合、乱数を利用することは機会は意外と多く出会います。

    Javaには乱数を生成する際、利用できるクラスとしてMathクラスとRandomクラスが提供されており、各クラスの基本的な使い方をご紹介していきたいと思います。

    Javaで利用される乱数とは

    Javaのサンプルコードで乱数の生成方法をご紹介する前に、乱数とは何かについてご紹介しておきたいと思います。

    そもそも乱数ってなに?

    乱数は、どんな値が出るか分からないランダムに出力された数値のことを指します。

    Javaでは整数値以外にも小数点の値などを含めた乱数を取り扱うことが可能です。

    乱数の使いどころは?

    Javaのシステムで乱数を使う機会としては、暗号化処理やシミュレーション、ゲーム関連のプログラムを作成する際に頻繁に利用されます。

    Javaで利用できる乱数を生成するためのクラスとは

    Javaで乱数を生成するためには「Mathクラス」と「Random」クラスが利用されます。

    それぞれの基本情報をご紹介していきます。

    Mathクラス

    Javaで提供されているMathクラスは乱数生成のためのクラスというわけではなく、様々な数値に関する計算や処理を行う際に利用するクラスです。

    Mathクラスから提供されている「random」メソッドを利用することで簡単に乱数を生成することが可能となります。

    ポテパンダの一言メモ

    「random」メソッドから返却される値は0.0~1.0未満の範囲でdouble型の乱数となります。

    Randomクラス

    Randomクラスは乱数生成用のクラスで様々な型で値を返すことが可能です。

    Randomクラスで生成される乱数は「シード」と呼ばれる数値から乱数を生成する「乱数ジェネレーター」です。

    Randomクラスで生成した乱数は、「シード」の値が分かると生成される値を予測することが出来ることから、プログラミングで生成する乱数を意味する「擬似乱数」と呼ばれています。

    Javaで乱数を生成してみよう

    ここからは「Math」クラス、「Random」クラスのサンプルコードを掲載しながら基本的な使い方をご紹介していきたいと思います。

    Mathクラスを利用して乱数を生成してみよう

    まずはMathクラスの「random」メソッドを使用して乱数を生成したサンプルコードです。

    上記のサンプルコードを実行した結果が下記の通りです。

    サンプルコードでは「random」メソッドで5つの乱数を生成し値を出力していますが、それぞれの値が0.0~1.0未満でランダムに生成された値となっていることがご確認頂けるかと思います。

    Randomクラスを利用して乱数を生成してみよう

    次にRandomクラスを利用して乱数を生成するサンプルコードをです。

    Randomクラスにはいくつかのメソッドが提供されており、利用するメソッドによって生成出来る乱数の条件が変わってきます。

    シード指定なしで乱数を生成

    上記のサンプルコードを実行した結果が下記の通りとなります。

    それぞれ「nextBoolean」メソッドではboolean型の結果を返し、「nextDouble」メソッドではdouble型の結果を返却する乱数ジェネレーターとなります。

    「nextInt」メソッドにはint型の引数を指定する事が可能で、「指定した引数の値 – 1」の範囲内で乱数が生成されます。

    シード指定有りで乱数を生成

    上記のサンプルコードを出力した結果が下記の通りとなります。

    注目して頂きたいのが※1と※2の行で、Randomクラスのインスタンスを生成する際に同じシード値を指定しています。

    すると出力結果のように何度実行しても同じ結果が返ってくる事がご確認頂けます。

    さいごに:Javaで乱数を扱うクラスは「Math」と「Random」

    本記事では、Javaで乱数を生成出来る方法として「Math」クラスの「random」メソッドと「Random」クラスをご紹介してきました。

    手軽に0.0〜1.0未満の乱数を生成したい場合には「Math」クラス、それ以外は基本的に「Random」クラスを使用するのが一般的となるようです。

    今回ご紹介した基本的な使い方を参考に、乱数生成のプログラムを作成してみてください。



    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE