第七题:绳圈
题目描述
今有 100 根绳子,当然会有 200 个绳头。
如果任意取绳头两两配对,把所有绳头都打结连接起来。最后会形成若干个绳圈(不考虑是否套在一起)。
我们的问题是:请计算最后将形成多少个绳圈的概率最大?
注意:结果是一个整数,请通过浏览器提交该数字。不要填写多余的内容。
public class MainG {
static double[][] p=new double[101][101];
static double temp=-1.0;
static int mark=0;
public static void main(String[] args){
for(int i=0;i<=100;i++){
p[0][i]=0.0;
p[i][0]=0.0;
}
p[1][1]=1.0;
p[2][1]=2/3.0;
p[2][2]=1/3.0;
for(int i=3;i<=100;i++){
for(int j=1;j<=i;j++){
p[i][j]=(p[i-1][j]*2.0*(i-1) +p[i-1][j-1])/(2*i-1.0);
System.out.println("p["+i+"]["+j+"] = " + p[i][j]);
}
}
for(int i=1;i<=100;i++){
if(p[100][i]>temp){
temp=p[100][i];
mark=i;
}
}
System.out.println("mark = " + mark);
}
}
3