自己工作用Python,也想找机会让自己儿子入门下编程。在陪娃鸡了一段时间奥数后,我觉得Python可以用来解一些小学生奥数题,在儿子身上实践后发现挺适合小学生的理解能力,打算写几篇文章无私分享下,如果对其他小朋友有一点点用也是非常高兴了。

那为什么要跟高思五星题过不去?从小数学棒棒的我都觉得高思五星太难,正常的小朋友靠脑力是做不来的,所以就作为目标让计算机来攻克吧。


准备

推荐Jupyter Notebook,不清楚如何安装的自行百度,也可以使用Python3.6自带的IDE开发。随便找一本python书,就入门而言随便什么教材都是OK的。先看完前几章即可,不用去看复杂的图形和多媒体操作等章节。

那什么题目适合编程实现?首先要让孩子知道电脑的优势是死算,可以化繁为简地解决问题。也有部分题目需要先运用数学知识先行一步,再发挥电脑的运算优势。不管是哪一类题目,我挑选题目的原则是十行代码搞定,不让冗长的步骤使小朋友感到恐惧。每题学会一个新的知识点,循序渐进。

适合谁?有奥数基础,对编程感兴趣的孩子

【五年级高思第10讲超越篇第7题】a,b,c是三个互不相同的自然数,且满足abc X bca=7bc X cba,求三位数abc

书后的解题步骤需要了解同模之类的知识才能读懂,对我家这样没有经过几奥洗礼的小学生来说是太难了,但这样的题目交给计算机是不难的。只要设a,b,c三个变量,让他们循环组合成不同的组合,然后用if语句验证是否满足题目的等式即可。小朋友在学过if和for语法后即可自行完成,非常有成就感的。

for a in range(1,10):

for b in range(1,10):

for c in range(1,10):

if a!=b and a!=c and b!=c:

if(a*100+b*10+c)*(b*100+c*10+a)==(700+b*10+c)*(c*100+b*10+a):

print(a,b,c)

答案是:495

对于熟悉Python的读者一定会说这样的写法还不够完美,对小朋友来说能写到这个程度已经达到要求了。

【知识点】for循环,if判断,嵌套

【五年级高思第10讲超越篇第8题】已知算式abc x bca x cab = 234235286,其中a>b>c,后来发现右边的乘积的数字顺序出现错误,但是知道个位数的6是正确的,那么原式中的abc是多少?

我也是看了答案才知道怎么解,要求一个小学生拥有这么清晰的思路,实在太为难孩子了。和上一题方法完全一致,但更进一步的地方是需要自己再创造两个条件。虽说顺序发生错误,但不管怎么排序也就那么些数字,这个数不会小于200000000,也不会大于900000000。另外需要学会的新语法是求余数的“%”。

for a in range(1,10):

for b in range(1,10):

for c in range(1,10):

if a>b and b>c and (a*b*c-6)%10==0

and (a*100+b*10+c)*(b*100+c*10+a)*(c*100+a*10+b)>200000000

and (a*100+b*10+c)*(b*100+c*10+a)*(c*100+a*10+b)<900000000:

print(a,b,c,(a*100+b*10+c)*(b*100+c*10+a)*(c*100+a*10+b))

程序会打印出以下答案,肉眼看下就知道第三个是本题的答案

8 7 6 462191616

9 6 4 310315456

9 8 3 328245326

【知识点】求余数,隐藏条件解读

【五年级高思第10讲兴趣篇第4题】如图4个小三角形的顶点处有6个小圆圈,在这些圆圈中分别填上6个质数(可以重复),使得他们的和是20,而且每个小三角形3个顶点上的数之和相等,请问:这6个质数的乘积是多少?

这道题不是5星题,但适合介绍新的编程知识点“List”。前面的题目中的循环比较简单,这里的循环对象是“质数”,所以需要人为创造一个“List”作为循环取数的“池子”。“List”是非常重要的概念,在实际工作中还会使用到多维的dataframe,因此先把一维的List掌握好是非常重要的。以下是小朋友写的:

hi=[2,3,5,7,11,13]

for a1 in hi:

for a2 in hi:

for a3 in hi:

for a4 in hi:

for a5 in hi:

for a6 in hi:

if a1+a2+a3+a4+a5+a6==20 and a1+a2+a3==a2+a4+a5 and

a2+a4+a5==a2+a3+a5 and a2+a3+a5==a3+a5+a6:

print(a1*a2*a3*a4*a5*a6)

答案是900,是对的,但不够好。在我们熟悉了for循环的使用方法后,如果遇到这类嵌套多层的for循环时,其实有更简洁的编码方式,再者要有好的编写习惯,比如可以用mylist去定义质数的数列,而不是用hi,另外每个小三角形要先计算好,以后遇到更复杂的编码时可以方便的重用这些计算结果。参考代码如下:

mylist = [2,3,5,7,11,13,17]

for i1,i2,i3,i4,i5,i6 in ((x1,x2,x3,x4,x5,x6) for x1 in mylist for x2 in mylist for x3 in mylist for x4 in mylist for x5 in mylist for x6 in mylist):

triangle_1 = i1 + i2 + i3

triangle_2 = i2 + i4 + i5

triangle_3 = i2 + i3 + i5

triangle_4 = i3 + i5 + i6

total = i1 + i2 + i3 + i4 + i5 + i6

if total == 20 and triangle_1 == triangle_2 and triangle_1 == triangle_3 and triangle_1 == triangle_4:

