6.5 渔塘中有多少条鱼
除了前面介绍的彩票业之外,概率在日常生活中的应用也十分广泛。在本章最后一节中,我们再来看一些常用的应用案例。
6.5.1 该怎么估算渔塘中的鱼
老李在农贸市场开了一个鲜鱼销售店,经常要到乡村去整塘购买渔民养的鱼,并每天从池塘中打鱼到门店中进行销售。
在购买整塘的鱼时,需要根据鱼的重量与渔民签订合同,计算合同金额。可是,该怎么估算鱼塘中鱼的重量呢?
在估算时,应使鱼的损失尽量小,并能尽量准确地估算出鱼的重量,并且这种方法要让买卖双方都接受。
通常能想到的办法有以下几种。
第一种方法:首先想到的方法就是称重。将池塘中的鱼全部打捞上来,再称重,这样可以得到比较精确的重量。可是,将鱼全部打捞上来称重后再放回池塘,会造成很大一部分鱼会死掉。
第二种方法:可考虑一种将问题规模缩小的方法。即将鱼塘划分成相等的多个区域,然后将一个区域中的鱼打捞上来,进行称重。再将该区域中鱼的重量乘以划分的区域数量,即可得到总的重量。
可是这种方法的缺点也是很明显的。划分的区域通常不能达到均匀相等;另一方面,对划分的区域进行打捞时,由于鱼会四处游动,并不能保证可以将所划分区域中的鱼全部打捞上来。
由于这些缺点,导致最终计算出来的结果误差很大,从而使买卖双方不容易认可、接受。
第三种方法:使用概率来估算。本节我们将详细介绍这种方法。
6.5.2 用概率来估算
用概率来估算鱼塘中鱼的重量,可以达到比较准确并能被买卖双方接受的结果。下面介绍具体的实现方法,可按以下步骤进行操作。
(1)从鱼塘中捞出100条鱼进行称重。
(2)将这100条鱼做上标记,然后放入池塘中。
(3)等一段时间后,在池塘的不同位置随机撒网打捞,将一网打捞上来的鱼进行称重,并记录第(2)步中做好标记的鱼的数量,以及未做标记的鱼的数量。
(4)多次重复第(3)步。
(5)将记录的数据进行计算,计算出做了标记的100条鱼被打捞上来的概率。
(6)根据得到的概率即可估算出整个池塘中鱼的数量和重量。
下面以一个实际操作来看看这种通过概率估算池塘中的鱼重量的方法。
(1)首先从池塘中打捞出100条鱼,称出这100条鱼的重量为216公斤。
(2)在这100条鱼的鱼尾涂上红色油漆,然后将这些鱼放入池塘中。
(3)一小时之后,在池塘的不同地方多次撒网打鱼,并记录每次打捞上来的鱼的数量,包括有标记和无标记的鱼的数量。10次打捞后的结果如表6-3所示。
表6-3

有了以上表格中的数据,接下来就可以进行估算了。首先估算鱼塘中鱼的数量,将10次打捞的鱼中有标记的鱼的数量相加,得到:

而这10次打捞中,总的鱼的数量为:

根据有标记的鱼数量与打捞上来总的鱼数量之比可计算出一个概率:

表示每10条鱼中约有1条鱼是做了标记的。
得到有标记鱼的概率后,可方便地估算出池塘中总的鱼的数量:

计算出鱼的总数量之后,接下来再来估算鱼的重量。100条做了标记的鱼的重量为216公斤,则每条鱼的平均重量为2.16公斤。所以,池塘中鱼的重量估算为:

即池塘中鱼的重量约为2013公斤。
6.5.3 用概率方法求π值
圆周率,一般以π来表示,是一个在数学及物理学中普遍使用的数学常数。圆周率代表圆周长和直径的比值,约等于3.141592654。圆周率是一个无理数,即是一个无限不循环小数。从有文字记载的历史开始,这个数就引起了人们的兴趣。圆周率最早是出于解决有关圆的计算问题。因此,求出其尽量准确的近似值,就是一个极其迫切的问题。几千年来作为数学家们的奋斗目标,古今中外一代又一代的数学家为此献出了自己的智慧和劳动。直到19世纪初,求圆周率的值仍然是数学中的头号难题。
我们知道,现在计算圆周率的方法有很多种,常见的如概率法、割圆法、公式法等。这里,我们介绍用概率法求圆周率的值。
概率法计算π值是以概率和统计理论方法为基础的一种计算方法。将所求解的问题同一定的概率模型相联系,用计算机实现统计模拟或抽样,以获得问题的近似解。
假设有一个半径为1的圆,如图6-14所示。我们知道圆的面积为πr2,现在半径r为1,则圆的面积为π。那么图中阴影部分(四分之一圆)的面积就等于
。通过概率法计算出阴影部分的面积,也就得到了
,将阴影部分面积乘以4即可得到近似的π值。

图6-14
使用概率法计算圆周率的具体过程如下。
在图6-14所示图形中,右上角的正方形面积为1(因为圆的半径为1),阴影部分面积为
。利用随机函数产生横坐标的值x和纵坐标的值y(这两个值都应在0~1之间),接着判断由这两个随机数构成的点是否位于四分之一圆的区域内(阴影部分),若该点位于阴影区域内则进行累加计数。
这样不断产生新的点,由于随机函数生成的点坐标有一定的均匀性,当生成的点足够多时,就可得到阴影内和阴影外点的近似均匀分布。
最后用统计的在阴影内的点的数量除以总的点数,即可得到近似的阴影面积,也就得到了一个π的四分之一近似值。
要判断产生的点是否位于阴影区域,可使用xx+yy<=1进行判断。
按以上思路编写代码用来计算π的近似值,具体代码如下:

编译执行以上程序,分别输入10000和100000,可得到两个不同的结果,如图6-15所示。

图6-15
从图6-15中的结果可以看出,通过概率法计算的π值具有很大的随机性,在不同的运行时间,即使输入同样的点数,得到的结果也是不相同的,但其值会一直在3.14附近。
