Feynman Technique 费曼技巧

什么是费曼技巧

费曼技巧是一种以教促学的学习方法。

适用的学习内容

适用于概念和概念应用的学习
例如XXX是什么,怎么使用XXX。

应用场景

  1. 学习一个新的或者是你不是很明白的想法或概念,
  2. 记住一个你已经明白的想法或者概念。
  3. 用于考试学习,快速深入理解一个想法或者概念,并转化成长期记忆。

步骤

  1. 选择一个新概念

  2. 假装你在教授这个概念给学生。

  3. 无论什么时候卡壳,立刻查资料,直达通顺。

  4. 最后简化表达,适当使用类比。

实例

1.理解扭矩

扭矩是一种转动的力

想象一个扳手,正在转动一个螺帽 ,左转松,右转紧 。

2. 理解递归

这里学习资料,来自维基百科:递归

在方法中使用方法本身,同时不断缩小问题规模,直至小到我们知道怎么解决。

比如吃苹果

吃苹果的方法: 拿一个苹果削皮切块用牙签吃。

吃苹果的方法已经知道,用递归吃100个苹果的方法是什么?

先从100个苹果拿1个苹果放一边,想剩下99个怎么吃?然后再把1个苹果放一边,想剩下98个怎么吃?最终问题将变成1个苹果怎么吃?而你吃1个苹果的方法已经知道了!

问题已经从吃100个苹果的问题,变成吃99个苹果的问题,最后变成吃1个苹果的问题。

下面用代码表示递归吃苹果。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function eatApples($n)
{
echo "I am goint to eat $n apples\n";
//n>1个苹果的吃法不知道,缩小问题规模,直到变成n=1个苹果的问题
if ($n > 1) {
eatApples($n - 1);
// n-1个苹果的方法
echo "I have eaten $n apples so far\n";
//n=1个苹果的吃法已经知道
} else {
echo "I have eaten 1 apple so far\n";
}
}

如果不理解,可以在看看下面示例。

经典递归示例 - 阶乘

n = 0, fact(n) =1

n > 0, n *fact(n-1)

1
2
3
4
5
6
7
8
9
10
11
function f($n)
{
if($n == 0)
{
return 1;
} else
{
return $n * f($n-1);
}
}