print(i1,i2,i3,i4,i5,i6,' ',i1*i2*i3*i4*i5*i6)

【知识点】List对象,高级for循环方法

这三题不难,儿子和他的一位小伙伴都可以很顺利的完成,让我感觉到写程序其实对小朋友也不是一件遥不可及的事情。也不需要用那些图形化的所谓儿童编程来做过渡。如果学业压力不大可以天天练习的话,估计一年下来就可以学成上班了,哈哈,想多了,好久不写东西了,今天先写到这里吧。

打印dataframe的前十行_小学生之十行Python解高思五星题(一)相关推荐

  1. 适合小学生python的书_小学生开始学Python,最接近AI的编程语言:安利一波Python书单...

    原标题:小学生开始学Python,最接近AI的编程语言:安利一波Python书单 AlphaGo 都在使用的 Python 语言,是最接近 AI 的编程语言. 教育部考试中心近日发布了"关于 ...

  2. 小学生python编程写游戏_小学生开始学Python,开发AI的首选编程语言:推荐一波Python书单...

    AlphaGo 都在使用的 Python 语言,是最接近 AI 的编程语言. 教育部考试中心近日发布了"关于全国计算机等级(NCRE)体系调整"的通知,决定自2018年3月起,在全 ...

  3. windows下运行python打印有颜色的字_在windows下Python打印彩色字体的方法

    本文讲述了Python在windows下打印彩色字体的方法.分享给大家供大家参考,具体如下: ##################################################### ...

  4. python36块砖36人搬算法_剑指offer python实现 66道算法题

    所有题目均采用牛客网在线编程实现,代码均在github上. 数组 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组 ...

  5. python解初中题_用python解一道数独小题

    个人的第一篇博文,还请多多支持,不当之处,还请多多指教.(以后有精力还会写更多的文章) 本人是一名大一狗,目前为止学了半年python,对python也就有一点点的了解,没事爱编写一些小程序玩,不过都 ...

  6. 大数据python试卷_大数据起步--Python语言-中国大学mooc-试题题目及答案

    中档饭店清扫房间定额一般为().A.1416间/人B.1214间/人C.1012间/人D.810间/人 一般情况下,能发生瓦斯爆炸的最低氧气浓度为()A.8%B.12%C.20%D.18% P ...

  7. python高阶函数、map reduce 自己如何去定义_小猿圈python之高阶函数lambda、map和reduce用法...

    python有很多内置函数,内置函数封装了很多功能,让我们用起来很方便,小猿圈针对高阶函数有详细的讲解视频,朋友们可以去看看,小编学后总结了一下,下面说一下lambda.map和reduce高阶函数的 ...

  8. 同花顺选股python开发_量化之路-python绘图-高仿同花顺绘制股票K线图+均线+成交量+MACD+KDJ(附代码)...

    上一期介绍了k线图的简单绘制,可以实现股票趋势的查看分析 本期介绍一种用python matplotlib实现高仿同花顺界面的绘图方法 一.话不多说上效果图(还是以601011宝泰隆为例哈^^) 二. ...

  9. python交互式程序设计导论第二周_沧州学堂云Python 交互式程序设计导论搜题公众号...

    关注公众号[帅搜]即可免费查询 网站:xuanxiu365(网址速记:选修365) 支持:大学网课,智慧树,知到,超星,,,选修课,,外语类,财会类,建筑类,职业资格,考试,类,外贸类,计算机类等考试 ...

最新文章

  1. 热点推荐:秒杀系统架构分析与实战--转载
  2. 创建Silverlight 1.0 開發環境
  3. 12行代码AC_Leecode 495. 提莫攻击——Leecode每日一题系列
  4. 按键精灵Q语言-怎么使用自定义函数返回值
  5. apache配置文件详解
  6. 大数据背景下的互联网金融应用领域
  7. VMware12部署windows xp虚拟机
  8. 【Luogu1345】周游加拿大(动态规划)
  9. PHP如何使用换行符?(代码示例)
  10. 双眼融合训练一个月_视觉融合功能的四种训练方法
  11. css shine_什么是Shine Enterprise Java模式?
  12. android日历控件使用,Android学习教程之日历控件使用(7)
  13. 申城常用电话(必看)(转)
  14. 逆向脱壳-fsg手动脱壳
  15. cocos 躲避球游戏(2) --资源导入和碰撞检测
  16. Xposed 插件开发之二: Xposed的一些知识
  17. 发布两款超1级能效空调 再次腰斩行业价 苏宁小Biu点燃空调市场
  18. NE555时基电路实验(二)NE555控制LED闪烁
  19. Vision Transformer 必读系列之图像分类综述(二): Attention-based
  20. Hadoop MapReduce 统计汽车销售信息

热门文章

  1. java点到曲线的距离公式,使用Haversine的距离公式获取经度和纬度的距离
  2. 学校计算机房的布线注意要点,校园网络布线实施中的注意事项
  3. <力扣>-----利用哈希表来判断是否存在重复元素
  4. 开辟与退出一个新的栈帧常用的汇编语言指令
  5. 10行Python代码自动清理电脑内重复文件
  6. Python属性访问拦截器的用法
  7. Python: 大型数组运算
  8. 计算机图形学基础考试题,计算机图形学基础复习题
  9. C++ nlohmann/json 的主要用法
  10. python 网络编程 套接字的初使用 基于TCP协议的socket