一个村子如果生男的,就停止,如果生女的,就继续,直到生到男的为止,那么男女比例会是多少?
public void calMW() {
double sumM = 0;// 生男数
double sumW = 0;// 生女数
int left = 20;
int fet = 1 << left;// 为了保证精度,扩大倍数
System.out.println(fet);
for (int i = 2; i < left; i++) {
double mul = fet;
for (int j = 0; j < i; j++) {// 为了保证精度 自己算Math.pow(0.5,i),但扩大了fet被
mul = mul * 0.5;
}
sumW += mul * (i - 1);
sumM += mul;
}
sumM += fet * 0.5;// 第0次只有男,没有女,因此男的需要加上该数
System.out.println("wemon:" + sumW + "\n men:" + sumM);
System.out.println("man/weman" + sumM / sumW);
System.out.println("wemon/man" + sumW / sumM);
}
public void calMW() {
double sumM = 0;// 生男数
double sumW = 0;// 生女数
int left = 20;
int fet = 1 << left;// 为了保证精度,扩大倍数
System.out.println(fet);
for (int i = 2; i < left; i++) {
double mul = fet;
for (int j = 0; j < i; j++) {// 为了保证精度 自己算Math.pow(0.5,i),但扩大了fet被
mul = mul * 0.5;
}
sumW += mul * (i - 1);
sumM += mul;
}
sumM += fet * 0.5;// 第0次只有男,没有女,因此男的需要加上该数
System.out.println("wemon:" + sumW + "\n men:" + sumM);
System.out.println("man/weman" + sumM / sumW);
System.out.println("wemon/man" + sumW / sumM);
}