《以碗知僧》出自我国明代珠算家程大位所著的《算法统宗》,题目以歌诀形式呈现,具体如下:巍巍古寺在山中,不知寺内几多僧,
三百六十四只碗,恰好用尽不差争,
三人共食一只碗,四人共尝一碗羹,
请问先生能算者,都来寺内几多僧。
歌诀的大意是:在巍巍群山中,有一个叫都来寺的寺庙,在这个庙里面,3个和尚一起吃一碗饭,每4个和尚又一起喝一碗汤,一共呢用了364只碗,问你这个寺庙里一共有多少个和尚。这个数学趣题出现在小学六年级(不同版本数学书的年级不同),旨在让同学们发现数量关系式,并用合适的方法去解决“以碗知僧”的数学问题,同时在探究的过程中让学生了解数学家的故事,给学生树立学习的榜样,激发学习的兴趣。
在课堂上,这个题有很多解法,下面分享几种常见的解法。
分数应用题法
考虑到这个题出在分数混合运算后面,那么我们首先就考虑怎样用刚学的分数混合运算来解题吧。“3人合吃一碗饭”,也就是每人吃1/3碗饭;“4人合分一碗汤”,也就是每人喝1/4碗汤。那么,每个人要使用的碗就是1/3+1/4=7/12只碗。总共使用的碗的数量是364只,那么我们考虑364只碗里包含着多少个7/12,也就意味着有多少个人。即364÷(7/12)=364×(12/7)=52×12=624人。
利用最小公倍数分组
“3个和尚合吃一碗饭,4个和尚合分一碗汤。”我们可以让这些吃饭喝汤的和尚们坐一桌,那么这桌的人数既是3的倍数,又是4的倍数,这样每桌最少有12人,而这12人共用12÷3=4只饭碗,12÷4=3只汤碗,也就是说12个人共用7只碗。那么,当碗用了364只的时候,就意味着共有364÷7=52桌。因为每桌有12人,所以52桌就有12×52=624个人。
列方程解应用题
从题意分析,我们知道“饭碗+汤碗=364只”,我们不清楚的是人数,所以可以设人数为未知数x。那么每3个人一只饭碗,所以饭碗需要x÷3只;每4个人一只汤碗,所以汤碗需要x÷4只汤碗;两种碗合起来一共有364只,列方程为x÷3+x÷4=364。求得X=624。
前面介绍的是数学课堂上的解题妙招,下面分享个用Scratch编程解决的过程。
Scratch编程解决
Scratch的解决是基于数学的基础之上的,我们当僧人的数量是个未知数,我们可以设一个变量”僧人”,并将这个人数的初始化值设为0。
“3人合吃一碗饭”就变成了。
“4人合分一碗汤”就变成了。
然后我们通过循环迭代计算判断碗的数量和是否等于364即可。
完成程序如下:
C++编程解决
#include <iostream>
using namespace std;
int main()
{
for (int x = 1; x <= 1000; x++) {
if ((float)x/3+x/4==364){
cout << x;}
}
return 0;
}
输出结果为:
x = 624
Python编程解决
for x in range(1, 1001):
if x /3 + x /4 == 364:
print("x =", x )
输出结果为:
x = 624
总结:编程思维最为简单、直接,遍历即可!