導航:首頁 > 編程語言 > java計算概率

java計算概率

發布時間:2025-03-31 03:32:43

java程序:編寫生成100個1-6之間的隨機數,統計1—6每個出現的概率,菜鳥看不懂程序

1.用內置方法Math.random()產生一個隨機數介於0~1。
2.強制轉化為int類型,根據int類型的特點,這個數是0~5之間的整數。
3.得到的數加1,這樣這個數就是介於1~6的整數,並且是隨機的。
4.將介於1~6之間的這個整數賦值給randomNum
5.(重點)probability是個數組,這個程序的演算法就是:利用probability這個數組記錄隨機數出現的次數,probability[0]記錄隨機數1出現的次數,就是當出現的隨機數為1時,數組的probability[randomNum-1]項加1(randomNum-1是為了表現演算法,實際的程序中是不需要先加1再減1的)。同理:其它的隨意數也做這樣的處理。這樣,probability這個數組中[0]項保存的是1的出現次數,[1]項保存的是2出現的次數…………
6.輸出隨機數的值(後面加個空格「\t」)
7.循環到步驟第1.個步驟.

② 初學java,突然想算一下買20年雙色球中一等獎概率,用java編譯時沒出錯,運行時出錯了。問一下哪錯了。

classSsq{
publicstaticvoidmain(String[]args){
//Gailvaa=newZonggailv();
System.out.println(Zonggailv.g());
}
}

java裡面一般用println輸出。

③ Java編程生成100個1~6之間的隨機數,統計1~6每個數出現的概率;

java里生成隨機數主要有2個方法比較常用.

1.Random類. 在java.util.包里, 有多種方法可以隨機產生int, long, double,boolean等類型

2.Math 類,在java.lang.包里, 可以生成一個[0~1)之間的隨機浮點數

*備注* :a. )使用Random需要導包,但是使用Math無需導包.

b. )Math底層還是調用了Random類的nextDouble()方法

例如生成[1,6]之間的隨機數

1 .Random的方法,生成的隨機數

Randomr=newRandom();	
intnum1=r.nextInt(6)+1;//r.next(6)生成的是0~5之間的數字,需要+1,才是[1~6]之間的數字

2. Math的方法,進行隨機數的生成

intnum=(int)(Math.random()*6)+1;
//(int)(Math.random()*6)生成的是0~5之間的整數
//需要+1才是[1~6]的數字

2. 可以使用數組的方法來存出現的次數. 數字1~6 是連續的, 數組下標也是連續的.我們可以用下標[0~5] 來代表數字[1~6], 數組的每個格子用來存數字數字出現的次數

//本題使用數組來寫代碼比較方便,簡潔.
importjava.util.Random;

publicclassRandomDemo{
publicstaticvoidmain(String[]args){
int[]times=newint[6];//6個格子的數組,存儲出現的次數
intn=100;//循環的次數
Randomr=newRandom();
for(inti=0;i<n;i++){
intnum=r.nextInt(6)+1;//方法1隨機產生1~6的數字
//intnum=(int)(Math.random()*6)+1;//方法2隨機產生1~6的數字
times[num-1]=times[num-1]+1;//次數增加1
}

for(inti=0;i<times.length;i++){
System.out.println((i+1)+"出現的次數"+times[i]);
}
}
}

輸出: 當n=100時

1出現的次數13
2出現的次數16
3出現的次數17
4出現的次數23
5出現的次數21
6出現的次數10

輸出: 當n=1000時

1出現的次數160
2出現的次數177
3出現的次數161
4出現的次數169
5出現的次數175
6出現的次數158

④ java投擲骰子,求點數的出現概率

很簡單 。
int [] num = new int[3]; //數組長度為3
int diag=0; //統計出現5的次數
for(int i=0;i>3;i++){ //擲骰子三次 ,也就是三個骰子
隨機數字 num[i]=(int)(Math.random()*5)+1; //隨機1-6的數字
if(num[i]==5){
diag++; //當骰子等於5的時候,統計次數加1;
}
}
double a=diag/3; //骰子出現5的次數,除以骰子總數,得到概率。
System.out.println(a);

⑤ java中如何以不同概率產生隨機數1-30

Random rm = new Random();
int i = rm.nextInt(18);
int n = 0;
if(i > 8){
n = rm.nextInt(10)+1;
}else if(i > 2&&i <= 8){
n = rm.nextInt(11) + 10;
}else if(i<=2){
n = rm.nextInt(11) + 20;
}

這樣生成的整數n是 3/6的概率在1-10之間,2/6的概率是在10-20之間,1/6的概率是在20-30之間(這種都是偽隨機,但盡量接近概率)
你看看這樣行不行
希望對你有幫助

⑥ java集五福活動概率技術如何實現

⑦ 求java演算法:根據物品的數量來確定抽獎的概率(當物品數量為0時無論如何都不可能選到)

public class Lottery {

private int m = 1000;//發放獎券的數量
private int n = 2;//獎品的數量

public boolean getLottery(){
boolean isLottery = false;
double d = (double)n/(double)m;//中獎概率
double r = Math.random();//0~1之間的隨機數,包括0
if(r<d){//如果隨機數小於概率 那麼中獎
n--;//獎品數量-1
isLottery = true;
}
m--;//獎券數量-1
return isLottery;
}

}

閱讀全文

與java計算概率相關的資料

熱點內容
怎麼搭建雲播伺服器 瀏覽:865
網站客服機器人源碼 瀏覽:314
2021程序員的出路 瀏覽:545
發行與承銷pdf 瀏覽:943
編譯器中的主要數據結構 瀏覽:894
7z解壓ziputf8 瀏覽:96
python微博相冊 瀏覽:104
雅思聽力速成pdf 瀏覽:126
程序員還貸 瀏覽:462
地基上柱子筋加密 瀏覽:649
郵件加密伺服器 瀏覽:734
手印直播源碼 瀏覽:933
php網站後台密碼忘記了 瀏覽:807
編譯器可以分成幾個階段 瀏覽:259
linux查看文件類型命令 瀏覽:337
美團開發是編程的嗎 瀏覽:516
福永八方匯編程 瀏覽:384
源碼積分隨機什麼意思 瀏覽:146
reddit排名演算法 瀏覽:46
vba網路編程 瀏覽:850