概率算法

2020-10-14 22:26
电脑报 2020年37期
关键词:黑球白球红球

概率,它是指随机事件出现的可能性大小的量度。随机事件是指在相同条件下,可能出现也可能不出现的事件。例如,从一批有正品和次品的商品中,随意抽取一件,“抽得的是正品”就是一个随机事件。用数学方法我们会这么解决:设所有商品总共有n件,其中“抽得的是正品”事件出现了m次,即其出现的频率为m/n。m/n为事件“抽得的是正品”出现的概率。那用编程的方法又该怎么解决呢?

抽奖就是经典概率问题,现在有6张纸条,其中有1张写着一等奖,2张写着二等奖,3张写着三等奖。现在随机从中抽取一张,请问抽中一等奖的概率为多少?

由于6张纸条都有可能抽到,所以事件总数为6,其中抽到一等奖的事件数为1(因为一等奖只有一张),所以抽到一等奖的概率为1/6;二等奖的概率为2/6;三等奖的概率为3/6。

1. 题目描述

颜色搭配,一个口袋里装有12个球,其中有3个是红色的,3个是白色的,6个是黑色的。现在从中任意取8个,请问有多少种不同的颜色搭配?

2. 题意分析

由于红球有3个,白球有3个,黑球有6个,从中抽取8个球,组合的方案有很多。由于红球和白球一共只有6个,所以8个球中一定有黑球,且黑球的个数一定是8减去红球个数再减去白球个数;黑球个数最多是6个所以小于7个;红球和白球个数最多是3个,最少的可能是0个,所以小于4个。

将以上条件通过列表分类,并将题意条件转换为表达式。

我们可以采取枚举算法依次假设,假设抽中红球0个,白球0个,黑球个数为8-0-0=8个,但是8个黑色小球与表达式黑球<7相矛盾所以这个假设是不成立的不用计入结果列表中。下面我们再继续假设白球个数为1个,得出黑球个数,看黑球个数是否小于7,依次假设并与所有已知表达式验证,成功即找到一种搭配方案存入结果列表。

找到一种搭配方案后我们将这种由“红球个数、白球个数、黑球个数”组成的字符串数据添加到列表中。

所谓列表,是一种复杂的存储数据的容器,比普通变量高级,普通变量同一时间只能存储一个数据,但是列表可以同时存储多个数据,每个数据占领列表一项,列表的项数从1开始,数据格式如图1。

如图1所示为一个列表名为“我的列表”的列表,列表中总共存储了10项数据,数据的编号(在列表中的位置)从1开始依次增加,列表每一项的数据为“第”+位置+“项数据”。

所以我们先建立一个名为“搭配方案”的列表,由于抽中的红球白球黑球的个数都是未知的,所以建立3个变量,名字分别为红球、白球、黑球。假设本次选中的红球个数为0,白球个数为0,判断黑球个数是否小于7,若成立,则猜想正确,将这种搭配方法加入列表中,否则,假设白球数量为1(白球+1),再验证……以此类推,直到判断完所有的可能。

3. 编写程序

具体程序如图2。通过循环的嵌套,完成红球从0到3,白球从0到3的所有情况,黑球设置为(8-红球-白球),最内层的判断是“黑球<7”。如果符合这个条件就符合所有已知条件了。将结果存入列表(如图2)。

運行后我们可以看见列表中存储的搭配方案有这些(如图3):

总共有13种搭配方案。

通过本实例我们了解了“概率”概念,再次运用了关系运算的知识。掌握了通过编程解决概率问题的方法和步骤。

猜你喜欢
黑球白球红球
正确理解概率公式
滚出黑球来
概率中的摸球问题
概率与统计高考解答题考向
从最差和最好的情况想起
走迷宫
骗人的抓奖游戏
把握教学要求 凸显知识本质
盒子里装的是什么球?