智游城

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

概率问题请教

[复制链接]
31#
dfu2012 发表于 2012-9-1 09:04:08 | 只看该作者
本帖最后由 dfu2012 于 2012-9-1 09:55 编辑

取巧的事不能干。还得老老实实按基本定义来:

令 P10(N)为投掷N次,出现至少2次5连正或以上的概率,P5(N)为投掷N次,出现至少1次5连正或以上的概率。

则 P10(N)=1/2*P10(N-1)+1/4*P10(N-2)+1/8*P10(N-3)+1/16*P10(N-4)+1/32*P10(N-5)+1/32*P5(N-5)

P10(10)=1/32, P(11) =1/2^9,

这下可能不会错了吧,先放公式,再拿EXECL计算下,错的没什么信心了。

补下公式的逻辑图:

令A向上,B向下,P10(N)为至少2次5连正的几率,P5(N)为至少1次5连正的几率

B  + P10(N-1)     。。。。。。。。。。。1/2*P10(N-1)
A B +P10(N-2)  。。。。。。。。。。。。1/4*P10(N-2)
A A B +P10(N-3)。。。。。。。。。。。。1/8*P10(N-3)
A A A B +P10(N-4)。。。。。。。。。。。1/16*P10(N-4)
A A A A B + P10(N-5)。。。。。。。。。 1/32*P10(N-5)
A A A A A +P5(N-5)。。。。。。。。。。 1/32*P5(N-5)

全部相加就是前面的公式。
32#
老陈 发表于 2012-9-1 09:14:05 | 只看该作者
本帖最后由 老陈 于 2012-8-31 19:55 编辑

模拟程序写出来了。

       Dim NN As Integer = 63
        Dim NB(NN) As Integer
        Dim X As Double
        Dim I As Integer
        Dim J As Integer
        Dim K As Integer
        Dim N As Integer
        Dim MM As Integer = 20000000
        Randomize()
        N = 0
        For I = 1 To MM
            For J = 0 To NN
                X = Rnd()
                If X > 0.5 Then
                    NB(J) = 1
                Else
                    NB(J) = 0
                End If
            Next
            For J = 0 To NN - 4
                For K = 0 To 4
                    If NB(J + K) = 0 Then
                        GoTo NXJ
                    End If
                Next
                N = N + 1
                GoTo NXI
NXJ:
            Next
NXI:
        Next
        X = N / MM
        Me.Label1.Text = Format(X, "##.####%")

运行结果为:64.81%
这是扔64次硬币,只少出现1次5连正的概率。
与老霍的结果吻合,这说明我俩算的结果都对,程序没有BUG,只不过我计算的是近似值,有一定的误差。
对的应该一样,错的会千差万别。
休息一会,抽支烟,稍改一下就能计算:扔64次硬币,只少出现2次5连正的概率。
33#
dfu2012 发表于 2012-9-1 09:46:31 | 只看该作者
本帖最后由 dfu2012 于 2012-9-1 12:59 编辑

用EXECL算出来了,

至少1次2个5连正的概率P(64)=0.256232175

还好逼近了老陈的答案。

EXECL学会了是好东西,做这类计算真是利器。
34#
老陈 发表于 2012-9-1 09:48:45 | 只看该作者
本帖最后由 老陈 于 2012-8-31 20:13 编辑

我靠,2个5连真够麻烦的,编程序也费劲,难怪老霍说难度大。
看来有些事不能想当然。
算一个5连正容易,算两个5连正难多了。处女第一次出轨难,第二次就容易多了。完全不是一个理。

程序写得结构不太好,用了好多GOTO语句,着急,也没必要优化,能实现就行了,请软件高手不要笑话。

Dim NN As Integer = 63
        Dim NB(NN) As Integer
        Dim X As Double
        Dim I As Integer
        Dim J As Integer
        Dim K As Integer
        Dim L As Integer
        Dim N As Integer
        Dim MM As Integer = 20000000
        Randomize()
        N = 0
        For I = 1 To MM
            For J = 0 To NN
                X = Rnd()
                If X > 0.5 Then
                    NB(J) = 1
                Else
                    NB(J) = 0
                End If
            Next
            J = -1
