Golden Thumb

1-on-1 tutor for math & coding
个人资料
正文

一个9年级男生的数学思维现场:GCD与丢番图方程的奇妙一课

(2025-05-09 19:54:34) 下一个

这是7年前的Ethan,当时才二年级:

时光飞逝,现在他已经九年级了。这两张照片是他破解木质智力游戏前后拍摄的。几个月前我回国时我给了他这个小礼物。

快进到 2025.05.09。今天,在 Ethan 的 1 对 1 数学课上,我请他随意写下两个数字,在 TextEdit 里,作为我们要开始计算 GCD(最大公约数)的素材。

他略带攻击性地选了不小的两个数:675 和 534。

“我大概还记得怎么做。”他说着,但屏幕还是一片白。他在拼命回忆,但还是卡住了。

过了一会儿,他打开 Slack,回头翻看我们上次课的记录 —— 有了。他的脑子和手开始联动了。

很快,他一步步地写出如下计算过程,直到最后得到 gcd = 3:
675 = 1*534 + 141  
534 = 3*141 + 111  
141 = 1*111 + 30  
111 = 3*30 + 21  
30 = 1*21 + 9  
21 = 2*9 + 3  
9 = 3*3 + 0  
```

此时我引入新的挑战:解线性丢番图方程 675x + 534y = 3

Ethan 顿时懵住了。

我开始引导他:我们可以把刚才的步骤从下往上倒推,在每一行右边记录下当前这一步的表达式。比如最后那一步是:
3 = 21 - 2*9

下一步再带入前一步中 9 的表达式,就变成了:
3 = 21 - 2*(30 - 1*21) = 3*21 - 2*30

我帮他走了两步,并解释我们要干嘛:我们想知道,是多少个 675 和多少个 534 加起来能得 3?

我还故意“剧透”了一点:“你只要撑过前几步,后面就能像搭积木一样逐步搭上去。”

他继续往上走,并开始把每一行的线性组合复制粘贴到计算器里验证。**我没想到,他竟然找到了一个如此机智的方式!**

我们原本的表达式最后算出来是:
-17*675 + 19*534 = -11475 + 10146 = -1329 ≠ 3

我鼓励他说:“你可以直接把表达式复制进计算器检查每一步是不是 3,这样效率高多了。”

但他比我预想得还聪明。他每走一步,就粘贴验证是不是 3。一旦哪一步出错,马上就能找出来!

最后,他找到了 bug:他在写某一行类似于 `-11*141 + 14(534 - 3*141)` 的时候,忘记了把 14 乘进去的第二项。他经常在第二项里漏掉前面的系数。

这个 bug 让我们花了不少时间才定位到。

我忍不住打趣:“哎呀,这种疏忽是三四年级就会做的错误,哈哈!”

他一边笑一边说:“哦哦哦,原来是这里!”

我跟上:“那请掐自己一下腿吧。”

我们这一课,真的是笑点满满,知识点也满满。

Ethan 最后得到了正确答案:
x = -53, y = 67

而他的 TextEdit 文本如下(原汁原味复制自他的笔记):
gcd of 675 and 534
675 = 1*534 + 141
534 = 3*141 + 111
141 = 1*111 + 30
111 = 3*30 + 21
30 = 1*21 + 9
21 = 2*9 + 3 <==(675, 534)
9 = 3*3 + 0

675x + 534y = 3
   
gcd of 675 and 534
675 = 1*534 + 141      = 14*534 + -53(675-1*534) = -53*675 + 67*534
534 = 3*141 + 111      = -11*141 + 14(534-3*141) = 14*534 + -53*141
141 = 1*111 + 30       = 3*111 + -11(141-1*111) = -11*141 + 14*111
111 = 3*30 + 21        = -2*30 + 3(111-3*30) = 3*111 + -11*30
30 = 1*21 + 9          = 1*21 - 2(30-1*21) = -2*30 + 3*21
21 = 2*9 + 3         3 = 1*21 - 2*9     
9 = 3*3 + 0  

At first, we got the wrong answer
-17*675 + 19*534 = -11475 +10146 = -1329 ≠ 3

Here is something interesting – a new way to use calculator.
Starting from 1*21 - 2*9, we can copy it to the calculator.
If it is 3, we are good.
Next we copy -2*30 + 3*21 to the calculator.
If it is still 3, we are good.
...
Until the last step.
We copy -53*675 + 67*534 to the calculator.
If it is still 3, we are good.
In our case, it is 3 after we fixed the bug. :D

675x + 534y = 3
x=-53, y=6

这一课我们不只学了数学技巧,更重要的是:我们一起经历了疑惑、出错、怀疑、验证、修正、欣喜。

Ethan 展现出属于他这个年龄的冲劲、聪明和成长中的“马虎”。我则收获了一场有趣的陪跑。

我想,对很多家长来说,这样真实而丰富的课堂经历,才是孩子进步的真正轨迹。

下次,我们来讲讲 Albert 的故事。

 

[ 打印 ]
评论
目前还没有任何评论
登录后才可评论.