1. 程式人生 > >java隨機數Reandom(簡單介紹)

java隨機數Reandom(簡單介紹)

clas rand tint 隨機數生成 math number 數字 style 兩個

簡單介紹

Java中存在著兩種Random函數

一、java.lang.Math.Random;

  調用這個Math.Random()函數能夠返回帶正號的double值,該值大於等於0.0且小於1.0,即取值範圍是[0.0,1.0)的左閉右開區間,返回值是一個偽隨機選擇的數,在該範圍內(近似)均勻分布。

二、java.util.Random

  Random()的兩種構造方法:

     1、Random():創建一個新的隨機數生成器。

     2、Random(long seed):使用單個 long 種子創建一個新的隨機數生成器。

    我們可以在構造Random對象的時候指定種子(這裏指定種子有何作用,請接著往下看)

    如:Random r1 = new Random(20);或者默認當前系統時間的毫秒數作為種子數:Random r1 = new Random();

    需要說明的是:你在創建一個Random對象的時候可以給定任意一個合法的種子數,種子數只是隨機算法的起源數字,和生成的隨機數的區間沒有任何關系。

    Java產生隨機數需要有一個基值seed,在第一種方法中基值缺省,則將系統時間作為seed。

     普通方法:

     1、public synonronized void setSeed(long seed) 該方法是設定基值seed。

     2、public int nextInt() 該方法是產生一個整型隨機數。

    3、public long nextLong() 該方法是產生一個long型隨機數。

    4、public float nextFloat() 該方法是產生一個Float型隨機數。

    6、public double nextDouble() 該方法是產生一個Double型隨機數。

    7、public synchronized double nextGoussian() 該方法是產生一個double型的Goussian隨機數。

案列:

技術分享圖片

技術分享圖片
package com.wbg;

import java.lang.*;
import java.util.Random;

public
class RandomApp { public static void main(String args[]) { Random ran1 = new Random(); Random ran2 = new Random(12345);//創建了兩個類Random的對象。 System.out.println("The 1st set of random numbers:"); System.out.println(" Integer:" + ran1.nextInt()); System.out.println(" Long:" + ran1.nextLong()); System.out.println(" Float:" + ran1.nextFloat()); System.out.println(" Double:" + ran1.nextDouble()); System.out.println(" Gaussian:" + ran1.nextGaussian()); //產生各種類型的隨機數 for (int i = 0; i < 5; i++) { System.out.println(ran2.nextInt() + " "); if (i == 2) System.out.println();//產生同種類型的不同的隨機數。 } } }
View Code

也可以有nextFloat等等,各種基本類型都有 Math.random也可以

比如說你想要0-10之間的隨機數

你可以這樣寫 (int)(Math.random()*10);

《JAVA產生指定範圍的隨機數》 產生機制: 產生Min-Max之間的數字 實現原理:

//不能設定為int,必須設定為long

Math.round(Math.random()*(Max-Min)+Min) long Temp;

//產生1000到9999的隨機數

Temp=Math.round(Math.random()*8999+1000);

總結:

//第一個參數是結束數字 第二個參數是開始的數字
public static int reandom(int stop,int stat ){
        return (int)Math.round(Math.random()*(stat-stop)+stop);
    }

java隨機數Reandom(簡單介紹)