女孩和机器人一起思考

一起动脑筋 · 先看一个小故事

两位暗号,每位只能是 0 或 1。机器人把 00、01、10、11 全部写出来。

把过程摊开来看

沿着编号看一遍,再用自己的话讲一遍
  1. 第一位 000、01
  2. 第一位 110、11
  3. 逐个检查共 4 种

暴力搜索直接检查所有候选,思路往往容易验证。

先估计候选数量,小规模时它可能很合适,也可作为检查更快算法的参照。

01什么是暴力搜索?

暴力搜索(Brute Force Search)就是把可能答案按规则一个一个检查。

例如从 0000 到 9999 尝试一个四位密码,最多要检查 10000 种情况。

02暴力搜索是不是很笨?

不一定。

如果候选数量不大,暴力方法可能最简单、最可靠,也最容易写对。

03暴力搜索和枚举有什么关系?

两者非常接近。

枚举强调“系统列出候选”,暴力搜索则更强调“把候选空间直接探索一遍”。在很多入门题里,两种说法可以描述相似思路。

04怎样保证不漏情况?

关键是定义清楚搜索空间。

候选是什么?

所有可能答案。

范围是什么?

起点和终点。

检查规则是什么?

如何判断是否满足题意。

05什么时候会变慢?

当选择层数变多时,候选数量可能迅速增长。

例如每一步有 2 种选择,连续做 n 步,就可能出现:

2^n 种组合

n 稍微变大,数量就会急剧增加。

06暴力方法还有什么用?

  • 验证更复杂算法是否正确
  • 处理小数据子任务
  • 帮助发现问题规律
  • 作为剪枝、动态规划等优化方法的起点

你已经知道了什么

  • 暴力搜索会系统检查所有候选。
  • 它不是乱试,而是完整覆盖搜索空间。
  • 数据规模小时,暴力方法可能非常合适。
  • 候选数量可能随问题规模指数增长。
  • 暴力算法常是优化算法的重要基线。

下一篇:DFS:一条路走到底

轮到你来试一试

增加第三位,每位仍有两种选择,共多少种?

想好了吗?点开看解释

8 种。原来每一种都能再接 0 或 1,所以数量翻倍。