24点游戏的简单实现
作者:tyc611.cublog.cn,2008-10-01
【算法原理】
对于初始给出的四个数,可以看成是由四个子表达式构成的子表达式集合,问题就转换为使用合适的运算符把子表达式集合中的所有子表达式组合起来,使得最终合成表达式的结果为24。
算法通过递归实现:每次递归过程中,从子表达式集合中选出两个子表达式并从子表达式集合中删除这两个子表达式(枚举所有可能的组合),并使用所有可能的运算符计算出结果,并把结果表达式加入子表达式集合中;当子表达式集合中只有一个表达式时,检验该子表达式的结果是否等于24,如果相等则找到一个结果等于24的表达式。
【实现】
这里给出的实现提供了两个接口:一个接口计算出一个这样的表达式后立即返回,另一个计算出所有的这种表达式。另外,这里的实现没有考虑表达式去重问题,表达式重复的判断标准以及如何有效去重值得思考。
采用C++实现代码下载:
|
文件: | Game24.zip |
大小: | 3KB |
下载: | 下载 |
|
PS,
今天是伟大的祖国的生日,祝大家节日快乐!(*^__^*)
阅读(1277) | 评论(0) | 转发(0) |