24点游戏探秘系列6:
用概率统计的眼光看24点游戏
作者 ococo 2003/1/30
24点游戏是用四张牌使用加减乘除先得出24者为赢(其中A代表1;J代表11;Q代表12;K代表13;大小王代表5)。
解24点游戏时,需要试多少次才知道是否有解呢?为了简单起见,这里只讨论四数不同的情况。
首先看两个数用加减乘除运算,看有几种情况:
a + b
a * b
a - b
a / b
b - a
b / a
去除与(a+b)等价的(b+a),和与(a*b)等价的(b*a),有6种情况。
从4个数中取两个数,根据概率统计可知有4*3/2=6种可能。
因此,第一步计算有4*3/2 * 6 = 36种可能。
现在,有一个计算出的数,和4个数中的另外两个,共3个数。需要从中再取出两个并选择一个运算方式。这次运算又有3*2/2*6 = 18 种可能(原理同上)。
最后两个数的运算又有 2*1/2*6 = 6种可能。
因此,总的来看,每一组数都有36*18*6 = 3888种可能情况。每个解都是这3888种情况中的一种。计算机求解也是在这3888种情况中逐一尝试进行的。
那么又有多少组数呢。这就简单了。四个数都不相同时,有13*12*11*10 = 17160组数。
求所有局面的所有解,也就是17160*3888 = 66718080种情况,做这个对现在的家用电脑都是小菜一碟,瞬间完成的。
以下是不重复1-13的四个数有解个数的分布情况:
108组数没有解。
其他情况为:
sum(1-10)=356 //表示 有356组的解的个数在(1-10)之间
sum(11-20)=121
sum(21-30)=80
sum(31-40)=29
sum(41-50)=8
sum(51-60)=5
sum(61-70)=2
sum(71-80)=2
sum(81-90)=2
sum(91-100)=1
sum(101-110)=0
sum(111-120)=1