NXJ:
            J = J + 1
            If J + 4 > NN Then GoTo NXI
            For K = 0 To 4
                If NB(J + K) = 0 Then
                    GoTo NXJ
                End If
            Next
            J = J + 4
NXJ2:
            J = J + 1
            If J + 4 > NN Then GoTo NXI
            For K = 0 To 4
                If NB(J + K) = 0 Then
                    GoTo NXJ2
                End If
            Next
            N = N + 1
NXI:
        Next
        X = N / MM
        Me.Label1.Text = Format(X, "##.####%")


运行结果为:25.55%
这是扔64次硬币,只少出现2次5连正的概率。
我在18楼的计算结果与这个结果吻合,这个结果是近似值,有一定的误差。

两次计算结果基本一样,应该对了。
但我又忽然怀疑起自己了,是不是都错了。
18楼的算法不严谨。
只少出现2次5连正的概率=F(64)*F(32.5)
按照这个方法往前推。
只少出现3次5连正的概率=F(64)*F(32.5)*F(16.5)
只少出现4次5连正的概率=F(64)*F(32.5)*F(16.5)*F(8.5)
只少出现5次5连正的概率=F(64)*F(32.5)*F(16.5)*F(8.5)*F(4.5)

只少出现5次5连正的概率肯定不是0。
最后一行F(4.5),这不是扯蛋吗?
我也晕了。

请问shfe,你整这么难的题,是不是存心想把我们都整晕啊?

还好,你出的题要是出现5次5连正概率,那就不只是把我们整晕了,一定把我们整疯了。


35#
dfu2012 发表于 2012-9-1 10:14:55 | 只看该作者
本帖最后由 dfu2012 于 2012-9-1 10:23 编辑

老陈,我这有一串用31楼公式在EXECL里算出来的数字,刚好做个相互验证。
现在错怕了。


10        #        #        #        #                        0.000977          
11        #        #        #        #                        0.001953          
12        #        #        #        #                        0.003174          
13        #        #        #        #                        0.004639          
14        #        #        #        #                        0.006348          
15        #        #        #        #                        0.008301          
16        #        #        #        #                        0.010468          
17        #        #        #        #                        0.012848          
18        #        #        #        #                        0.015434          
19        #        #        #        #                        0.018219          
20        #        #        #        #                        0.021194          
21        #        #        #        #                        0.024353          
22        #        #        #        #                        0.027688          
23        #        #        #        #                        0.031192          
24        #        #        #        #                        0.034858          
25        #        #        #        #                        0.038681          
26        #        #        #        #                        0.042653          
27        #        #        #        #                        0.046769          
28        #        #        #        #                        0.051022          
29        #        #        #        #                        0.055406          
30        #        #        #        #                        0.059916          
31        #        #        #        #                        0.064547          
32        #        #        #        #                        0.069292          
33        #        #        #        #                        0.074147          
34        #        #        #        #                        0.079106          
35        #        #        #        #                        0.084165          
36        #        #        #        #                        0.089319          
37        #        #        #        #                        0.094563          
38        #        #        #        #                        0.099892          
39        #        #        #        #                        0.105302          
40        #        #        #        #                        0.110788          
41        #        #        #        #                        0.116348          
42        #        #        #        #                        0.121975          
43        #        #        #        #                        0.127667          
44        #        #        #        #                        0.13342          
45        #        #        #        #                        0.13923          
46        #        #        #        #                        0.145094          
47        #        #        #        #                        0.151007          
48        #        #        #        #                        0.156966          
49        #        #        #        #                        0.162969          
50        #        #        #        #                        0.169012          
51        #        #        #        #                        0.175091          
52        #        #        #        #                        0.181205          
53        #        #        #        #                        0.187349          
54        #        #        #        #                        0.193522          
55        #        #        #        #                        0.19972          
56        #        #        #        #                        0.20594          
57        #        #        #        #                        0.212181          
58        #        #        #        #                        0.21844          
59        #        #        #        #                        0.224714          
60        #        #        #        #                        0.231          
61        #        #        #        #                        0.237298          
62        #        #        #        #                        0.243603          
63        #        #        #        #                        0.249916          
64        #        #        #        #                        0.256232         



