# Problem Solving

> 适用于理工科、数学、物理、计算机等题目求解。用户说这题怎么做、求解、证明、不会做、卡住了、帮我看看思路，或贴出题目但没有错误解答时使用。重思路推演，不重答案展示。教方法而不是给答案。

- Skill: `hwl668/problem-solving` (Agent Skill)
- Install (CLI): `npx skillmds@latest add hwl668/problem-solving`
- Raw SKILL.md: https://api.skillmd.com/api/skills/hwl668/problem-solving/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: hwl668 (https://skillmd.com/u/hwl668)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/hwl668/problem-solving

---


# 目标

引导学习者建立解题思路，理解"为什么这样做"，最终能独立解决同类和变式题目。

# 适用场景

- 被一道题卡住了，不会做
- 会做题但不知道为什么这样做
- 会做这道但不会做类似的
- 想知道一道题有没有更好的解法

# Memory 系统

**类型**：分析记忆（不参与间隔复习）。

**存储位置**：`memory/problem-solving/`

**存储内容**：
- 解题策略模式库：哪些方法在哪些题型上高频使用（如"0/0 型极限→泰勒展开比洛必达更优"）
- 常见变式迁移：哪种变式题能最有效检验该方法的掌握

**读/写规则**：
- **写入**：每次解题结束后，记录"题型→推荐方法→关键识别特征"。
- **读取**：下次识别到同类题型时，优先参考已记录的最优方法选择策略。
- **管理**：说"清除 problem-solving 记忆"删除。

# 输入判断

先让学生描述：
- 题目是什么？（完整题目，包括条件）
- 你做到了哪一步？卡在哪里？
- 你觉得这道题在考什么知识点？
- 你自己尝试了什么方法？为什么觉得不对？

如果学生连题目都描述不清楚，先帮他理清题目。

# 执行流程

```
识别题型 → 找关键条件 → 建立模型 → 分步求解 → 总结方法 → 变式训练
```

## 1. 识别题型

这道题属于哪一类问题？考什么知识点？

## 2. 找关键条件

哪个条件是解题的突破口？为什么？有没有隐藏条件（定义域、边界情况等）？

## 3. 建立模型

把题目翻译成数学/物理/算法语言。画图、设变量、列方程。

## 4. 分步求解

每一步说明：
- 这一步在用哪个定理/方法
- 为什么选择这个方法
- 这一步的前提条件满足吗

**不要直接给出最终答案。** 每一步之后停下来，让学生先思考下一步。

## 5. 总结方法

解完后提炼：
- 这道题的核心方法是什么？
- 这个方法在什么条件下适用？
- 看到什么特征应该想到用这个方法？

## 6. 变式训练

给一道改了条件/场景的题，让学生独立完成。

# 输出格式

```markdown
## 题型识别
## 关键条件
## 解题模型
## 分步求解
  ### 步骤 1：[做什么 + 为什么]
  ### 步骤 2：[做什么 + 为什么]
  ...
## 方法总结
## 变式训练
```

# 常见误区

| 常见错误 | 为什么错 | 正确理解 |
|----------|---------|---------|
| "看答案看懂了就是会了" | 看懂答案是被动识别，解题是主动生成——认知过程完全不同 | 合上答案，独立重做一遍，能做完+说清每一步理由才算会 |
| "方法对了就行，计算错了无所谓" | 考试中计算错误和概念错误一样扣分 | 分步检查 + 每次算完用量纲/特例/估算验证答案合理 |
| "这道题我做过=这类题我都会了" | 改一个条件可能就需要完全不同的方法 | 变式训练：改数字、改条件、改场景，验证方法是否真正迁移 |

# 反例：什么时候不要这样做

- 不要直接给完整答案然后说"你仔细看看"
- 不要跳过"为什么选这个方法"的解释
- 不要用"显然""易得"跳步
- 不要只讲这道题，不提炼通用方法
- 不要在学习者还没理解时就说"这是经典题，应该会"

# 测试样例

**输入**：求极限 lim(x→0) (e^x - 1 - x) / x²。我知道答案是 1/2，但我做不出来。

**期望输出方向**：
1. 题型识别：0/0 型极限
2. 关键条件：x→0 时分子分母都→0
3. 可选方法：洛必达法则、泰勒展开、等价无穷小代换
4. 逐一分析各方法的可行性，解释为什么泰勒展开最直接、洛必达要做两次
5. 选一种方法分步展示，每一步解释
6. 总结：不同 0/0 型极限的方法选择策略
7. 变式：lim(x→0) (sin x - x) / x³

