注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

李开周的博客

 
 
 

日志

 
 

扑卖的赔率  

2014-02-15 10:26:00|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

喜欢阅读宋朝文献的朋友一定会读到这样一个词儿:扑卖。

什么叫扑卖?就是用赌博的方式出售商品,它近似现在的有奖销售,但实质上又不是有奖销售,而是以商品做诱饵,来掏空那些爱贪小便宜的顾客的钱包。

比方说宋话本里有一则小故事,非常形象地描述了扑卖的具体场景:

忽见一个经纪挑着一篮永嘉黄柑子过门,宣教叫住问道:“这柑子可要博的?”经纪道:“小人正要博两文钱使,官人作成则个。”宣教接将头钱过来,往下就扑,扑上两三个时辰,再扑不得一个浑成来。欲待再扑,恐怕扑不出来,又要贴钱;欲待住手,输得多了,又不甘伏。

意思就是说某小贩叫卖水果,顾客去买,他先让顾客赌博。怎么赌?扔铜钱,三枚一起扔,扔到地上,看正面朝上还是背面朝上。假如三枚全是背面朝上,叫作“浑成”,表示顾客赢了,可以拿走一篮水果,但无论输赢,每扔一次都得付给小贩两文钱。话本里那个顾客运气不好,一连扔了好几个小时,没有扔出一个浑成来,白白赔给小贩几千文钱,什么也没有得到。

从概率的角度讲,那个顾客的赢面是很低的。三枚铜钱同时扔,可能扔出八种结果:

正、正、正

反、反、反

正、正、反

正、反、正

反、反、正

反、正、反

反、正、正

正、反、反

在这八种结果里面,只有一种结果是浑成,即反、反、反,所以顾客扔出浑成的概率只有八分之一,平均每扔八回才能赢一回。当然,还只能是平均,实际情况可能比这个还要惨得多。

靠扔铜钱来扑卖,概率很容易计算,欺骗性很明显。宋朝还有一种欺骗性不太明显的扑卖方式——让顾客抽签。

譬如说南宋临安有个叫卖卤味的小贩,一手提着一篮子卤味,一手摇着一个大签筒,签筒里共有108根竹签,每根竹签上都刻着数字,有的刻1,有的刻2,有的刻3,……有的刻12。换句话说,签筒里共有9套一模一样的竹签混合在一起,每套竹签都是从112

顾客来买卤味,小贩会让他先付10文钱,然后从签筒里抽3根竹签出来,假如这3根竹签上面的数字之和大于23,那么可以拿走一只大卤鸡——花10文钱就能赢一只大卤鸡,太划算了!所以很多顾客愿意来抽签。

表面上看起来,23这个数字并不大,抽中3根加起来大于23的竹签是很容易的,但是只有计算过概率才知道,顾客的成功率其实很低。

计算过程比较复杂,因为总共有108根签子,顾客每次抽3根,相当于随机购买1083的福利彩票,可能买到的组合非常之多。根据我们以前学过的概率公式:

108C3=108×107×106/3×2×1=204156

超过二十万种组合!

这二十多万种组合中又会有多少种组合加起来大于23呢?我们需要编写一组相当复杂的程序,譬如说首先要定义一个12维的数组,然后对这个数组进行赋值,让它成为一个912行的矩阵,然后还要运用循环算法和递归算法对这个矩阵里的任意三个数进行求和,然后还要写一个条件选择语句,找出其和大于23的组合,最后计算这个组合的总数。

我试着写了这样一组程序,电脑运行了好大一会儿,差点儿死机。可见上述算法太笨。

现在我们来简化这个算法:设从9组竹签里抽中3根符合条件竹签的概率为x,从1组竹签里抽中3根符合条件竹签的概率为y,我们可以假定xy是相等的。换句话说,即使签筒里只有12根而不是108根竹签,顾客的赢面并不改变。

为了验证这个假设,我们选择123这个比较简单的数组。从123中任意抽两个数,会有3种组合:

12

23

31

3种组合中其和大于4的只有1种(23),所以从123这组数中任意抽两个数,其和大于4的概率为三分之一。

现在再加把这个数组变成二维数组:

123

123

仍然任意抽两个数,会得到15种组合。检验后可以发现,其中有5种组合的和大于4,说明从二维数组里任意抽两个数,其和大于4的概率仍然是三分之一。

再把这个数组变成三维数组、四维数组甚至十二维数组,组合会迅速增加,但是概率仍然保持为三分之一。这说明刚才的假定是正确的。

那么好,问题简化了,现在签筒里只剩12根竹签,分别刻着112,从中任意抽3根,可以得到12C3种组合。

12C3=12×11×10/3×2×1=220

220种组合又会有多少组合可以让顾客赢到一只大卤鸡呢?我用VB编程如下:

Dim arr(11) As Integer '定义一维数组

Dim x, y, z, jieguo As Integer '定义循环变量

arr(0) = 1: arr(1) = 2: arr(2) = 3: arr(3) = 4: arr(4) = 5: arr(5) = 6: arr(6) = 7: arr(7) = 8: arr(8) = 9: arr(9) = 10: arr(10) = 11: arr(11) = 12 '给数组赋值,使其变成从112一组竹签

For x = 0 To 11

    For y = x + 1 To 11

        For z = y + 1 To 11

            If arr(x) + arr(y) + arr(z) > 23 Then jieguo = jieguo + 1 '这段程序可以把刚才定义的12竹签分成每3个一组并加一遍,最后找出其和大于23的组合共有多少

        Next z

    Next y

Next x结束计算

Print jieguo '把计算结果打印在窗体上

运行这段程序,可以算出共有53种组合的和大于23。用53除以220,就是顾客的赢面,这个赢面不到四分之一。

不到四分之一的赢面仍然是可观的,顾客平均每抽四次就能赢一次,等于只花40文钱就能买一只卤鸡,仍然划算。但是别急,小贩的签筒里面有猫腻:奸诈的小贩早就在在数目较大的那几根竹签底下拴了马尾,使得顾客几乎永远都抽不到满足条件的组合。

  评论这张
 
阅读(10584)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017