36#
老陈 发表于 2012-9-1 12:18:56 | 只看该作者
本帖最后由 老陈 于 2012-8-31 22:29 编辑

我核对了全部数据,全部吻合。
今天不知犯了啥毛病,怀疑别人,又怀疑自己,又怀疑别人。
你的计算结果与我的模拟结果的误差有一定规律,绝大部分是你的小一点点,当然我的不是精确值,但误差应该是有时你数值的大,有时我数值的大才正常,我的数大的超过80%就不正常了,但误差大部分都在0.02%左右,建议dfu是不是检查一下可能引起下误差的因素,比如边界什么的,总之这题让人晕。不查也无妨,本来就是一个概率问题。有一点可以确定,最正确的答案就在咱们的结果附近。
37#
dfu2012 发表于 2012-9-1 12:41:10 | 只看该作者
本帖最后由 dfu2012 于 2012-9-1 14:42 编辑

整体的解题逻辑我是这么考虑的,A代表硬币向上,B代表硬币向下。任意一个N长度的硬币投掷结果序列可分解为:(A+X)的序列+(B+X)的序列,B起头的序列简单考虑P(N-1)的情况即可, 而A+X的情况要再分解,(A+X)的序列可分解为:(AB+X)的序列 + (AA +X)的序列,同样(AB+X)的序列简单考虑P(N-2)的情况即可,(AA +X)的情况要再分解,一直到分解出(AAAAB+X)和 (AAAAA+X)这两种序列,到这里5连上的所有序列都分解完成。
分解图如下,其实用树状图表示更清晰,不好画。

                                          B XXXX
                                          A B XXXX
                                          A A B xxx
                                          A A A B XXX
                                          A A A A B XXX
                                          A A A A A XXXX

那么2连5公式P10(N)如下,用到1连5公式P5(N-5):

P10(N)=1/2*P10(N-1)+1/4*P10(N-2)+1/8*P10(N-3)+1/16*P10(N-4)+1/32*P10(N-5)+1/32*P5(N-5)

同理3连5公式P15(N)用到2连5公式P10(N-5):

P15(N)=1/2*P15(N-1)+1/4*P15(N-2)+1/8*P15(N-3)+1/16*P15(N-4)+1/32*P15(N-5)+1/32*P10(N-5)

同上逻辑,5连5用到4连5,4连5用到3连5:

用EXCEL计算,EXCEL解决这类问题特方便。

2连F10(64)=0.256232175,投掷64次硬币,有2个5连上的几率是25.62%

3连F15(64)=0.065010273,投掷64次硬币,有3个5连上的几率是6.501%

4连F20(64)=0.011011617,投掷64次硬币,有4个5连上的几率是1.101%

5连F25(64)=0.001270918,投掷64次硬币,有5个5连上的几率是0.127%



   
38#
luckypanda 发表于 2012-9-1 12:43:41 | 只看该作者
你们太坏了,我很想仔细看每个回贴,但越看就越觉得自己象个文盲。
39#
dfu2012 发表于 2012-9-1 14:23:44 | 只看该作者
本帖最后由 dfu2012 于 2012-9-1 14:39 编辑
老陈 发表于 2012-9-1 12:18
我核对了全部数据,全部吻合。
今天不知犯了啥毛病,怀疑别人,又怀疑自己,又怀疑别人。
你的计算结果与我 ...


我感觉可能是精度问题,会不会是样本不够?2^64个数量的组合可是天文数字啊。

我的数据结果全部是根据下面的公式计算,借用了EXCEL的技巧,如果公式的逻辑没有错的话,数据应该会非常精确(和EXCEL的计算精度相关)。

1连5的解题逻辑采用概率法,没有借用火花的斐波那契数值,全部都直接用概率公式计算,而2连5以上的逻辑和1连5也是一样的。

1连胜公式:P5(N)=1/2*P5(N-1)+1/4*P5(N-2)+1/8*P5(N-3)+1/16*P5(N-4)+1/32*P5(N-5)+1/32

