购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.1 枚举算法

枚举算法也叫穷举算法,其最大特点是在面对任何情况时会尝试每一种解决方法。在进行归纳推理时,如果逐个考查了某类事件的所有可能情况后得出一般结论,那么这个结论是可靠的,这种归纳方法叫作枚举法。枚举算法的思想是:将问题的所有可能的答案一一列举,然后根据条件判断答案是否合适,最后保留合适的,丢弃不合适的。Python中一般用while循环或if语句实现。

使用枚举算法的基本思路:

(1)确定枚举对象、枚举范围和判定条件。

(2)逐一列举可能的解,验证每个解是否是问题的解。

一般情况下,按照下面三个步骤进行:

(1)解的可能范围,不能遗漏任何一个真正解,也要避免有重复解。

(2)判断是否是真正解的方法。

(3)使可能解的范围降至最小,以便提高解决问题的效率。

【例3-1】 枚举算法计算24点游戏。

解析: 24点是一款经典的棋牌类益智游戏,要求4个数字的运算结果等于24。即用加、减、乘、除把牌面上的数算成24。每张牌必须只能用一次,例如:抽出的牌为3、8、8、9,那么(9-8)×8×3=24。

运行程序,结果解析:cards中的牌数,最终通过加减乘除得出24,而1111这4个数不能通过加、减、乘、除得到24。返回值如下: o2h3v+hlbkN4SU9RtAg24OqoLEG02STvuFxFV1rd4gsYZ7PI7E7DBDt8v6rIn1VS

     24点结果=(2+4) * (8-4)
     24点结果=((1+1)+2) * 6
     24点结果=(1+2) * (1+7)
     24点结果=(1+(1 * 2)) * 8
     24点结果=(2+4) * (8-4)
     Not fond
点击中间区域
呼出菜单
上一章
目录
下一章
×