含有章节索引的中文 文章模板
-- hoxide [2004-08-12 21:50:47]
24点程序问与答
简述
基本思路
实质还是穷举法,万能方法:) 思路是:考虑n个数所能形成的所有计算结果. 解法:用递归n个数所能形成的所有计算结果=n个数中随便取一个,再与剩下的n-1个数所能形成的计算结果作+-*/运算.为输出表达式在形成计算结果同时形成计算表达式.
这是个很粗糙的方法,还有很多要改进,首先因为使用dict来去除计算结果相同的项,所以最后只能得到一个解(当然用list,可以得到所有解,但是还是要进一步考虑如何去除"实质性相同的解".简单的方法是规定一个标准表达形式,比如连续的加在减之前做,乘在除前做,加和减乘的顺序按数组大小依次进行,等等.然后把所有表达式化为标准形式,然后去除相同的表达式).其次这个算法进行了很多重复计算,减少计算次数的有效方法是把递归解开来.先从1开始,最后做到n,有兴趣大家可以试试.
写这个程序的目的是快速解决n点问题(不只是24点,4个数字):P.OK我要说得说完了.
小节标题1
1 Python code
次节标题1
xxx
章标题2
小节标题2
其它 代码引用
次节标题2
yyy