暴力破解方法2025年3月17日 | 阅读 3 分钟 暴力方法是一种寻找所有可能解决方案以找到给定问题的满意解决方案的方法。暴力算法会尝试所有可能性,直到找到满意的解决方案。 这种算法可以分为两种类型
让我们通过一个例子来理解暴力搜索。 假设我们已将问题转换为如下所示的树形式 ![]() 暴力搜索会考虑树的每一个状态,并且状态以节点的形式表示。 就起始位置而言,我们有两个选择,即 A 状态和 B 状态。 我们既可以生成 A 状态,也可以生成 B 状态。 在 B 状态的情况下,我们有两个状态,即 E 状态和 F 状态。 在暴力搜索的情况下,每个状态都会被逐个考虑。 如我们在上面的树中观察到的那样,暴力搜索需要 12 步才能找到解决方案。 另一方面,使用深度优先搜索的回溯只会在状态提供可行解决方案时才考虑以下状态。 考虑上述树,从根节点开始,然后移动到节点 A,然后移动到节点 C。 如果节点 C 没有提供可行的解决方案,那么考虑状态 G 和 H 就毫无意义。 我们从节点 C 回溯到节点 A。 然后,我们从节点 A 移动到节点 D。 由于节点 D 未提供可行的解决方案,我们放弃此状态并从节点 D 回溯到节点 A。 我们移动到节点 B,然后从节点 B 移动到节点 E。 我们从节点 E 移动到节点 K; 由于 k 是一个解决方案,因此需要 10 步才能找到解决方案。 这样,我们在一个迭代中消除了大量状态。 因此,我们可以说回溯比暴力方法更快、更有效。 暴力算法的优点以下是暴力算法的优点
暴力算法的缺点以下是暴力算法的缺点
下一主题分数与 0/1 背包问题 |
我们请求您订阅我们的新闻通讯以获取最新更新。