枚举算法也叫穷举算法,其最大特点是在面对任何情况时会尝试每一种解决方法。在进行归纳推理时,如果逐个考查了某类事件的所有可能情况后得出一般结论,那么这个结论是可靠的,这种归纳方法叫作枚举法。枚举算法的思想是:将问题的所有可能的答案一一列举,然后根据条件判断答案是否合适,最后保留合适的,丢弃不合适的。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。返回值如下:
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