枚举法,又被称为穷举法,它是用穷尽每一种可能的情况,效率不高,适用于没有明显规律的情况。同时又最为耗时的一种解决实际问题的算法思想。
穷举法也是一种针对于密码的破译方法,比如一个四位并且全部由数字组成其密码共有10000种组合,也就是说最多我们会尝试9999次才能找到真正的密码。利用这种方法我们可以运用计算机来进行逐个推算,也就是说我们破解任何一个密码也都是时间问题,缺点是数据量过大会导致时间崩溃。
枚举法的基本思想:
枚举法的基本思想是根据提出的问题枚举所有可能状态,并用问题给定的条件检验哪些是需要的,哪些是不需要的。能使命题成立,即为其解。
枚举结构:循环+判断;
枚举法的条件:
虽然枚举法本质上属于搜索策略,但是它与后面讲的回溯法有所不同。因为适用枚举法求解的问题必须满足两个条件:
(1).可预先确定每个状态的元素个数n;
(2).状态元素a1,a2……an的可能值为一个连续的值域。
枚举法的框架结构:
设ai1—状态元素ai的最小值;aik—状态元素ai的最大值(1≤i≤n),即a11≤a1≤a1k,a21≤a2≤a2k, ai1≤ai≤aik,……,an1≤an≤ank