注册 登录
爱吱声 返回首页

忆黄小阁 http://www.aswetalk.net/bbs/?4669 [收藏] [复制] [分享] [RSS]

日志

百万红包大试验

热度 36已有 821 次阅读2014-2-23 12:56


看大家讨论红包问题那么热烈,本以为没什么讨论的,直觉是换不换也不提高中奖概率。确实,实践是检验真理的唯一标准啊。。。试了一百万次,结果大吃一斤!333251 vs 666100。
不换中奖次数为 333251
换了中奖次数为 666100
中奖机会几乎大了一倍!!!
如有兴趣,拷贝以下程序去自己机器的EXCEL做一个MACRO即可运行,无色无味无毒,如怕中毒就算了。。。哈哈哈。。。

Sub Macro1()
    Dim ua As Integer   ' pick stay
    Dim ub As Integer   ' pick change
    Dim uw As Integer   ' win pick
    Dim uha As Integer   ' host pick (no win)
    Dim uhb As Integer   ' host pick (no win)
    Dim wa As Long    ' case(no_change) win times
    Dim wb As Long    ' case(change) win times
    Dim i As Long
    Dim n As Long
    
    wa = 0
    wb = 0
    n = 1000000
    For i = 1 To n
        ua = CInt(Int((3 * Rnd()) + 1))
        ub = CInt(Int((3 * Rnd()) + 1))
        uw = CInt(Int((3 * Rnd()) + 1))
        uha = CInt(Int((3 * Rnd()) + 1))
        uhb = CInt(Int((3 * Rnd()) + 1))
        uha = hostPick(uha, ua, uw)
        uhb = hostPick(uhb, ub, uw)
        ub = changePick(ub, uhb)
        wa = wa + winOrNot(ua, uw)
        wb = wb + winOrNot(ub, uw)
    Next
    MsgBox "Win(Stay) = " & CStr(wa) & " " & " vs Win(Change) = " & CStr(wb) & " out of " & CStr(n) & " times try"
End Sub

Function hostPick(h, p, w) As Integer
    While h = w Or h = p
        h = CInt(Int((3 * Rnd()) + 1))
    Wend
    hostPick = h
End Function

Function changePick(p, h) As Integer
    Dim c As Integer
    c = CInt(Int((3 * Rnd()) + 1))
    While c = p Or c = h
        c = CInt(Int((3 * Rnd()) + 1))
    Wend
    changePick = c
End Function

Function winOrNot(p, w) As Integer
    If p = w Then
        winOrNot = 1
    Else
        winOrNot = 0
    End If
End Function

19

膜拜

鸡蛋
15

鲜花

路过
1

雷人

开心

感动

难过

刚表态过的朋友 (35 人)

发表评论 评论 (9 个评论)

回复 coo 2014-2-23 13:04
老夏,你的随机数有问题,它 是周期性的所以碰了个这么结果。八相信。你再RUN一遍,它还是一样的。
回复 夏翁 2014-2-23 13:06
coo: 老夏,你的随机数有问题,它 是周期性的所以碰了个这么结果。八相信。你再RUN一遍,它还是一样的。
333230/666285
回复 夏翁 2014-2-23 13:08
coo: 老夏,你的随机数有问题,它 是周期性的所以碰了个这么结果。八相信。你再RUN一遍,它还是一样的。
333054/666053
回复 coo 2014-2-23 13:08
夏翁: 333230/666285
开玩笑的。应当没什么关系的。
回复 石头布 2014-2-23 17:03
code里面有个隐含的设定:考官是知情的所以他打开真红包的概率为零。否则结果将不一样。
回复 农民家的狗 2014-2-23 19:07
coo: 开玩笑的。应当没什么关系的。
OO,好喜欢你这种泰然自若呀
回复 冰蚁 2014-2-23 20:53
哈哈,要相信概率计算呀
回复 绿梧桐 2014-2-23 21:26
佩服啊
回复 七月群山 2014-2-24 03:39
还以为您老在发红包。。。

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

手机版|小黑屋|Archiver|网站错误报告|爱吱声   

GMT+8, 2024-5-8 08:54 , Processed in 0.029183 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

返回顶部