电脑技术
儿童编程算法入门知识
2023-04-11 20:49  

数学中的分解思想,有三次给孩子讲解的机会

第一次,孩子学习周长的时候。

我们要记得告诉孩子:不规则图形的周长,我们仔细观察,分解或者巧妙组合成一段一段的我们熟悉的规则的线段或者图形,这样就能分别求周长,然后加起来即可。

第二次,孩子要计算不规则图形的面积的时候。

我们给孩子讲:一方面是分解成我们熟悉的规则图形的面积;另外一方面呢,是通过诸如等高模型等变换组合之后,把有些图形变成规则图形。这样我们就方便加减计算了——求阴影面积时,有时候也是规则图形减去某个规则图形。

第三次,孩子计算多边形内角和的时候。

三角形内角和等于180度,是我们熟知的已知的结论。

我们求多边形的内角之和,把多边形分解成若干个三角形即可。

如下图所示。

#数学思维#

FIFO

陈生活随记

博图基本算法学习--顺序队列的PLC编程实现

关于高中信息技术新教材中编程教学的专家建议

中国信息技术教育 《中国信息技术教育》杂志旗下账号

于晓雅 樊磊 | Python编程与算法教学的策略及指导原则

#读书笔记# 《计算之魂》

学习算法的第一课,老师要教的肯定是如何分析一个算法的时间复杂度。但对于初学者来说,很有可能会对这个概念的理解产生偏差。因为初学者会从时间出发来理解,例如实现同样功能的算法,如果一个耗时100毫秒,另一个耗时200毫秒,那么会认为第一个算法在时间复杂度上一定优于第二个。

但也许这两个算法的时间复杂度是一样的。那么要如何评判算法的时间复杂度,我们还是要先从数学上进行探讨。首先要对数量级变化有清晰的理解。初学编程者需要培养这种对数字的感觉。

例如问到int32与int64所容纳的数量,它们之间的比例应该是什么样的?初学者脑子里也许会出现芝麻和西瓜的对比。但实际上芝麻和地球来对比才更准确一些。

建立了数量级增长的理解之后,再来看第二个问题,那就是计算机被发明出来是要解决什么类型的问题?计算机的特点是运算逻辑简单,但是速度超快。所以人类世界中凡是能够建立可计算的数学模型的问题,都可以实现为计算机程序。

那么考察一个算法的时间复杂度,实际上是在假定问题中的数量向着无穷大的方向增长时,解决问题的算法所体现出的性能差异。那么此时会有一个疑问,就是现实中并不存在无穷大的情况,这样假设有意义吗?

网络上经常讨论程序员是否要学好数学,其意义就在于此了。对于算法的学习,一定要从数学的层面出发,这样才能知道解答的边界在哪里。否则在工作中就很容易出现两种极端情况,一是写出了一段程序,虽然解决了问题,但耗费了太多资源,却不知道还可以再优化,还以为这就是最佳答案; 另一方面是不知道答案的极限在哪里,总是在枉费功夫去想不可能实现的方案。

基于以上的认识,我们选取排序算法中的插入排序进行分析。插入排序的思路是每次从待排序列中取出一个数,在新的有序队列中逐个比较,确定位置后插入数据。写成程序则是需要两重嵌套循环,实现对待排序列的读取与有序队列的插入,我们将这个算法抽象为f(n)。

我们使用O()的形式来标记f(n)的时间复杂度。如果对数据的访问时间值是固定的,则标记为O(1),例如读取数组中的某个值array[10]。如果要对一个序列进行一次遍历,则标记为O(n);嵌套循环遍历则为O(n^2);每次处理的是序列中一半的元素,则为O(logN)。

经过思考,我们知道插入排序的双重循环对两个队列都要进行遍历计算,因此其时间复杂度为O(n^2)。在考察算法的过程中,会出现常数项的因子与差数,例如2n^2-c,记住我们假设的是数据趋于无穷大的增长情况,所以常数项会被忽略,结果标识为O(n^2)。

现在大家可以按照这个思路去考察自己所写算法的时间复杂度了。

【吴军系列图书】计算之魂

数学教育

才思敏捷的编程小猿

掌握这六种算法,你就能轻而易举拿下剩下95%的算法#程序员 #python #算法 #编程 #计算机

线性代数,应该图形学才会用的多。普通的 应该了解正数 负数 补码等基本概念能解决bug。浮点数我都有点搞不定了。[泪奔]//@Yb6852:不是吧,线性代数等数学知识还是要有的,算法岗对数学要求也很高//@率真香瓜UD:百分之95以上的程序员都不会用到专业数学,都是编程领域的搬砖工人,什么算法优化轮不到以普通的人来搞?//@奋发伊夫林4y9:当程序员比搬砖强多了,工资那是相当不错的,半路转行需要的是坚持,我们计算机专业的都要学习4年

JAVA砖家

奉劝各位年轻人,千万别随便改行当码农,接着上一篇,我们接着唠。 上一篇说到我改行之前的痛苦经历,下面接着往下说。当我在拿下几个专业证书后,又自学了半年编程实操后参加社招,找了几个月软件开发的工作,依然被绝大部分公司拒绝,当我陷入自我怀疑的时候,终于,有一家创业公司决定录用我,那一刻,我就像抓住救命稻草一般,满怀希望地去入职。但是,正所谓希望越大,失望也越大,那是一家创业公司,小到只有人员只有个位数的创业公司,公司除了一个搞UI的,没有一个开发,全是业务,而我这个一天软件工作经验都没有的人,竟然成了唯一的开发人员,按照正常的剧情,我应该从此展开手脚,像脱缰的野马,一路狂奔,从此走上人生巅峰,然而,现实是,遇到第一个需求我都没能完成,没办法,只有搞技术的人,才能明白,有些事情不是你努力就能完成的,在你在没有任何实际工作经验又单打独斗,孤立无援的时候,你就像一个三岁小孩在大街上独自流浪,那种无助感和绝望感,没经历过的人真的很难体会,最终,在坚持了一个月后,我放弃了,那时的心情特别复杂,没有解脱感,而是自我怀疑,甚至埋怨命运的不公,为何人生的道路如此艰难?为何空有满腔热血,却拳拳打在空气,毫无着力点,就这样大半年又过去。 今天先聊到这里,有空咱们接着唠,为何年轻人不要轻易改行当码农。

时代进步,科技发展,还有更简洁的π值计算表达式,可以不编程、不积分、不导数、不迭代,自测尾位!

数学救火队长马丁 中国人民大学教育经济学博士

【数学史】历史上第一个用有理数表示π的式子

06:07

发表评论
0评