3 回答

TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個(gè)贊
在我看來,你在這里有幾個(gè)問題。
您使用 Go 游樂場,在那里您的隨機(jī)性是固定的。這條線
rand.Seed(time.Now().UnixNano())
總是產(chǎn)生相同的種子,因?yàn)?code>time.Now()是相同的。你用你的模擬測試完全不同的東西。我會(huì)在最后寫下它。
如果你想做一些類似于賭博的事情——你必須使用加密安全的 PRNG并且Go 擁有它。如果您愿意,可以在此處閱讀更多詳細(xì)信息(答案是 php 問題,但它解釋了區(qū)別)。
在概率部分:
中獎(jiǎng)的概率確實(shí)是1/C(49, 6) = 1/13,983,816
。但這是某人選擇一組已經(jīng)預(yù)定義的數(shù)字的概率。例如,您聲稱您的獲勝者是{1, 5, 47, 3, 4, 5}
,現(xiàn)在某人獲勝的概率約為 1400 萬分之一。因此,您必須執(zhí)行以下操作。隨機(jī)選擇一組 6 個(gè)數(shù)字,然后將循環(huán)中的新選擇與已找到的數(shù)字進(jìn)行比較。
但是你要做的是檢查碰撞的概率。有 N 個(gè)人,他們中的一些人會(huì)選擇相同的集合(甚至不一定是獲勝的集合)。這就是著名的生日悖論。正如你在那里看到的,碰撞的概率隨著人數(shù) N 的增加而急劇增加。
這絕對是相同的問題,但是您一年中的天數(shù)是13,983,816
,您可以在此處檢查,對于這個(gè)天數(shù),您只需要 5000 次迭代即可保證 0.59% 會(huì)發(fā)生碰撞。通過 9000 次迭代,您會(huì)發(fā)現(xiàn)碰撞概率為 0.94。

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超10個(gè)贊
我相信您正在解決一個(gè)不同的問題,出現(xiàn)兩個(gè)相同抽獎(jiǎng)的可能性比出現(xiàn)一個(gè)特定抽獎(jiǎng)的可能性要高得多。

TA貢獻(xiàn)1845條經(jīng)驗(yàn) 獲得超8個(gè)贊
順便說一句,生日悖論的粗略經(jīng)驗(yàn)法則是,如果您有 N 天,則需要迂回的 sqrt(N) 個(gè)人來獲得良好的碰撞機(jī)會(huì)(大約 50%)。
所以,對于最初的生日悖論,你有 365 天,所以經(jīng)驗(yàn)法則告訴你,如果有 365^.5 或大約 19 個(gè)人,你就有可能發(fā)生碰撞(>50% 的正確答案:23 個(gè)人)。
在這里,有 13,983,816 種可能的結(jié)果,經(jīng)驗(yàn)法則告訴您,3739 次平局,您很有可能發(fā)生碰撞(50% 的正確答案:4400 次平局)。
- 3 回答
- 0 關(guān)注
- 297 瀏覽
添加回答
舉報(bào)