智游城

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: shfe
打印 上一主题 下一主题

请教一个概率问题

[复制链接]
51#
Howard 发表于 2012-7-19 02:51:41 | 只看该作者
又运行了一遍(10万次):

Wins: 7178次
Loses: 92822次
Total: 10万次
Win rate: 7.18%
ws大于0.5比ws小于0.5多出来的次数:12
52#
老陈 发表于 2012-7-19 07:11:56 | 只看该作者
Howard 发表于 2012-7-18 12:48
@老陈,

第一, Chips数是Double还是Long,如你所说,应该影响不大。我觉得Long反而更符合现实情况一点, ...

生成随机数次数怎么和计算次数一样了?
输光和200万,每次押1万问题,我计算100000次,要产生随机数超过628,000,000次。
53#
老陈 发表于 2012-7-19 07:46:52 | 只看该作者
本帖最后由 老陈 于 2012-7-18 17:54 编辑
Howard 发表于 2012-7-18 12:51
又运行了一遍(10万次):

Wins: 7178次


你的结果对,我的程序有问题,已经找到了

   While True
             Randomize()
             Ws = Rnd()

应该改成

   Randomize()
   While True
             Ws = Rnd()

每次都初始化随机数序列是画蛇添足,因为系统产生随机数序列初始化命令在没有参数的情况下,系统调用系统时间做为初始化的种子,由于计算速度非常快(Visual Basic .net 2010, Windows7-64, Intel(R) Core(TM)i7-3770K CPU @ 3.50GHz, 8G RAM),如果计算两次的时间间隔小于系统时间的分辨率时就会产生相同的随机数,反而不随机了。
以前没注意这个问题,又学到东西了。

54#
Howard 发表于 2012-7-19 09:14:03 | 只看该作者
本帖最后由 Howard 于 2012-7-19 09:14 编辑
老陈 发表于 2012-7-19 07:11
生成随机数次数怎么和计算次数一样了?
输光和200万,每次押1万问题,我计算100000次,要产生随机数超过6 ...


哈哈,老陈,其实我只计算了一个Flag值,初始值0,每次赢了(随机数大于0.5)就加1,输了就减1。

那次算完Flag是+2,结果我未及多想,就编造结果50002 vs 49998了,就这个数也没编对,如果+2,应该是50001 vs 49999。你说这不胡闹吗。让你一抓就抓个正着。


你的randomize()原来还有这个功效。看来是好心办坏事了,但正是这种东西体现了程序员的功力。我计算正确纯属歪打正着,因为VBA没有这个函数,就把那一行直接删除了,结果反倒删对了,你说哪儿说理去。

另外你的机器牛叉,可以算1百万次。我的机器1百万次等了10好几分钟出不来结果,直接关闭程序,改成10万次了。

甭管怎么样,结果是出来了。可以给发问的人一个交代
55#
老陈 发表于 2012-7-19 10:01:38 来自手机 | 只看该作者
本帖最后由 老陈 于 2012-7-18 20:53 编辑
Howard 发表于 2012-7-18 19:14
哈哈,老陈,其实我只计算了一个Flag值,初始值0,每次赢了(随机数大于0.5)就加1,输了就减1。

那次算 ...


这个初始化语句太坑人了,我又写了一段用此方法计算圆周率的程序,不加这条语句计算精度达到7位,加上这条语句精度只有5位,速度严重降低,多花二倍时间。

     Dim X, Y As Double
        Dim InPI As Integer = 0
        Randomize()
        For I = 1 To 100000000
            X = Rnd()
            Y = Rnd()
            If X * X + Y * Y <= 1.0 Then
                InPI += 4
            End If
        Next
        LabelPI.Text = InPI / 100000000
56#
treeqy001 发表于 2012-7-19 11:05:22 | 只看该作者
  多谢几位指导!我数学不行,老霍的公式对我非常有用,能算好多东西。
