首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java SE 基礎:Math 與 Random 類產生隨機數值完整指南

     編輯:Java 綜合教學

Math 類常用靜態方法

java.lang.Math 類提供了豐富的數學運算方法,皆為靜態方法,可直接透過類名呼叫:

public class MathDemo {
    public static void main(String[] args) {
        System.out.println(Math.sqrt(16));    // 平方根:4.0
        System.out.println(Math.pow(2, 3));   // 次方:8.0
        System.out.println(Math.round(13.64)); // 四捨五入:14
        System.out.println(Math.random());    // 0.0 ~ 1.0 間的隨機 double
    }
}

Random 類:更強大的隨機數生成器

java.util.Random 需實例化後使用,支援指定範圍與多種資料型別:

import java.util.Random;

public class RandomDemo {
    public static void main(String[] args) {
        Random r = new Random();
        for (int i = 0; i < 6; i++) {
            // 產生 0~99 的隨機整數
            System.out.print(r.nextInt(100) + "\t");
        }
    }
}

核心差異比較

特性Math.random()Random 類
呼叫方式靜態方法實例方法
回傳型別double (0.0~1.0)int, long, float, double, boolean 等
範圍控制需自行計算縮放直接指定上界
執行緒安全是是(但高併發建議用 ThreadLocalRandom)
種子控制不可控可指定種子實現可重現序列

實務建議

  • 簡單臨時需求:Math.random() 即可
  • 需要整數、指定範圍、多型別:使用 Random
  • 高併發環境:優先選擇 ThreadLocalRandom (Java 7+)
  • 加密安全需求:必須使用 SecureRandom

進階用法範例

// 指定種子,產生可重現序列(測試/除錯專用)
Random seeded = new Random(12345L); 

// 產生 10~20 之間的隨機整數
int bounded = 10 + r.nextInt(11); // 10 + [0,10] = [10,20]

// 產生高斯分佈隨機數
double gaussian = r.nextGaussian(); // 平均 0,標準差 1
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved