算二十四(Calculate 24)

| | 评论(1)

算二十四(Calculate 24)


春节在家看电视,王小丫主持的那节目有了算二十四。我对这一道题向来觉得不大会算,今天又碰到两个难题:5 5 5 1和8 8 3 3,想了很久,后面一道还做不出来。正好比较空闲,就想编个程序来自动求解。

基本思路:穷举法。用一个双精度数组存数,然后用类似冒泡排序法的双重循环(这样保证覆盖了四个数的C(4,2)种排列),把任意两个数组元素作运算( + - * /),考虑到- * /运算的非对易性,每次产生七个分支。对于长度为N的数组(算二十四的最开始是四个元素),这样做一次后删掉参与计算的两个元素,把运算结果作为新元素填入,这样得到长度为(N-1)的数组。这个新数组又可以递归调用前面的代码。在递归函数中判断,如果数组长度为1就看是不是24. 如果是就求解成功,否则遍历下一个分支。

做不出5 5 5 1或8 8 3 3的解法?下载我的程序

posted 2004.02.09 Monday

分类

评论(1)

你的程序真的好棒啊~!~!太好了~!我以后不用为二十四点为难了,谢谢你啊~!

发表评论

关于此日记

此日记由mach发表于2004年2月 9日 00:33

此Blog上的上一篇日记沔阳食品(上)

此Blog上的下一篇日记Hide a picture

主索引归档页可以看到最新的日记和所有日记。

Powered by Movable Type 4.0