2.2《随机抽取问题》_第1页
2.2《随机抽取问题》_第2页
2.2《随机抽取问题》_第3页
2.2《随机抽取问题》_第4页
2.2《随机抽取问题》_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2.2随机抽取问题高中信息技术/教科版/选择性必修1目录1.情境导入2.体验探究3.编程实现4.课堂小结1.情境导入趣味知识竞赛活动,不仅有奖杯,还有随机抽取幸运观众并随机抽题答题赢礼物的环节哦!学习目标本节围绕“趣味知识竞赛”项目展开,通过项目活动了解随机抽取问题,学习利用线性表解决随机抽取问题,体会数据结构在解决问题中的作用和意义。本节主要包含“体验随机抽取”和“编程实现随机抽取”两个任务。2.新课讲授知识竞赛活动中抽取幸运观众的环节,就是在参加活动的现场观众中随机抽取一定数量的人作为幸运观众,可以通过抽取观众的编号或者抽取观众的姓名来实现。本任务中,我们通过抽取观众的编号来实现。抽取规则如下:①幸运观众数量少于观众总数量;②被抽中的观众编号不再参加此后的抽取活动。

任务一

体验随机抽取

活动1随机抽取幸运观众填一填

任务一

体验随机抽取

活动1随机抽取幸运观众假设现场有200名观众,观众的编号范围是1~200,需要从中随机抽取10名幸运观众,抽取过程如下:第1次抽取,在200名观众中随机抽取1名幸运观众,如果抽到了180号,那么180号就不能出现在下一次的抽取过程中;第2次抽取,在199名观众中随机抽取1名幸运观众,如果抽到了88号,那么88号就不能出现在下一次的抽取过程中;第3次抽取,在

名观众中随机抽取;以此类推,最后一次抽取,是在

名观众中随机抽取。198191

任务一

体验随机抽取

活动2随机抽取竞赛题知识竞赛中随机抽取题目环节的规则如下:①题目数量和参赛选手数量相同;②抽中的题目不再放回,后面的选手在剩下的题目中随机抽取。题目的初始状态如图所示。题A题B题C题D题E题F题G题H题I题J12345678910

任务一

体验随机抽取

活动2随机抽取竞赛题第1次抽取:假设第1名选手通过摇号的方式在1~10号码中摇到了3号,那么第3题“题C”被抽中并从预抽取题目中删除。第1次抽取后,剩下9道题可供其他选手抽取,抽取后的状态如下图所示。题A题B题D题E题F题G题H题I题J123456789

任务一

体验随机抽取

活动2随机抽取竞赛题第2次抽取:假设第2名选手通过摇号的方式在1~9号码中摇到了6号,那么第6题“题G”被抽中并从预抽取题目中删除。第2次抽取后,剩下8道题可供其他选手抽取,抽取后的状态如图所示。题A题B题D题E题F题H题I题J12345678

任务一

体验随机抽取

活动2随机抽取竞赛题第3次抽取:假设第3名选手通过摇号的方式在1~8号码中摇到了8号,那么第8题“题J”被抽中并从预抽取题目中删除。第3次抽取后剩下7道题可供其他选手抽取,抽取后的状态如图所示。题A题B题D题E题F题H题I1234567

任务一

体验随机抽取

活动2随机抽取竞赛题假设后面的2位选手依次抽取了第1题、第5题,请按照上面的思路画出每次抽取后的状态。题B题D题E题F题H题I

123456

画一画题B题D题E题F题I

12345

如果按照上述规则抽题,第6为选手抽题时的摇号范围是1~5.随机抽取随机抽取是指在一个有限数量的数据集范围内,随机选择其中的某个数据元素的过程。我们重点学习的是无放回的随机抽取,其基本原则是:上一次抽中的数据元素,不能出现在下一次的抽取过程中。3.编程实现

任务二

编程实现随机抽取

活动1建立数据结构填一填经过观察分析,在任务一的活动中通过每次抽取位置来获取幸运观众和竞赛题目,因此可以利用线性表来组织数据。创建线性表对象stulist和contestlist,分别存放观众编号和竞赛题目。请补全下面的代码。01.importrandom

#导人random库02.fromlinearListimportLinearList

#导人线性表03.stulist=

#创建线性表对象,存放观众编号04.contestlist=

#创建线性表对象,存放竞赛题目LinearList(

)LinearList(

任务二

编程实现随机抽取

活动2设计算法假设需要从m位观众中随机抽取n位幸运观众,由他们来抽取n道题目,根据知识竞赛随机抽取幸运观众和题目的规则,实现随机抽取的算法描述如下。(1)需要进行n次抽取,抽取的步骤如(2)(3)(4)所示,如果未完成则继续抽取。(2)根据可抽取观众总人数生成一个随机数,根据这个随机数抽取幸运观众编号,删除被抽中的观众编号(3)根据可抽取题目总数生成一个随机数,根据这个随机数抽(4)显示抽取结果

任务二

编程实现随机抽取

活动2设计算法根据上述算法,定义随机抽取函数randSelect(stulist,contestlist)参数stulist表示待抽取的观众编号,contestlist表示待抽取的题目。请补全下面的代码。05.#随机抽取函数06.defrandSelect(stulist,contestlist):07.n=contestlist.size(

)

#确定抽取次数08.foriinrange(n):09.#生成随机数确定观众编号位置10.randstu=random.randrange(stulist.size())

任务二

编程实现随机抽取

活动2设计算法根据上述算法,定义随机抽取函数randSelect(stulist,contestlist)参数stulist表示待抽取的观众编号,contestlist表示待抽取的题目。请补全下面的代码。05.#随机抽取函数06.defrandSelect(stulist,contestlist):07.n=contestlist.size(

)

#确定抽取次数08.foriinrange(n):09.#生成随机数确定观众编号位置10.randstu=random.randrange(stulist.size(

))

任务二

编程实现随机抽取

活动2设计算法填一填11.stunum=stulist.getItem(

)

#获取观众编号12.stulist.removeItem(randstu)

#删除抽中的观众编号13.#生成随机数确定题目位置14.randtest=random.randrange(contestlist.size())15.testnum=contestlist.getItem(randtest)

#获取题目16.contestlist.removeItem(

)#删除抽中的题目17.#显示抽取结果18.print("第",stunum,"号观众抽取的题目为:",testnum)randsturandtest

任务二

编程实现随机抽取

活动3编程实现填一填假设参加本次知识竞赛活动的观众人数是200人,观众的编号是1~200,随机抽取的题目是以下10个关键词所指定的题目:唐诗、互联网、微信、雾霾、人工智能、二维码、虚拟现实、3D打印、物联网、网络爬虫。请补全下面的代码。19.foriinrange(1,201):20.stulist.appendItem(_

)

#将观众编号存入线性表中21.contestlist.appendItem("唐诗")

#将题目存入线性表中22.contestlist.appendItem("互联")

#将题目存人线性表中23.contestlist.appendItem("微信")

#将题目存入线性表中i

任务二

编程实现随机抽取

活动3编程实现填一填24.contestlist.appendItem(

)#将题目存入线性表中.25.contestlist.appendItem()#将题目存入线性表中26.contestlist.appendItem(

)#将题目存入线性表中27.contestlist.appendItem()#将题目存入线性表中28.contestlist.appendItem(

)#将题目存入线性表中29.contestlist.appendItem()#将题目存入线性表中31.randSelect(

,)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论