趣味数学——勾股数

来源 :电脑报 | 被引量 : 0次 | 上传用户:edercito
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  勾股定理是大家熟知的,勾股数,就是构成勾股定理的三个数,即一个数的平方是另外两个数的平方和。比如,32+42=52,那么3、4、5就是勾股数。那么在一定范围内,有多少勾股数呢?我们在Scratch、Python和Applnventor_种环境中编程解答这一问题,并着重关注程序在不同环境中的运行效率。

一、原理分析


  本例可以考虑3个数,都从1开始用枚举法来解决问题,但这种方法循环次数最多,100以内的勾股数就需要计算1003=106,100万次!根据测算Scratch中运行要至少3分钟,Python运行不到1分钟,Applnventor运行大约需要1分钟,可见,它们各自运行的速度是不一样的。当然这主要是由程序语言决定的,Python运行最快,Scratch最慢。
  那么怎样能够减少运算量呢?新的思路是根据天系式a2+b2=C2可知,先确定c的值,那么a和b的值一定小于c,所以循环到等于即可,这样就不用循环到最大值,从而减少运行时间。

二、Scratch编程实现


  我们把满足勾股定理的3个数,加入链表,然后显示出来,这个比较好理解。但运行后发现,有重复的项(比如3、4、5和4、3、5),共104项实际应为52项,说明恰好重复2次,那有办法去除重复的项目吗?



  我們把每个c值加入链表,然后在下次得到满足条件的值时,就查询一下,这几个值在不在链表里:在,就是重复,不加入链表:不在链表里,那就加入进来!这样就不会有重复的数据了。



  这段代码的作用就是去重。如果a.b都包含在链表里,就说明是重复数据,所以就做下标记0:如果a.b都不包含在链表里,就说明没有重复数据,于是就将数据加入链表f去重后,显示正常为52个。程序测算通过。

三、Python编程实现


  Python程序的思路和Scratch编程类似,基本程序如下,但依然有重复的数据。



  所以仍然需要去重,在Python中,去重最简单的当数集合!这个和高中数学知识基本一样的,其特点有二=:“确定性:对于任意一个元素,要么它属于某个指定集合,要么它不属于该集合,二者必居其一。互异性:同一个集合中的元素是互不相同的。无序性:任意改变集合中元素的排列次序,它们仍然表示同一个集合。”



  定义空集m=se“),虽然元素是放在大括号里,但定义m={}是定义了一个字典,不是集合,但如果定义m={3,4,5}却是集合,这一点要特别注意。



  可以拓展为任意范围内的勾股数,通过键盘输入,确定最大和最小值。可以求出任意范围内的勾股数。

四、Applnventor编程实现


  Applnventor设计的程序,编写难度低又可以在手机上运行,这是它受到欢迎的原因之一。
  编程思路与Python不同,与Scratch类似,需要将满足条件的值加入列表中,同时判断在同一循环中,满足条件的元素是否在列表中,以达到去重的目的。
  手机上运行测试,可以得到我们想要的结果。程序需要输入求值范围,如果范围最大值不大于最小值,就提示错误,需要重新输入。

五、小结


  三种方法其实都要使用列表,算法也类似,但在Python中,集合是更简便、快捷的方法。通过二种编程环境和应用的比较,Python比Scratch要优化很多,Applnventor编程有它独有的特点,就是可以在手机上和其他应用一样使用。
  希望大家可以通过二款软件的比较,掌握各自的特点和实用性,为进一步学习提供参考和帮助。
