工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Java

Java 乱数生成:Random クラスと Math.random 実践ガイド

この簡潔なチュートリアルでは、Java で乱数値を生成する2つの最も一般的なアプローチ、java.util.Random と Math.random() を学びます。両方とも JDK の一部ですが、それぞれわずかに異なるユースケースに適し、独自の機能を提供します。

java.util.Random での乱数生成

Random クラスは int、long、float、double、boolean 値を生成できます。一度インスタンス化して同じオブジェクトを再利用すると、パフォーマンスオーバーヘッドを回避できます。

以下は 0〜99(含む)の乱数整数を10個出力する完全な例です。上限を込みにする場合は引数に1を加えます。

import java.util.Random;
public class RandomNumbers {
    public static void main(String[] args) {
        Random rng = new Random();
        for (int i = 0; i < 10; i++) {
            int randomNumber = rng.nextInt(100); // 0-99
            System.out.println("Random No: " + randomNumber);
        }
    }
}

典型的な出力:

Random No: 17
Random No: 57
Random No: 73
Random No: 48
Random No: 68
Random No: 86
Random No: 34
Random No: 97
Random No: 73
Random No: 18

Random はほとんどの用途でスレッドセーフなため、必要なら同じインスタンスを複数スレッドで共有できます。再現可能なシーケンスが必要ならシードを渡します:new Random(42)。

Math.random() での乱数生成

[0.0, 1.0) の double がすぐに必要な場合、Math.random() が便利です。内部的には単一の Random インスタンスに委譲するため、小規模ワークロードでは効率的です。

例:double 値を10個生成。

public class DemoRandom {
    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            System.out.println(Math.random());
        }
    }
}

典型的な出力:

0.46518450373334297
0.14859851177803485
0.5628391820492477
0.6323378498048606
0.1740198445692248
0.9140544122258946
0.9167350036262347
0.49251219841030147
0.7426056725722353

異なる範囲の整数や double を得るには、Math.random() に算術を組み合わせます。例えば 1〜10(含む)のランダム整数:(int)(Math.random() * 10) + 1。

重要ポイント

Java

  1. Microsoft AzureへのJava EEアプリケーションデプロイ:ステップバイステップガイド
  2. Java Listインターフェース完全ガイド:実装クラスと主要メソッド
  3. Java TreeMap完全マスター:実例で学ぶソート済みマップ
  4. Javaコレクションアルゴリズム完全ガイド:ソート、シャッフル、検索など
  5. Javaオブジェクト配列の作成:ステップバイステップガイド
  6. Java String.length()メソッド:文字列サイズ取得の実例解説
  7. Java String.compareTo()マスター:構文、ユースケース、実践例
  8. Java BufferedReader でファイル読み込み:実践ガイドと例
  9. JavaでcharをStringに変換する方法:実践例とベストプラクティス
  10. Javaで再帰を使って文字列を反転させる方法
  11. Java 8ストリームAPI:宣言的データ処理の新しいアプローチ