棋盘麦粒python课件.pptx

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
棋盘麦粒 复习巩固 什么是分治算法 分治算法的基本思想 分治算法的用途 分治算法解题步骤 算法实例-求列表最大值 算法实例-判断元素是否在列表中 分治算法的特点 算法实例-爬楼梯 课程大纲与授课思路 棋盘麦粒的学问 问题分析 算法描述 编程实现 Python的数据处理 狗熊掰玉米 素数筛选法 猴子当大王 棋盘麦粒 棋盘麦粒的故事,你听过吗? 棋盘麦粒 看起来好像不是很多 第1格 1 第2格 2 第3格 4 第4格 8 第5格 16 第6格 32 第7格 64 第8格 128 第9格 256 第10格 512 第11格 1024 第12格 2048 第13格 4096 第14格 8192 第15格 16384 第16格 32768 …………… 爆炸式增长 棋盘麦粒 到底多少颗麦粒??? 第1格: 1颗﹐ 总数为1颗; 第2格: 1×2=2颗, 总数为1+2=3颗﹔ 第3格: 2×2=4颗, 总数为3+4=7颗﹔ 第4格: 4×2=8颗, 总数为7+8=15颗; 第5格: 8×2=16颗﹐ 总数为15+16=31颗﹔ 第6格: 16×2=32颗﹐总数为31+32=63颗; …………………… 显然,这个计算过程包含重复操作的步骤。从棋盘的第2格开始,每数一个格子需要做两个操作: ①计算当前格子的麦粒数﹔ ②累加麦粒总数。 棋盘麦粒 假设: n表示每个格子中的麦粒数 s表示累加的麦粒总数 这样每次的操作可以表示为 n=n*2 s=s+n 变量n和s的初始值都为1。只要对上述操作重复进行63次,就能计算出麦粒总数 棋盘麦粒 (1)设初始变量n=l,s=l,i=2 (2)如果i≤64成立,执行步骤(3)﹔否则输出s,结束算法 (3)计算n=n*2、s=s+n和i=i+1,然后返回步骤(2) 在这个算法中,变量i作为循环结构的计数器使用,代表从棋盘的第2格到第64格。 棋盘麦粒 棋盘麦粒问题并不难,手工也能计算,但是过于烦琐,且容易出错。重复的事情就让程序来做,正好发挥计算机速度快的优势。 根据流程图,自己尝试把代码写出来吧 棋盘麦粒 #棋盘第1格的麦粒数 n = 1 s = 1 #棋盘第2到64格的麦粒数 i = 2 print(1," ",1)#第1格的麦粒数 while i <= 64: n = n * 2 s = s + n print(i," ",n)#第i格的麦粒数 i = i + 1 #输出麦粒总数 print('麦粒总数是:', s) 数一数这个数字有多少位﹐你能将它读出来吗 Python计算 数值计算和科学计算 人工智能 数据处理 大数据分析 AI人工智能 自动化脚本 Python应用场景 凭啥是python??? C++语言的两种数据类型都无法计算2的64次方,即使算出来,也是高精度 Python计算 Python计算 把while修改成 while i<=100000 看看python能计算多少位的 结论: Python比较适合做数据运算 牛刀小试 一只狗熊准备掰一些玉米过冬﹐第1天掰了2个,第2天掰了4个,以后每天都比前一天多掰2个,直到有一天,狗熊掰了50个玉米,它觉得这么多玉米已经足够过冬了,于是就不再掰了。请你帮狗熊算一算总共掰了多少个玉米? num, total = 0, 0 while num <= 50: total = total + num num = num + 2 print(total) num<=50 total=total+num num=num+2 素数筛选法 提问时间: 什么是素数? 50以内的素数有哪些? 素数是什么? 素数又称质数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。 (规定1既不是质数也不是合数) 50以内的素数: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47] 素数筛选法 如何让程序计算n以内的素数?你有什么方法吗? 素数是什么? 请编程实现厄拉多塞筛法,输人一个自然数n,并找出2~n之间的所有素数 素数筛选法 素数是什么? (1)输人一个自然数n作为筛选的上界。 (2)生成一个由2~n自然数构成的数表a。 (3)设外层循环的计数器变量i=0。 (4)判断如果i<len(a)成立,就转到第(5)步执行;否则就输出数表中留下的素数。 (5)设内层循环的计数器变量j = i + 1。 (6)如果j<len(a)成立,就转到第(7)步﹐否则转到第(

文档评论(0)

152****6651 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档

相关课程推荐