入門到精通‎ > ‎01编程起步‎ > ‎

151数学编程:韩信点兵


韩信带兵1500人去打仗,战死四五百人。
战后清点人数时,韩信命令士兵
每3人站一排,多出2人;
每5人站一排,多出3人;
每7人站一
排,多出2人。
韩信由此马上算出了部队人数。
请你也算一算,这支部
队在战后还有多少人?

从现代数学的观点来看,这是一个求解不定方程组的问题。
但是,假如我们面对的是小学四、五年级的学生,那么该如何教他(她)解决这个问题呢?
答案是,我们可以使用Scratch编程来求解答案。

为了便于理解题意,我们把这个问题中的故事成分去除,将它重新描述如下。

有一个数在1000~1500之间,
它同时满足被3除余2、被5除余3、被7除余2这三个条件。
求这个数是多少?

解决这个问题,有一个很“笨”的方法,那就是先判断1000是否能同时满足题目中要求的3个条件,接着判断1001,1002,……直到1500为止。

这样的方法在编程算法中叫作“枚举法”

这种方法对于人来说过于
枯燥,很容易因疲劳而出错。

但是,这对于计算机却很简单,正好发挥
计算机运算速度快的优势。


Comments