1. 程式人生 > >如何產生隨機整數

如何產生隨機整數

pan can space default 賦值 方法 底層 pre 全部

  今天看到一個關於隨機數的小練習,題目是:編程生產 n個 1到 6 之間的隨機整數, 統計 1到 6 每 個數出現的概率。 我個人比較喜歡有隨機性的東西,所以就做了一下。

  首先必須需要產生隨機數,而據我現在了解的產生隨機數的方法有兩種:

  一是使用隨機數Random類:Random rand = new Random(); int a = rand.nextInt(6)+1;

該方法表示的是從0到6之間隨機產生整數,我們只需要加1即可。

  二是調用Math類中的rand()方法:int a = (int)(Math.random()*6+1);

需要註意的是,Math.random()方法產生的隨機數是0到1之間的小數,如果轉為整型的話就全部變為0了,所以需要對其產生的數進行運算再賦值。

  其實Math.random()方法的底層就是運用了Random類來進行計算產生隨機數的,但Math.random()方法使用較為簡單,所以在實際運用中,我們更傾向於使用Math.random()方法來產生隨機數。

完整程序如下:

package randomNum;

import java.util.Scanner;

public class RandomNumTset {

public static void main(String[] args) {

Scanner in = new Scanner(System.in);

int n = in.nextInt();

int count1 = 0;

int count2 = 0;

int count3 = 0;

int count4 = 0;

int count5 = 0;

int count6 = 0;

for (int i = 0; i < n; i++) {

int a = (int)(Math.random()*6+1);

//Random rand = new Random();

//int a = rand.nextInt(6)+1;

switch (a) {

case 1:

count1++;

break;

case 2:

count2++;

break;

case 3:

count3++;

break;

case 4:

count4++;

break;

case 5:

count5++;

break;

case 6:

count6++;

break;

default:

break;

}

System.out.println(a+" ");

}

System.out.println();

System.out.println("“1”出現的概率為"+count1/(double)n);

System.out.println("“2”出現的概率為"+count2/(double)n);

System.out.println("“3”出現的概率為"+count3/(double)n);

System.out.println("“4”出現的概率為"+count4/(double)n);

System.out.println("“5”出現的概率為"+count5/(double)n);

System.out.println("“6”出現的概率為"+count6/(double)n);

in.close();

}

}

輸入:100

輸出結果為:

“1”出現的概率為0.18
“2”出現的概率為0.17
“3”出現的概率為0.26
“4”出現的概率為0.18
“5”出現的概率為0.1
“6”出現的概率為0.11

ps:其中尤其註意各個數據的類型,以免出現錯誤。

如何產生隨機整數