其他文献
本文要测评并点评优缺点的是拯救者系列中“本来性价比很高的一款机型”——R7000P的3050Ti/5800H款,长这样▼。  不过,在机器测评与点评之前,先聊一下该机的市场状况:  联想拯救者系列游戏本目前在国内市场被热捧,纵然有机械革命钛钽Plus、戴尔游匣G15等几个表现出色且性价比更高的竞争机型,也完全不妨碍它被抢到持续无货,第三方卖家价格起飞。不仅仅是高端的R9000P、Y9000P在京东
期刊
相比之前的游戏画面增强技术,FSR有什么优势?  通过特定的算法,在提升游戏帧率的同时尽量保证游戏画面质量的技术可以追溯到多年以前,例如早在2012年就出现的TAA时间抗锯齿,2016年出现的时间缩放以及2018年出现的NVIDIA第一代DLSS深度学习超级采样技术。不过,这些早期的技术存在多项缺陷,要么是画质不尽如人意、游戏提供支持比较麻烦,要么是需要特定硬件支持、过高的帧负载限制了游戏的峰值帧
期刊
所谓硬表面建模,也就是机甲类、武器类、载具类的3D建模,往往既需要横平竖直,又有大量倒角,属于相对有一定难度的建模类型,如果你经常玩游戏的话不难发现这些建模往往都会附着大量的表面细节,比如坑孔、折线、界面扭曲等等,这时候为了节约时间和降低顶点堆叠的风险,利用凹凸来实现局部位置的细节设计就非常有必要,而凹凸的根源就是法向图,它最大的优点就是可以实现环境光按法向图的方向来进行反射,从而起到“欺骗”视觉
期刊
航嘉20W PD快速充電器参考价格:69元  夏天很多人出门只会背一个小包,容量有限,对快速充电器的体积就提出了较高的要求。航嘉20W PD快速充电器是市面上同类产品中便携性最为出色的一款产品,30mm×30mm×30mm的尺寸跟苹果经典的5V/1A充电器差不多,可以说是用苹果5W充电器的体积做到了20W快充的体验。与此同时航嘉20W PD快速充电器重量仅35g,非常的小巧,甚至可以很轻松地放入女
期刊
专业设计处理器还得选8核  虽说最新的N卡GPU在专业应用上的表现也有明显提升,搭配NVIDIA Studio驱动也能开启专业软件中的GPU加速,能够极大地减少等待时间,带来更高效的工作效率,但是大家都知道目前显卡价格如此贵,当预算有限不支持你购买高端显卡的时候,用户完全可以采用高端处理器加亮机卡的解决方案,此时电脑专业性能如何,全看处理器性能。  大家都知道3D建模、视频特效、图片设计等专业软件
期刊
霸气战神,质感出众  二哥要推荐的是知名光学仪器厂牌镭仕奇Rasger的专业级运动系列产品——战神Ares SR 8x42双简望远镜。  战神SR采用了墨绿色的外壳,有浓厚的军事气息。充满荷尔蒙的造型就像拥有八块腹肌的男性一样,霸气且有美感。望远镜上手后握感非常扎实,两侧手握区弧状条纹能有效提升稳定性。战神SR人体工学的细节上也处理得很到位,机身两边拇指和食指放置的地方有一层凸起环带,这些设计都能
期刊
本文的创意来自一个Python制作的动态时钟,由于相关知识点难度较大,我们从中学习思路应用在Scratch中。  之前我们已经在Scratch中编写过时钟程序,那次是通过设置数字角色变化与侦测系统时间实现的电子表时钟。本次实验我们提高一些难度完成全动态时钟,用有素材和无素材两种方法显示时针、分针、秒针。一、有素材  这一种做法需要借助素材和背景,时钟有表盘和指针,因为表盘上存在刻度和数字,比起一根
期刊
骁龙870如何成了神U  之前我们已经搜罗了骁龙888旗舰的降价情报,今天就来聊聊另一批值得人手的骁龙旗舰机,它们的共同点便是都选择了骁龙870。  长期以来,骁龙8系就意味着旗舰,不过就在骁龙888面市不到2个月后,高通又推出了骁龙870,这是要抢自家旗舰的饭碗吗?当然不会。  关于骁龙870这枚SoC,高通是这样定义的,作为骁龙865 Plus移动平台的升级产品,骁龙870依然为台积电7nm工
期刊
特供机扎堆  今年手机市场的6·18促销大战,应该是值得被记住的一年。在5G发牌整两年,华为荣耀出现大变故的背景下,市场格局如何变化一时陷入了扑朔迷离当中。國内手机市场出货量  对于手机厂商来说,此次6·18不仅是一次冲销量的促销行为,更是冲破迷雾,重新划分市场格局的一场年中大考。借此机会,我们也可以从今年6·18的这些变化,解读一下市场新的发展趋势,无论是对下半年行业走向,或是对大家未来的购机计
期刊
高压脉冲水流清洗牙齿  首先要知道,影响口腔健康的罪魁祸首是细菌。由于牙齿的特殊排列结构及一些特殊的齿形,一些难以触及的齿缝间隙和后臼齿区不容易清洁。餐后的一些食物残渣或牙垢就会隐藏在这里,而有害细菌就会像“钉子户”一样依附在牙齿和牙缝的食物残渣中。长此以往,容易滋生细菌产生牙菌斑,形成蛀牙或导致各种口腔疾病的产生。  牙齒内部的牙菌斑如果长期不清洁久而久之就会形成牙结石,最终导致牙肉萎缩。但是牙
期刊