实验五_8枚硬币问题

实验五_8枚硬币问题
实验五_8枚硬币问题

实验报告

实验项目:__8枚硬币问题班级:_计算机___ 姓名:_______

一、实验题目:

在8枚外观相同的硬币中,有一枚是假币,并且一直假币与真币的质量不同但不知道假币与真币相比较轻还是较重。可以通过一架天平来任意比较两组硬币,设计一个搞笑的算法来检测出这枚假币。

二、实验目的:

(1)进一步掌握递减治法的设计思想;

(2)提高应用减治法设计算法的技能;

(2)理解这样一个观点:建立正确的模型对于问题的求解是非常重要的。

三、实验要求:

(1)设计实验算法实现8枚硬币问题;

(2)设计实验程序,考察用减治技术设计的算法是否高效;

(3)扩展算法,使之能处理n枚硬币中有1枚假币的问题。

四、算法描述(对算法主要部分进行伪代码描述或画出流程图)

伪代码:

int coin(int a[])

{

1.输入硬币的质量;

2.if(a[1]+a[2]+a[3]>a[4]+a[5]+a[6])

if(a[1]+a[2]>a[4]+a[5])

if(a[1]>a[4])

{

if(a[1]==a[3])

{

return 4;

}

else return 1;

}

else if(a[1]==a[4])

{

if(a[2]==a[3])

{

return 5;

}

else return 2;

}

}

if(a[1]+a[2]==a[4]+a[5])

{

if(a[3]==a[2])

{

return 6;

}

else return 3;

}

}