57#
treeqy001 发表于 2012-7-19 11:07:18 | 只看该作者
还有,拿100万玩百家乐,每次压1万,能玩到200万的概率,竟然有7%还多,比我以前想象的要高很多.
58#
dfu2012 发表于 2012-7-19 11:27:16 | 只看该作者
本帖最后由 dfu2012 于 2012-7-19 11:39 编辑
Howard 发表于 2012-7-18 21:54
@老陈  @dfu2012

有手续费的时候,我觉得是要影响成功概率的。可以考虑一个极端的例子辅助思维:手续费不 ...


先祝贺下找到误差的原因。

再继续说点分歧,

“用公式算,却不考虑下注大小,因为下注大小不是公式组成部分。这可能就是边界问题造成公式不适用。”

我的看法:用公式算,下注大小会影响结果。

公式1: P(N)=(1-(L/W)^N)/(1-(L/W)^120) 。

手续费模式:
每次下注1万,考虑到2.5%的手续费,EV是-125

转化为投硬币的公式模式:

1)每次下注2万,令下注2万的EV也等于-125,得出W和L,这个W和L与每次下注1万的W和L不同。公式计算和W,L相关,W和L变化了,会影响计算结果。

2)我在公式1的推导中,用的是每次下注1万的前提,即每次计数单位是1万,如果每次下注2万,即每次以2万作为计数单位,那么N就要除以2,120就要改成60,比如每次下注2万的P(100)=(1-(L/W)^50)/(1-(L/W)^60).

综合上面2条,P(N)的结果会受到下注大小的影响。

举一个具体的例子,初始资金100万,每次下注20万,投硬币模式,胜率大概比50%稍微小点,下注3次后,到达120万的几率至少在62.5%附近,这里只计算了100万直接到120万的50%概率和100万到80万后再到120万的12.5%的概率,考虑到其他无数路径,实际结果远大于62.5%。这个结果显然和下注1万用公式计算的结果(好像是小于60%吧)不同。


                                       路径1
                                      --------------  到达120万(约50%几率)
                  
100万下注20万后----------                                                                     路径3
                                                                                                     ------------- 回到100万(约50%几率)
                                     ---------------  到达80万(约50%几率)----
                                           路径2                                                 -------------- 到达60万(约50%几率)
                                                                                                       路径4
59#
dfu2012 发表于 2012-7-19 12:00:36 | 只看该作者
本帖最后由 dfu2012 于 2012-7-19 12:06 编辑

手续费模式下注1万的EV是-125,令公式模式下注20万的EV等于-125,则
当每次下注20万的时候,W=0.4996875,L=0.5003125,P(100)=(1-(0.5003125/0.4996875)^5)/(1-(0.5003125/0.4996875)^6)
用公式算的结果大约是:83%。
这个结果逼近了无手续费的结果100/120.

当然这里下注20万使用的是在手续费模式下下注1万时的EV(-125),现实中这不可能。

如果手续费模式下也下注20万,则WL不变,W还是=0.49375,L=0.50625,但N改变了,再计算,

P(100)=(1-(0.50625/0.49375)^5)/(1-(0.50625/0.49375)^6) = 82.27%

从上述计算可以看出,在负胜率状态下,加大投注额(等于减少投注次数),可以最大程度的减少损失,也就是说使EV负的最少。

所以,赌场娱乐,一次过全押最好,赢了就走,虽然也是-EV的策略,但这是最好的策略,其他策略都是必输的结局,下注越小,次数越多,输光的可能性越大,不怕你赢,就怕你不玩。
60#
老陈 发表于 2012-7-19 12:36:12 来自手机 | 只看该作者
dfu2012 发表于 2012-7-18 21:27
先祝贺下找到误差的原因。

再继续说点分歧,

下注大小确实影响计算结果,我那一处错不但结果偏差很大,还导致了下注大小不影响计算结果错误结论,我恨死那条语句了,差点误导了弟兄们,真丢人。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|智游城论坛

GMT+8, 2024-11-24 19:25 , Processed in 0.045645 second(s), 8 queries , Redis On.

Powered by Discuz! X3.2

© 2001-2012 Comsenz Inc.

返回顶部