标题:
由农心杯想到个数学问题
[打印本页]
作者:
邓仲华
时间:
2008-4-3 12:08
标题:
由农心杯想到个数学问题
想到这个问题是从棋迷网看到一个帖子:
“昨天是第6期杂志付印的最后一天,编辑们在一起看稿子。
对常昊VS朴永训棋评中的一句话“虽然三国仅剩余5位棋手,但胜负的进程可以组合成数十个结果,每个棋手都要有随时出局或者终结比赛的心理准备。”我在写得时候略微一算,感觉不下20个结果,也不会超过百个组合就落笔了。后来有编辑问:到底会有几种胜负组合?”
对于这个问题棋迷网的朋友是用列举的“笨”办法赢算的即:
本届比赛最后一阶段三国的出场顺序:
日本:高尾
中国:常昊、古力
韩国:李昌镐、朴永训(两人不确定出场次序)
而且第一局是常昊对高尾
常昊3连胜2种组合:
1、○高尾○李○朴
2、○高尾○朴○李
常昊2胜1负好像就4种组合:
3、○高尾○李●朴——古○朴
4、○高尾○李●朴——古●朴
5、○高尾○朴●李——古○李
6、○高尾○朴●李——古●李
常昊1胜1负好像有6种组合:
7、○高尾●朴——古●朴
8、○高尾●朴——古○朴——古○李
9、○高尾●朴——古○朴——古●李
10、○高尾●李——古●李
11、○高尾●李——古○李——古○朴
12、○高尾●李——古○李——古●朴
那么常不胜的情况下,高尾4连胜有2种组合:
13、常●高尾——高尾○李○古○朴
14、常●高尾——高尾○朴○古○李
高尾3胜1负也有2种组合:
15、常●高尾——高尾○李○古●朴
16、常●高尾——高尾○朴○古●李
高尾2胜1负有4种组合:
17、常●高尾——高尾○李●古——古○朴
18、常●高尾——高尾○李●古——古●朴
19、常●高尾——高尾○朴●古——古○李
20、常●高尾——高尾○朴●古——古●李
高尾1胜1负有6种组合:
21、常●高尾——高尾●李——李○古
22、常●高尾——高尾●李——李●古——古○朴
23、常●高尾——高尾●李——李●古——古●朴
24、常●高尾——高尾●朴——朴○古
25、常●高尾——高尾●朴——朴●古——古○李
26、常●高尾——高尾●朴——朴●古——古●李
这样有26种组合,说明一下上面的黑点代表前面的棋手输给后面的棋手,白点则代表前面的棋手获胜
那么自然想到另一个问题即从农心杯第一局比赛开始计算的话总共有多少中胜负组合?
说明:农心杯采用中日韩三国轮流打擂的比赛的形式,每方各有5位选手,因出场棋手在棋局开始前一小时宣布,所以选手出场顺序并不确定.第一局对阵的两国由抽签决定,比赛决出冠军最少要下10局(1方先锋10连胜),最多要下14局
我也不知道说明白了没有,青石兄看有什麽没说清的补充一下
作者:
青石
时间:
2008-4-3 15:12
嗯 我补充一下各国的棋手
中国:彭荃、王檄、胡耀宇、常昊、古力
日本:羽根直树、山田规三生、河野临、高尾绅路、依田纪基
韩国:洪旼杓、睦镇硕、赵汉乘、朴永训、李昌镐
有如下问题:
1、一共有多少种胜负组合?
2、要夺冠的话,最多需要赢几盘棋,最少需要赢几盘棋?
欢迎邓兄补充问题,希望大家能讨论一下
[
本帖最后由 青石 于 2008-4-3 15:13 编辑
]
作者:
风精之羽
时间:
2008-4-13 15:11
我写了个程序算了下,结果是57840480000种,我把程序贴出来,大家帮忙看看逻辑上有没错误?
用duizhen函数对顶楼的duizhen(1,2,2,0)情况运算结果也为26。
double duizhen(double x1,double x2,double x3,int flag);
main()
{
double number;
number=3*25*duizhen(5,5,5,0); /*三国出场顺序有3种,首轮对手选择方式有25种。*/
printf("%lf",number);
getch();
}
double duizhen(double x1,double x2,double x3,int flag) /*flag=0表示1,2对阵,flag=1表示1,3对阵,flag=2表示2,3对阵*/
{
double num=1;
if(x1>0&&x2>0&&x3>0)
{
if(flag==0)
{
num=x3*(duizhen(x1,x2-1,x3,1)+duizhen(x1-1,x2,x3,2));
}
else if(flag==1)
{
num=x2*(duizhen(x1,x2,x3-1,0)+duizhen(x1-1,x2,x3,2));
}
else if(flag==2)
{
num=x1*(duizhen(x1,x2,x3-1,0)+duizhen(x1,x2-1,x3,1));
}
}
else if(x1==0&&x2>0&&x3>0)
{
if(x2>1&&x3>1)
{
num=(x2-1)*duizhen(x1,x2-1,x3,0)+(x3-1)*duizhen(x1,x2,x3-1,0);
}
else if(x2==1&&x3>1)
{
num=1+(x3-1)*duizhen(x1,x2,x3-1,0);
}
else if(x3==1&&x2>1)
{
num=1+(x2-1)*duizhen(x1,x2-1,x3,0);
}
else if(x3==1&&x2==1)
{
num=2;
}
}
else if(x2==0&&x1>0&&x3>0)
{
if(x1>1&&x3>1)
{
num=(x1-1)*duizhen(x1-1,x2,x3,0)+(x3-1)*duizhen(x1-1,x2,x3,0);
}
else if(x1==1&&x3>1)
{
num=1+(x3-1)*duizhen(x1,x2,x3-1,0);
}
else if(x3==1&&x1>1)
{
num=1+(x1-1)*duizhen(x1-1,x2,x3,0);
}
else if(x1==1&&x3==1)
{
num=2;
}
}
else if(x3==0&&x1>0&&x2>0)
{
if(x1>1&&x2>1)
{
num=(x1-1)*duizhen(x1-1,x2,x3,0)+(x2-1)*duizhen(x1,x2-1,x3,0);
}
else if(x1==1&&x2>1)
{
num=1+(x2-1)*duizhen(x1,x2-1,x3,0);
}
else if(x2==1&&x1>1)
{
num=1+(x1-1)*duizhen(x1-1,x2,x3,0);
}
else if(x1==1&&x2==1)
{
num=2;
}
}
return num;
}
[
本帖最后由 风精之羽 于 2008-4-13 16:41 编辑
]
欢迎光临 轩辕春秋文化论坛 (http://xycq.org.cn/forum/)
Powered by Discuz! 5.0.0