我“狗尾續貂”壹下:
概率問題有兩條法則:壹個是加法,壹個是乘法
為了方便說明,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+"%");
}
}