2018-6-11 22:03:30 [显示全部楼层]
9543浏览
查看: 9543|回复: 4

[入门教程] 学编程解数学题——用枚举法解决排列组合问题

[复制链接]
本帖最后由 hnyzcj 于 2018-6-12 09:13 编辑

学编程解数学题——用枚举法解决排列组合问题图1
  
  • 缘起:

女儿的作业盒子里有道数学题:用6,0,4三个数字可以组成一个三位数。问这些三位数是什么?
一、分析问题:
       分析题目我们可以得出这是一道简单的排列、组合问题。对于此类问题常用的解法就是枚举法,逐一将满足条件的数字列举出来就可以了。而在此题中有个潜在条件:百位上的数字不能为0。

二、设计算法
       通过上述分析得到该题的解法为:从三个数字中依次取出一个数字,判断其是否为0,如果不为0,则将其放入百位;十位上的数字从三个数字中依次取出一个数字放入十位;个位也是依次从三个中取出数字放入个位。如下图所示,将最终确定的三个数字分别乘以100、10,1再相加求和,得到最终这个三位数。
学编程解数学题——用枚举法解决排列组合问题图2
三、编写程序:
此次编写的程序是需要分别在百位、十位和个位上分别取出符合条件的数字。从整体框架上,我们很容易想到该程序是多重循环嵌套的结构。而由于百位、十位、个位上的数字并不连续或者说有一定的规律,因此将这三个数字定义为数组来进行处理。通过循环数组地址来调用数组中的元素。
为了方便大家理解我们这里做一个比喻:我们把定义的数组想成一个个房间,他们的地址就是他们的门牌号例如00,01,02号,而房间里的人就是我们题目给出的数据6,0,4。
本次程序编写使用的是图形化编程软件Makecode
定义数组
学编程解数学题——用枚举法解决排列组合问题图3学编程解数学题——用枚举法解决排列组合问题图4学编程解数学题——用枚举法解决排列组合问题图5学编程解数学题——用枚举法解决排列组合问题图6学编程解数学题——用枚举法解决排列组合问题图7
创建三个变量i,j,k,分别作为百位,十位,个位上的循环变量。
学编程解数学题——用枚举法解决排列组合问题图8学编程解数学题——用枚举法解决排列组合问题图9学编程解数学题——用枚举法解决排列组合问题图10
分别提取百位,十位,个位上的数组元素.
学编程解数学题——用枚举法解决排列组合问题图11
将百位、十位、个位上的数字分别乘以100,10,1。
学编程解数学题——用枚举法解决排列组合问题图12
再进行加法运算得到结果。
学编程解数学题——用枚举法解决排列组合问题图16学编程解数学题——用枚举法解决排列组合问题图17
完整程序
三、调试运行:
运行程序鼠标单击模拟器下方刷新按钮,就可看到程序运行的结果。
四、检测结果:
为了能够将程序运行的结果显示的结果保存下来,我们通过串口指令将其写入串口保存。
学编程解数学题——用枚举法解决排列组合问题图13

选择Serial指令集中的学编程解数学题——用枚举法解决排列组合问题图14指令,完成祥串口输出的功能。
学编程解数学题——用枚举法解决排列组合问题图15

hnyzcj  版主
 楼主|

发表于 2018-6-12 09:00:34

本帖最后由 hnyzcj 于 2018-6-12 09:13 编辑

条件变一变,如果组成的三位数字,只能从这三个数字中用一次,组成的三位数是  (        )这题与上一题的区别在于每个数字在三位数字不能重复出现。因此在第二层循环,第三层循环中要与前面的数字进行比较,避免重复。不多说了直接上程序图。
学编程解数学题——用枚举法解决排列组合问题图1



回复

使用道具 举报

rzyzzxw  版主 来自手机

发表于 2018-6-11 23:12:22

hnyzcj 发表于 2018-6-11 22:03
女儿的作业盒子里有道数学题:用6,0,4三个数字可以组成一个三位数。问这些三位数是什么?一、分析问题 ...

陈老师很厉害,算法系列上线了。
回复

使用道具 举报

 中级技师

发表于 2018-7-21 21:28:50

a1=[6,0,4]
for i in a1:
    for j in a1:
        for x in a1:
            if i!=0 and i!=j and j!=x and i!=x:
                 print(i,j,x)
回复

使用道具 举报

 中级技师

发表于 2018-7-21 22:23:45

如图
microbit-屏幕截图.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail