[問題] 樂透數學問題
小弟我對於樂透機率小有疑問
於是寫了個簡單的程式來跑一下
但不管怎麼跑總是搭不起來
我的問題如下
樂透49個號碼,我只簽2個號碼
要求出
2中0
2中1
2中2
三種狀況的機率
自己直接用公式算完的機率分別是
2中0 = 0.767857143
2中1 = 0.219387755
2中2 = 0.012755102
但是我自己寫了程式下去跑
機率總和永遠大於1
雖然誤差一定會有
但是這怎麼看都不太像是誤差QQ
想請各位前輩幫忙看看是否程式寫錯或是邏輯觀念錯誤
------------------------------------------
int count = 10000000; //跑一千萬次
int winOne = 0;
int winAll = 0;
int noWin = 0;
ArrayList<Integer> numList;
ArrayList<Integer> myNumList;
for (int i = 0; i < count; i++) {
numList = new ArrayList<>();
myNumList = new ArrayList<>();
//產生一組樂透號碼,6個數字
for (int n = 0; numList.size() < 6; n++) {
int num = (int) (Math.random() * 49 + 1);
if (!numList.contains(num)) {
numList.add(num);
}
}
//產生一組我的號碼,2個數字
for (int n = 0; myNumList.size() < 2; n++) {
int num = (int) (Math.random() * 49 + 1);
if (!myNumList.contains(num)) {
myNumList.add(num);
}
}
//檢查中獎
if (numList.contains(myNumList.get(0)) ||
numList.contains(myNumList.get(1)))
{
winOne += 1;
}
else
{
noWin += 1;
}
if (numList.contains(myNumList.get(0)) &&
numList.contains(myNumList.get(1)))
{
winAll += 1;
}
}
System.out.println("二中零機率 = " + (double) noWin / count );
System.out.println("二中一機率 = " + (double) winOne / count );
System.out.println("二中二機率 = " + (double) winAll / count );
System.out.println("加總 = " + (double) (noWin+winOne+winAll ) / count );
------------------------
本來想說自己看懂就好
所以程式寫得滿簡陋的請各位多多包涵
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.141.198.211
※ 文章網址: https://www.ptt.cc/bbs/java/M.1525678235.A.9AA.html
推
05/07 15:39,
6年前
, 1F
05/07 15:39, 1F
→
05/07 19:50,
6年前
, 2F
05/07 19:50, 2F
推
05/08 12:29,
6年前
, 3F
05/08 12:29, 3F
→
05/08 14:35,
6年前
, 4F
05/08 14:35, 4F
推
05/08 18:44,
6年前
, 5F
05/08 18:44, 5F
→
05/08 18:44,
6年前
, 6F
05/08 18:44, 6F
→
05/08 21:01,
6年前
, 7F
05/08 21:01, 7F
推
05/09 01:36,
6年前
, 8F
05/09 01:36, 8F
→
05/09 01:36,
6年前
, 9F
05/09 01:36, 9F
→
05/09 01:36,
6年前
, 10F
05/09 01:36, 10F
→
05/09 01:36,
6年前
, 11F
05/09 01:36, 11F
感謝,問題已解,還是乖乖寫else if寫好寫滿QQ
※ 編輯: taco2548 (223.141.198.211), 05/09/2018 08:01:08
→
05/09 13:09,
6年前
, 12F
05/09 13:09, 12F
→
05/09 13:09,
6年前
, 13F
05/09 13:09, 13F
→
05/09 13:11,
6年前
, 14F
05/09 13:11, 14F
→
05/09 13:12,
6年前
, 15F
05/09 13:12, 15F
→
05/09 13:13,
6年前
, 16F
05/09 13:13, 16F
推
05/09 16:30,
6年前
, 17F
05/09 16:30, 17F
java 近期熱門文章
PTT數位生活區 即時熱門文章