if(a[1]+a[2]+a[3]

if(a[1]+a[2]

{

if(a[1]

{

if(a[1]==a[3])

{

return 4;

}

else return 1;

}

else if(a[1]==a[4])

{

if(a[2]==a[3])

{

return 5;

}

else return 2;

}

}

if(a[1]+a[2]==a[4]+a[5])

{

if(a[3]==a[2])

{

return 6;

}

else return 3;

}

}

else if(a[7]==a[3])

{

return 8;

}

else return 7;

}

五、实验结果与结论:(给出测试数据以及程序运行结果,并进行比较,得出自己的结论)减治法算法解决8枚硬币的时间复杂度为:O(log2n)

源程序:

int coin(int a[])

{

if(a[1]+a[2]+a[3]>a[4]+a[5]+a[6]) {

if(a[1]+a[2]>a[4]+a[5])

{

if(a[1]>a[4])

{

if(a[1]==a[3])

{

return 4;

}

else return 1;

}

else if(a[1]==a[4])

{

if(a[2]==a[3])

{

return 5;

}

else return 2;

}

}

if(a[1]+a[2]==a[4]+a[5])

{

if(a[3]==a[2])

{

return 6;

}

else return 3;

}

}

if(a[1]+a[2]+a[3]

if(a[1]+a[2]

{

if(a[1]

{

if(a[1]==a[3])

{

return 4;

}

else return 1;

}

else if(a[1]==a[4])

{

if(a[2]==a[3])

{

return 5;

}

else return 2;

}

}

if(a[1]+a[2]==a[4]+a[5])

{

if(a[3]==a[2])

{

return 6;

}

else return 3;

}

}

else if(a[7]==a[3])

{

return 8;

}

else return 7;

}

int main()

{

while(1)

{

int a[9];

cout<<"输入硬币括大小"<

for(int i=1;i<=8;i++)

{

cin>>a[i];

}

cout<<"假硬币在第"<

}

return 0; }

几何画板模拟抛硬币——制作步骤

几何画板模拟抛硬币——制作步骤 【设计思路】 数据处理一般包括收集数据、整理数据、描述数据和分析数据等过程。数据处理可以帮助我们更好地了解周围世界,对未知的事物作出合理的推理和判断。抛掷硬币是典型的随机实验,通过实验活动,统计实验次数、正面朝上个数,计算总面数,计算正面朝上平均数,描述数据的分布情况,分析数据分布的特征等等,通过实验活动体验数据处理的过程。 利用几何画板的随机动画功能可以制作模拟抛硬币的动画,利用几何画板的度量、数据功能,可以对数据进行统计和计算。 【制作步骤简述】 1.制作圆和圆弧制作两个同心圆,把大圆上作两个半圆; 2.制作动画在小圆上任意取一点,制作该点的随机动画按钮“抛掷”,播放次 数设置为1次; 3.粘贴图片作通过圆心和小圆上的点的射线,作射线与大圆上两个半圆的交 点,分别把硬币正面图片、反面图片粘贴到交点。 4.复制动画选择所有对象进行复制,粘贴三次,得到抛四个硬币的动画; 5.动画合成将四个抛掷按钮分别命名为“抛掷1”、“抛掷2”、“抛掷3”、“抛 掷4”,制作它们的系列按钮“抛掷0”,设置执行顺序为同时执行方式; 6.制作计数器在水平方向的射线上M1N1上取点P1,将点P1向右平移一个单 位,得到P1′,制作点P1到P1′的平移按钮“k”,运动速度设置为高速,用来统计试验总数;在水平方向的射线上M2N2上取点P2,将点P2向右平移一个单位,得到P2′,制作点P2到P2′的平移按钮“m”,运动速度设置为高速,用来统计正面个数;制作点P1到P1′、点P2到P2′的平移按钮“归零”,运动速度设置为高速;把“抛掷0”按钮、试验总数按钮“k”合成系列按钮“抛掷”;选择点M1、N1、P1,度量比值“k”,计算4k;选择点M2、N2、P2,度量比值“m”;选择数值“4k”、“m”列表; 7.美化界面隐藏不必显示的对象,制作操作说明,美化界面.

等可能事件与抛掷硬币试验

第八讲等可能事件与抛掷硬币试验 1.知道,但何以知道? 我们知道,如果随意抛掷一枚硬币,则硬币正面朝上和反面朝上的可能性相等。因此我们说,抛掷硬币时,硬币正面朝上和反面朝上是等可能事件。我们又知道,如果随意抛掷一枚骰子,则骰子六个面朝上的可能性相等,因此我们说,抛掷骰子时,骰子的六个面朝上是等可能事件。但我们想过没有,人们是何以知道这些结论的呢? 现在有三个选择项: A.是由硬币(骰子也一样)几何形状的对称性和物理质地的均匀性想当然地得到的; B.是布丰、德.摩根等人抛掷硬币试验的结果(虽然没有他们抛掷骰子的记载); C.是利用概率论公式,通过计算得到的。 你将作何选择? 2.考古的与历史的证据——答案初现 人类很早以前就已经发现抛掷骰子时各面朝上的等可能性,并利用这种等可能性做各种游戏:我国山东青州出土的战国时代(公元前475年至前221年)齐墓中就发现陪葬的骰子。又据文献记载,古罗马(公元前27年至公元446年)人已利用骰子进行占卜和赌博。 而概率论的产生,始于1654年法国数学家帕斯卡(1623—1662)和费尔马(1601—1665)在来往书信中讨论的关于抛掷骰子游戏的数学问题。此后经许多数学家的大量工作,概率论的内容逐渐充实,到1812年法国数学家拉普拉斯的著作《概率分析理论》问世,所谓古典概率的理论结构已经完成。 至于抛掷硬币试验,重要的抛掷硬币试验的年代无法考证,但著名的抛掷硬币试验者的生卒年代可以考证:布丰(1707—1788),德.摩根(1803—1871),皮尔逊(1857—1936),费勒(1906—1970)。 从时间先后不难发现:人类先有对等可能性的认识,在此基础上建立了古典概率理论,然后才有抛掷硬币的试验。 3.逻辑——至少应有一个“先验的”概率 不妨从逻辑角度再作一次推演。大数思想表明:“当随机试验次数达到大数次时,事件的频率逐渐稳定于它的概率。”因此,至少有一个随机事件的概率是未经试验而预先知道的,这个概率必定不是试验的结果(即用频率估计)。而这正是抛掷硬币时,硬币正、反面朝上

抛硬币试验

抛硬币试验“抛”出了什么 此题设计目的是使学生理解随机抛掷一枚硬币时“出现正面和出现反面的可能性是相同的”,从而说明在比赛前用抛硬币的方法来决定谁先开球对比赛双方都是公平的。 问题的关键是:怎样才能让学生明白“出现正面和出现反面的可能性是相同的”即“它们的可能性都是1/2”呢? 问了几个同事,大家都说“一看就知道,硬币只有两面,抛一次不是正面就是反面,出现正面和反面的可能性都是1/2”。 我也是这样想的。不过,“一看就知道”的东西,为什么历史上那么多著名的数学家还要通过做成千上万次的试验来证明呢?这里面究竟隐藏着什么? 在配套的《教师教学用书》第173页,有这样一段话: 掷一枚硬币时,既可能出现正面,也可以出现反面,预先作出确定的判断是不可能的,但如果硬币均匀,直观上会感到出现正面与出现反面的机会应该相等,即在大量重复试验中正面朝上的频率,应该接近50%。为了验证这点,在概率论的发展历史上,曾有许多著名的数学家也做过这个实验。 难道说我们的判断靠的就是“直观”,是一种感觉?这种感觉对不对,还得靠“验证”? 可新的问题又来了,就算科学家做了成千上万次的试验不是也没有证明正面和反面的可能性都是1/2吗?何况,课堂上我们让孩子做得有限的数十,上百次试验。说白了,做实验不但得不到结果,还会推翻最初的“直观”感觉。 问题越来越多,需要继续查资料:

通过试验来确定概率是有风险的。增加试验次数,可以降低这种风险,却不能消除风险本身,只有在试验次数无穷大的时候,才不存在这种风险。 试验次数越多,结果越逼近理论值。 当大量重复抛掷一枚硬币时,二者出现的频率在0.5附近摆动,我们就认为正面朝上和反面朝上的概率是1/2。 虽然,最后那句“二者出现的频率在0.5附近摆动,我们就认为正面朝上和反面朝上的概率是1/2”这种解释我认为非常牵强。不过,心中的疑虑还是打消了不少。我敢在课堂上大胆尝试: 一、观察独立的20组数据 1、学生两人合作,每人抛10次,做好记录。 2、任意抽查20人的结果,引导学生观察。 二、5人5人为一组,合计后观察 三、全部合计后再观察 效果如何? 独立的20组数据,除了有一人的正好是正面出现的次数和反面出现的次数一样外,其余的“杂乱无章”,学生没有任何发现(这就是风险)。5人5人为一组,合计得到(见下表)

概率论与数理统计课外实验——模拟投硬币实验

概率论与数理统计课外实验 教师:李** 实验者:李** 学院:*********学院 专业班级:*****班 学号:************* 实验时间:2013年5月

实验课题:用计算机模拟投硬币实验 一,实验背景 1,对于一枚均匀的硬币,规定有数字的一面为正面,每次投掷,出现正面与反面的机会是相等的。那对于同 一枚硬币多次投掷,出现正面的次数与出现反面的次 数又分别是多少呢?随着投掷的次数逐渐增加,正面 向上的频率有什么变化呢? 2,由于需要实验的次数之多,需要耗费大量人力物力。 随着计算机技术的发展,能不能用计算机模拟投硬币 实验,一加快实验进程,节省时间,人力物力呢?二,理论依据 1,对于一枚均匀的硬币,每次投掷出现正面与反面的机会是均等的。于是我们可以用数字1代表出现的是正 面,数字0代表出现的是反面。而可以利用计算机等 可能的产生0和1这两个随机数。于是,计算机每次 产生一个随机数0或1,代表一次投硬币实验。这样, 就可以用计算机快速模拟大量投硬币实验的结果。三,投硬币实验编程源代码 #include #include #include void main() { unsigned long int a ,i,m,b=0,n,f; printf("请输入实验的次数a=: \n");

scanf("%ld",&a); long double c,g,ave ; for(i=0;i

抛硬币的规律

第九课:抛硬币的规律 【教学目标】认识随机数,掌握random命令的原理和使用。【教学对象】小学五年级学生。 【教学重点】理解随机数,掌握random命令。 【教学难点】如何使学生更好的理解随机数。 【课时安排】2个课时 【教学过程】 第一课时 一.游戏导入激发兴趣 老师:同学们,上课之前我们来玩玩游戏 学生:好啊 1、划拳: 老师:第一个游戏就是划拳,同桌之间玩。划赢一次我们就在他书本的空白处写一个good,你们把十次划拳的结果记录下来,看看哪个同学赢的次数最多,现在开始。 学生:(游戏中) 老师:哪个同学有十个good九个的呢……

2、装花片(红、绿、蓝)比赛。 老师:现在我们再来玩另外一个游戏说明规则:每组都有一篮各种颜色的花片和一个小塑料袋,请小朋友按要求选出一些花片装入袋内,注意一定要想好了再装。 1)、要求:任意摸一个,一定是红花片。 在小组里讨论,你认为袋子里应该怎样装花片然后在班内交流,说说为什么这样装。 2)、要求:任意摸一个,不可能是黄花片。 活动:六人小组合作完成。 老师:(有目的地)请只装一种颜色花片的同学把袋子举起来,并说说你是怎么想的 学生:全部是蓝色后者绿色就不会摸到红色的。 老师:还能有其他的装法吗请装两种和三种颜色花片的同学分别把袋子举起来。现在大家相互检查是否装了红色的花片进去。如果发现装错了,要立刻拿出来。 老师:现在你知道要不可能摸到红花片,应该怎样装 学生:不要放红色的花片。

老师(小结):任意摸一个,不可能是红花。有很多种装法,可以装一种、两种、三种甚至更多种颜色的花片,但是不能装红色的花片。 3)、要求:任意摸一个,可能是黄花片。 老师:每个小组开始装花。看看哪个小组装得快。 老师:你们在袋子里装了几种颜色的花片请装两种和三种颜色花片的同学把袋子举起来。(集体讨论装得对不对如有错误,加以纠正。) 老师:现在你知道要求任意摸一个,可能是红花片,应该怎样装 讨论:任意摸一个,可能是红花,只装红花片行不行为什么你觉得在装花片时要注意些什么(至少要有两种颜色,其中一种颜色是红的。) 3、转盘: 老师:这个游戏我们先玩到这里,我

第一次研讨课总结-如何认识抛硬币实验概率论与物理解释

第一次研讨课总结 ——如何认识抛硬币试验概率结论与物理解释? 在总结学到的知识之前,我想先说一下对这节课的感受。在我看来这节课非常有意思,大家在讨论问题时都比较活跃积极,抛出的观点很新颖,辩论时产生的头脑风暴也很有趣。一开始觉得自己的思考问题还算比较全面,但在听同学们讨论的过程中才懂自己的无知与浅薄,有好多没有想清楚的关键点。一堂课下来,着实收获不少。 在讨论过程中,我发现大家之所以讨论那么久都是因为一个关键点没有解决——抛硬币实验需要满足的条件。条件如何设定才会不影响实验的客观性?我在预习报告中罗列了一部分,如硬币质量均匀,角速度保持不变等,满足这些条件看起来实验可以不受干扰,但是这些设定好的条件是否已经改变了实验的客观性呢?以我目前所学知识的深度与广度难以分辨清楚哪一种说法是正确的,于是我把一些比较有代表性的观点记录下来,课后查阅资料研究,希望能在查阅资料的过程中对这个问题有更深的了解。 首先是“可知论”与“不可知论”,两者都是哲学上的认识论,可知论认为一切客观体都具有可知性,而不可知论认为除了感觉或现象之外,世界本身是无法认识的。一开始我觉得可知论比较正确,因为科学发展的每一步都证实了可知论,但是当我搜索了另一个东西时,我改变了我的看法。那就是“不确定原理”——你不可能同时知道一个粒子的位置和它的速度。该理论由海森堡提出,他本人说,“在因果律的陈述中,即‘若确切地知道现在,就能预见未来’,所错误的并不是结论,而是前提。我们不能知道现在的所有细节,是一种原则性的事情。”简单说就是,对粒子的位置测量得越准确,则对速度的测量就越不准确,反之亦然。这一原理所代表的量子力学理论对可知论的撼动非常的大。 一般而言,量子力学并不对一次观测预言一个单独的确定结果。它预言一组不同的可能发生的结果,并告知每个结果出现的概率。也就是说,如果对大量的类似的系统作同样的测量,每一个系统以同样的方式起始,将会找到测量的结果为A出现一定的次数,为B出现另一不同的次数等等。进而人们可以预言结果为A或B的出现的次数的近似值,但不能对个别测量的特定结果作出预言。有了这一理论做基础,通过物理定律推算未来发生事件的想法可以说是错误的。 然而,这个说法也有一个大前提,那就是量子理论是没有漏洞与疑点。比如,量子效应如果用到宏观物体上,其与承认世界客观存在的偏差将极小,如何解释?并且,量子理论的证明直到今天也没有完全完成。当然,历经数十年的发展,在最新的研究实验中又取得了新的进展,解决了量子理论三大漏洞中的两个,至此,量子纠缠的漏洞几乎填上,想要推翻它也变得越来越不可能。 那么,在上述量子理论成立的基础上,运用机理分析(通过对系统内部原因(机理)的分析研究,从而找出其发展变化规律),和理想模型中的条件模型(把研究对象所处的外部条件理想化建立的模型叫做条件模型)与过程模型(忽略次要因素的作用,只考虑主要因素引起的变化过程),做的抛硬币实验具有客观独立性,通过大量的数据来分析正反面出现的次数,得到古典概率。 所以,我目前的想法是给实验设定一定的条件不会改变实验的独立客观性,相反,这是保证实验客观性所必须的。最后的结果应该如统计学家的观点一致,正面的概率近似为二分之一,而想通过物理定律计算出下一次抛硬币正反面的观点是错误的。

从抛硬币试验看概率论的基本内容及统计方法

从抛硬币试验看概率论的基本内容及统计方法 分类:数学2012-12-06 13:07 301人阅读评论(0) 收藏举报概率 目录(?)[+] 一般说到概率,就喜欢拿抛硬币做例子。大多数时候,会简单认为硬币正背面的概率各为二分之一,其实事情远没有这么简单。这篇文章会以抛硬币试验为例子并贯穿全文,引出一系列概率论和数理统计的基本内容。这篇文章会涉及的有古典概型、公理化概率、二项分布、正态分布、最大似然估计和假设检验等一系列内容。主要目的是以抛硬币试验为例说明现代数学观点下的概率是什么样子以及以概率论为基础的一些基本数理统计方法。 概率的存在性 好吧,首先我们要回答一个基本问题就是概率为什么是存在的。其实这不是个数学问题,而是哲学问题(貌似一般存在不存在啥的都是哲学问题)。之所以要先讨论这个问题,是因为任何数学活动都是在一定哲学观点前提下进行的,如果不明确哲学前提,数学活动就无法进行了(例如如果在你的哲学观点下概率根本不存在,那还讨论啥概率论啊)。 概率的存在是在一定哲学观点前提下的,我不想用哲学术语拽文,简单来说,就是你首先得承认事物是客观存在的,并可以通过大量的观察和实践被抽象总结。举个例子,我们经常会讨论“身高”,为什么我们都认为身高是存在的?因为我们经过长期的观察实践发现一个人身体的高度在短期内不会出现大幅度的变动,因此我们可以用一个有单位的数字来描述一个人的身体在一段不算长的时间内相对稳定的高度。这就是“身高”作为被普遍承认存在的哲学前提。 与此相似,人们在长期的生活中,发现世界上有一些事情的结果是无法预料的,例如抛硬币得到正面还是背面,但是,后来有些人发现,虽然单次的结果不可预料,但是如果我不断抛,抛很多次,正面结果占全部抛硬币次数的比率是趋于稳定的,而且次数越多越接近某个固定的数值。换句话说,抛硬币这件事,单次结果不可预料,但是多次试验的结果却在总体上是有规律可循的(术语叫统计规律)。 下面是历史上一些著名的抛硬币试验的数据记录:

用 MATLAB 模拟掷硬币过程

用MATLAB模拟掷硬币过程 我们掷一枚硬币,它出现的情况只可能是要么出现正面,要么出现反面,这一随机事件的样本点有限且等可能。 所以掷硬币这一随机事件为古典概型,它出现的样本点是有限的且等可能。为了模拟掷硬币出现正面或者反面,规定随机数小于0.5时为反面,否则为正面。 在MATLAB中提供了一个在[0,1]区间上均匀分布的随机函数rand()。可用round()函数将其变成0—1阵,然后将整个矩阵的各元素值加起来再除以总的元素个数即为出现正面的概率。 一、连续掷100次硬币,运行1000次,程序如下: for i=1:100 a(i)=sum(sum(round(rand(1000))))/100 end 以下值是截取部分运行结果,发现正面出现的概率总是在0.5左右浮动。 a = Columns 1 through 6 0.5080 0.4935 0.5059 0.5035 0.5040 0.4969 Columns 7 through 12 0.4945 0.5010 0.4875 0.4948 0.5042 0.5022 Columns 13 through 18 0.4894 0.4965 0.4977 0.4969 0.5008 0.5154 Columns 19 through 24 0.5013 0.5022 0.4969 0.5006 0.4980 0.4949 Columns 25 through 30 0.4878 0.4994 0.4964 0.4944 0.4995 0.4950 Columns 31 through 36 0.5066 0.4989 0.4940 0.4988 0.4939 0.4909 Columns 37 through 42 0.4977 0.5025 0.4927 0.4977 0.4904 0.5040 Columns 43 through 48 0.5080 0.4935 0.5059 0.5035 0.5040 0.4969 Columns 49 through 54 0.5029 0.4977 0.5024 0.4956 0.4857 0.5035 Columns 55 through 60 0.5006 0.5116 0.5035 0.4953 0.4974 0.5012 Columns 61 through 66 0.4997 0.5039 0.5009 0.5012 0.5037 0.5021 Columns 67 through 72

计算机模拟抛硬币实验教学设计

知识与技能: 1. 了解随机事件,学会使用程序生成随机数 2. 加深对分支结构的理解

3. 加深对循环结构的理解 4. 巩固学习变量的含义和使用方法。过程与方法: 学生通过自己对实际问题进行具体分析,从问题本身抽象出一个数学模型,然后设计一个符合这个数学模型的算法,最后根据算法编写程序、运行程序以解决问题。 情感态度与价值观: 1. 通过分析问题,培养从实际问题抽象出计算模型的能力。 2. 体验计算机在帮助人类探索科学真理的过程中发挥的作用。 3. 在编程的过程中,锻炼自己的逻辑思维能力,体验到计算机编程的魅力和乐趣。重难点:教学重点: 1. 学会利用分支结构和循环结构设计程序 2. 能够自己探索出随机函数的功能 3. 学会从现实问题中抽象出计算模型,通过编程实现教学难点: 1.综合并灵活地使用程序的三种基本结构设计简单程序 2.如何将生活中的实际问题抽象出问题模型,转换成程序,并使用程序来解决生活中的问题 教学流程示意(可选项) 介绍数学中的随机事件和等可能事件 引导学生完成程序的界面设计引导学生完成程序的逻辑设计 明确程序设计流程 学生探究随机函数的作用 结构化方法:将任务分解,逐步细化 学生设计程序模拟抛硬币实验过程 学生完善程序,运行程序并搜集数据 学生分析数据并得出结论 教师总结 完成任务单,填写评价表

教师活动 教学过程 学生活动 教学意图 一、引入 1、 随机事件 当你把硬币抛上去的时候, 你能知道它落下来是正面朝上还是反面 朝上吗? 这种可能发生也可能不发生的事件,我们称为随机事件。 2、 等可能事件 在抛硬币试验中,只可能出现两个不同的结果,而且这两种结果出 现的可能性是相等的,这一类的随机事件,我们称之为等可能事件。 3、 研究问题:多次抛一枚硬币,其正面朝上和反面朝上出现的次数一 样吗? 4、 设计实验,验证你的猜想 任何结论的得出都要有依据,不能凭感觉直觉,要能有真实的数据 来支撑你的结论。实验是获取数据的更一般的方法。 “抛硬币”实验设计 学生根据自 己的生活经 验回答问题 从学生的生 活经验出 发,容易引 起学生的兴 趣和思考 学生设计探 索抛硬币随 机事件概率 的实验 培养学生设 计实验验证 猜想,探索 未知的能力 二、模拟“抛硬币”实验 分析任务: 2.逻辑 1.界面设计 根据你刚刚的抛硬币实验设计,填 现实生 设计 活中抛硬币过程: 学生根据现 实中的抛硬 币实验,对 比分析计算 机模拟实验 的界面设计 和逻辑设计 引导学生学 会从现实生 活中抽象出 问题模型

相关文档
最新文档