2连胜公式:P10(N)=1/2*P10(N-1)+1/4*P10(N-2)+1/8*P10(N-3)+1/16*P10(N-4)+1/32*P10(N-5)+1/32*P5(N-5)



下面贴出更多的值共102个值,可相互印证下,1个5连胜用概率法算的结果=0.647638847,应该和你们的一样,特意印证了一遍。 时间一长,我脑子就会浆糊,好在没什么紧要事做,如果是打大一点金额的德州扑克,休息是第一位的。

脑子已经迷糊了,反复计算验证了几次,EXCEL里复制黏贴经常容易出错,有一次把分子32搞错成20,好在有前面计算的数据,好半天才找出原因。




序号        1个5连胜                 2个5连胜                 3个5连胜
1        0                     0                      0
2        0                     0                      0
3        0                     0                      0
4        0                     0                      0
5        0.03125                0
6        0.046875                0
7        0.0625                       0                     0
8        0.078125           0                     0
9        0.09375            0                     0
10        0.109375          0.000976563        0
11        0.124511719        0.001953125        0
12        0.139404297        0.003173828        0
13        0.154052734        0.004638672        0
14        0.168457031        0.006347656        0
15        0.182617188        0.008300781        3.05176E-05
16        0.196533203        0.010467529        7.62939E-05
17        0.210212708        0.0128479        0.000144958
18        0.223659515        0.015434265        0.000240326
19        0.236877441        0.018218994        0.000366211
20        0.2498703        0.021194458        0.000526428
21        0.262641907        0.024353027        0.000723362
22        0.275196075        0.027687788        0.000960112
23        0.287536502        0.031191826        0.001239419
24        0.299666822        0.034858406        0.001563847
25        0.311590612        0.038680971        0.00193578
26        0.323311388        0.042653143        0.002357423
27        0.334832609        0.046768725        0.002830848
28        0.34615767        0.05102168        0.003357969
29        0.357289912        0.055406138        0.003940556
30        0.368232618        0.059916388        0.004580239
31        0.378989015        0.064546876        0.005278513
32        0.389562274        0.069292199        0.006036745
33        0.399955515        0.074147105        0.00685618
34        0.410171801        0.079106488        0.007737939
35        0.420214146        0.084165381        0.008683034
36        0.430085512        0.08931896        0.009692364
37        0.439788808        0.094562532        0.010766724
38        0.449326898        0.099891541        0.011906806
39        0.458702593        0.105301556        0.013113208
40        0.467918658        0.110788275        0.014386432
41        0.476977812        0.116347517        0.015726893
42        0.485882726        0.121975223        0.01713492
43        0.494636026        0.127667449        0.018610761
44        0.503240293        0.133420367        0.020154585
45        0.511698065        0.13923026        0.021766488
46        0.520011836        0.145093521        0.023446493
47        0.528184058        0.151006648        0.025194556
48        0.53621714        0.156966243        0.027010568
49        0.544113453        0.16296901        0.028894358
50        0.551875323        0.169011752        0.030845695
51        0.559505041        0.175091367        0.032864293
52        0.567004856        0.181204847        0.034949813
53        0.57437698        0.187349278        0.037101864
54        0.581623587        0.193521833        0.039320008
55        0.588746814        0.199719774        0.04160376
56        0.595748762        0.205940446        0.043952593
57        0.602631496        0.212181279        0.046365937
58        0.609397045        0.218439783        0.048843186
59        0.616047405        0.224713547        0.051383694
60        0.622584536        0.231000238        0.053986783
61        0.629010367        0.237297596        0.056651742
62        0.635326793        0.243603436        0.059377828
63        0.641535676        0.249915644        0.062164271
64        0.647638847        0.256232175        0.065010273
65        0.653638106        0.262551052        0.067915011
66        0.659535223        0.268870364        0.070877639
67        0.665331936        0.275188265        0.073897287
68        0.671029955        0.28150297        0.076973069
69        0.67663096        0.287812757        0.080104076
70        0.682136603        0.294115963        0.083289383
71        0.687548508        0.300410983        0.08652805
72        0.69286827        0.306696269        0.08981912
73        0.698097458        0.312970327        0.093161626
74        0.703237615        0.319231717        0.096554587
75        0.708290256        0.325479053        0.09999701
76        0.713256872        0.331710997        0.103487895
77        0.718138927        0.337926264        0.107026231
78        0.72293786        0.344123613        0.110611001
79        0.727655087        0.350301855        0.11424118
80        0.732291999        0.356459842        0.11791574
81        0.736849964        0.362596474        0.121633645
82        0.741330325        0.368710692        0.125393858
83        0.745734405        0.374801482        0.129195338
84        0.750063501        0.380867868        0.133037043
85        0.75431889        0.386908915        0.136917928
86        0.758501827        0.392923729        0.140836949
87        0.762613547        0.398911451        0.144793063
88        0.76665526        0.404871261        0.148785225
89        0.77062816        0.410802372        0.152812396
90        0.774533418        0.416704034        0.156873535
91        0.778372185        0.422575532        0.160967607
92        0.782145594        0.428416181        0.16509358
93        0.785854758        0.43422533        0.169250424
94        0.789500769        0.440002358        0.173437115
95        0.793084704        0.445746675        0.177652635
96        0.79660762        0.451457721        0.181895971
97        0.800070554        0.457134963        0.186166115
98        0.803474529        0.462777896        0.190462067
99        0.806820549        0.468386044        0.194782832
100        0.810109599        0.473958954        0.199127424
101        0.813342651        0.479496202        0.203494863
102        0.816520657        0.484997386        0.207884179
40#
dfu2012 发表于 2012-9-1 18:31:56 | 只看该作者
老陈 发表于 2012-9-1 12:18
我核对了全部数据,全部吻合。
今天不知犯了啥毛病,怀疑别人,又怀疑自己,又怀疑别人。
你的计算结果与我 ...

