用makecode解决韩信点兵问题

2018-06-018095
AI 快速预览详细 收起
本文介绍了如何使用MakeCode编程解决韩信点兵问题,即求解一个数除以3余2、除以5余3、除以7余2的最小数。通过列出符合条件的数列,并使用逻辑与运算符将三个同余条件组合起来,最终找到满足所有条件的最小数。这种编程解法不仅适用于初等数论的学习,也适合STEM教育和少儿编程入门。
      韩信带兵打仗,站3人一排,多出2人;站5人一排,多出3人;站7人一排,多出2人.韩信马上说出人数。按照今天的话来说:一个数除以3余2,除以5余3,除以7余2,求这个数。这样的问题,也我们称为“韩信点兵”。它形成了一类问题,也是初等数论中的解同余式。
     
人工解法:
  一个数除以3余2,除以5余3,除以7余2,求符合条件的最小数。
1.先列出除以3余2的数:2,5,8,11,14,17,20,23,26……
2.再列出除以5余3的数:3,8,13,18,23,28……
      这两列数中,首先出现的公共数是8。3与5的最小公倍数是15。两个条件合并成一个就是8+15×整数,列出这一串数是82338,……,再       3.列出除以72的数29162330……就得出符合题目条件的最小数是23
      事实上,我们已把题目中三个条件合并成一个:被105除余23

编程解法:
       同时满足条件:X÷3余数是2;X÷5余数是3;X÷7余数是2,这三个条件之间是余的关系。
        在Makecode中表达式为:
用makecode解决韩信点兵问题图1

用makecode解决韩信点兵问题图2

用makecode解决韩信点兵问题图3
以上三个关系再用逻辑与套上去
用makecode解决韩信点兵问题图4

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(1)
rzyzzxw
rzyzzxw
算法,算法。向老师学习。
- 没有更多了 -