- 1、本文档共28页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)步﹐否则转到第(
您可能关注的文档
- 寒假作业计算机基础.docx
- 20级高一计算机应用基础上学期教学总结.docx
- 2020级计算机基础笔试试卷.docx
- 计算机应用基础(Win 7+ Office 2010)习题答案.doc
- NIT选择题解析答案.docx
- 第1课-请叫我python大人.pptx
- 第2课-龟兔赛跑-变量.pptx
- 第3课-知识串串串.pptx
- 第4节课-成绩等级判定.pptx
- 第5节课-幸运大转盘.pptx
- 人教部编版初中道德与法治七年级下册全册优质课教案设计(1-10课全).pdf
- 人教版语文九年级下册教案.pdf
- 人教部编版道德与法治七年级下全册教学设计.pdf
- 山东省滨州市惠民县2023-2024学年第一学期期中学科质量检测高二语文试题及答案解析.pdf
- 湖南省长沙市雅礼中学2023-2024学年高一年级上册期中数学试题.pdf
- CF大型保险公司万能寿险保险产品理念与基础知识培训.pptx
- 蓝色商务风银行保险金融理财师如何进行职业生涯规划?.pptx
- 参考学习 中学课件13 第一节 重积分的概念与性质.ppt
- 2023年中国粮食期货市场的现状与问题研究模板.pptx
- 2023年-2025年中国塑料清洗式破碎机行业市场调研及战略规划投资预测报告 (4)模板.pptx
文档评论(0)