老陈,我的数据结果全部是用公式顺序用EXCEL自动算出来的,只要知道初始的6个值(前5个是0,另一个一般都是1/2^K,比如1个5连的F5(5)就是1/2^5 。。),后面所有的值都可以用公式和这6个值推出来。非常的方便,EXCEL好像就是为解决这类问题设计的,COPY,PASTE,非常迅速。验错也比较简单,直接找任意序号的6个2连或3连的概率值,看他们是否和公式相符合即可。

你的程序我也看了,我看不出什么问题,唯一的可能是样本值不够多,200000000不够的话再多10倍,不过这似乎关联也不大。


你的疑问让我想到另一个话题:

假如我的结果是100%标准(纯理论计算)的随机硬币产生的数据,你的计算结果和我的值相较有80%数据偏向更大,这再正常不过了,因为你的模拟发生器不可能是真正的100%随机发生器,必然是有偏向的。先别笑话这个结论,世界上永远有“聪明人”会利用这极其细小的偏差。

比如你的结果总的来看都偏大一些,那么可能你的硬币向上的几率可能会比向下的几率稍微大一丁点儿,那可能你的随机发生器是一个偏向正面的随机发生器,比如50.0000001:49.9999999,当胜率有多大的比例能影响到最终的结果偏差在0.2%以上,这个就得进一步的计算了,然后就是如何利用这微小的胜率优势,当然,这么小的偏差可能连赌场的RAKE都对付不了。

世界上没有100%的随机发生器,除了理论上的计算。在赌场里,对于有机械装置参与的随机发生器,比如轨道旧了,零件旧了,温度高了,等等,具体内部的细节不重要,关键是从那些随机的数据中分析出可能的胜率偏差,如果数据的表现不符合理论上随机计算的结果,那么就有可能有胜率偏差(即不是100%均匀硬币)如果这种胜率偏差足够应付RAKE的话,那么。。。

瞎扯扯了,图个乐。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|智游城论坛

GMT+8, 2024-10-20 16:11 , Processed in 0.047899 second(s), 8 queries , Redis On.

Powered by Discuz! X3.2

© 2001-2012 Comsenz Inc.

返回顶部