當前位置:編程學習大全網 - 編程語言 - 色子的概率問題

色子的概率問題

funwo 說的很對很經典!

我“狗尾續貂”壹下:

概率問題有兩條法則:壹個是加法,壹個是乘法

為了方便說明,a[i]表示第壹個碗是i點的概率,b[j]表示第二個碗是j點的概率,那麽所求的就是:

a[3]*b[4]+a[3]*b[5]+...+a[3]*b[24]

+a[4]*b[5]+a[4]*b[6]+...+a[4]*b[24]

+..........

+a[18]*b[19]+a[18]*b[20]+...+a[18]*b[24]

第壹個碗的點數在3-18之間 先分別算出3點-18點的概率各是多少

a[3] is 1/216 0.46296296%

a[4] is 3/216 1.388889%

a[5] is 6/216 2.777778%

a[6] is 10/216 4.6296296%

a[7] is 15/216 6.9444447%

a[8] is 21/216 9.722222%

a[9] is 25/216 11.574074%

a[10] is 27/216 12.5%

a[11] is 27/216 12.5%

a[12] is 25/216 11.574074%

a[13] is 21/216 9.722222%

a[14] is 15/216 6.9444447%

a[15] is 10/216 4.6296296%

a[16] is 6/216 2.777778%

a[17] is 3/216 1.388889%

a[18] is 1/216 0.46296296%

第二個碗的點數在4-24之間 算出4點-24點的概率各是

b[4] is 1/1296 0.07716049%

b[5] is 4/1296 0.30864197%

b[6] is 10/1296 0.77160496%

b[7] is 20/1296 1.5432099%

b[8] is 35/1296 2.7006173%

b[9] is 56/1296 4.3209877%

b[10] is 80/1296 6.1728396%

b[11] is 104/1296 8.024691%

b[12] is 125/1296 9.6450615%

b[13] is 140/1296 10.802469%

b[14] is 146/1296 11.265432%

b[15] is 140/1296 10.802469%

b[16] is 125/1296 9.6450615%

b[17] is 104/1296 8.024691%

b[18] is 80/1296 6.1728396%

b[19] is 56/1296 4.3209877%

b[20] is 35/1296 2.7006173%

b[21] is 20/1296 1.5432099%

b[22] is 10/1296 0.77160496%

b[23] is 4/1296 0.30864197%

b[24] is 1/1296 0.07716049%

計算

a[3]*b[4]+a[3]*b[5]+...+a[3]*b[24]

+a[4]*b[5]+a[4]*b[6]+...+a[4]*b[24]

+..........

+a[18]*b[19]+a[18]*b[20]+...+a[18]*b[24]

=74.28305041152264%

附上程序:

public class Sezi {

public static void main(String[] args) {

// TODO Auto-generated method stub

int i,j,k,l,sum;

int ttt=216;

int tttt=1296;

int[] a=new int[19];

int[] b=new int[25];

double s=0;

for(i=0;i<19;i++){

a[i]=0;

}

for(i=0;i<25;i++){

b[i]=0;

}

for(i=1;i<=6;i++){

for(j =1;j<=6;j++){

for(k = 1;k<=6;k++){

sum = 0;

sum =i+j+k;

a[sum]= a[sum]+1;

}

}

}

for(i=3;i<19;i++){

System.out.println("a["+i+"] is "+a[i]+"/216 "+((float)a[i]/ttt*100)+"%");

}

for(i=1;i<=6;i++){

for(j =1;j<=6;j++){

for(k = 1;k<=6;k++){

for(l = 1;l<=6;l++){

sum = 0;

sum =i+j+k+l;

b[sum]= b[sum]+1;

}

}

}

}

for(i=4;i<25;i++){

System.out.println("b["+i+"] is "+b[i]+"/1296 "+((float)b[i]/tttt*100)+"%");

}

for(i=3;i<=18;i++){

for(j =4;j<=24;j++){

if(j>i){

s = s+(double)a[i]*b[j];

}

}

}

System.out.println("gailv"+s+"/"+1296*216+"="+s/1296*100/216+"%");

}

}

  • 上一篇:求所有奧運知識的答案
  • 下一篇:iOS SDK開發中的情形
  • copyright 2024編程學習大全網