Re: [問題] 馬丁格爾法的機率問題(懸賞)

作者: mamaya3 (mamaya)   2023-11-25 16:40:07
※ 引述《birdjack (啾啾啾)》之銘言:
: 簡單講一下馬丁格爾法
: 就是假設在一個勝率50%的壓大小的賭局中,
: 每輸一次就加倍前一次的下注,贏了就重置回1個籌碼
: 這樣本金如果切成(2^n)-1就可以玩n次,
: 問題是想要求在N個賽局中遇到連輸n次的機率
: (也等於 1 - N個賽局從沒遇過連續輸n次的機率 )
: 網路上大概找了一下得到的公式如下:
: 1 - [ 1 - (0.5)^n ] x [ 1 - 0.5 x (0.5)^n ]^(N-n)
: 但是簡單套入N=6,n=5就錯了
: 我是想這個問題應該等同在N個有序位置排黑白球的問題
: 求的就是N個位置至少有一組連續相鄰n個白球的機率
: (或是說 1 - N個位置中沒半組相連n個白球的機率)
: 而當N-n=1(即黑球個數<=1)的時候這個問題應該蠻簡單的,N>=2時答案都是3
: 1顆黑球→2種可能 (放第一或放最後)
: 0顆黑球→1種可能 (全部白球)
: 我都是用這個來驗證公式最快。
: 那麼我自己有導出一個遞迴式如下:
: P(N,n)是在總共N個賽局中遇到至少一組n個相連白球的機率
: 其中還分三種情形:
: P(N,n)=0 | N < n
: P(N,n)=(0.5)^n | N = n
: P(N,n)=(1/2)^n+for(i=0,i<n,i++){(1/2)^(n-i)*P(N-n+i,n)} | N > n
: 圖:
: https://imgur.com/7bH7b4u.jpg
: 基本上這個我有轉成matlab去跑程式,數字小是能跑,太大就爆了
: 目前也都跟自己自幹的答案一樣
: 想問有沒有誰能把這個遞迴改成通式?
: 嘗試過在code那邊用迭代法修改,不過對我來說難度太高
: 如果有誰給能出通式,並且驗證過後我會給他稅後3000P當酬勞(?)
: 如果n設為6~10之類的定值,以此為出發給出通式則是1000P
: 先謝謝大神了
這算是整數分割的變形
假設有N個賽局 連續的勝或負的次數用數字表示 可以分割該N數為連加法
例如5次賽局分別為 勝負負勝勝 則為 1+2+2
勝首局時 則偶數項(連輸的次數)不能大於n-1
負首局時 則奇數項(連輸的次數)不能大於n-1
將上述兩種情況加起來即為存活的所有可能排列
反之 用2^N去減上述總和就是會輸的可能數 再除以2^N就是失敗機率
接下來就叫chatGPT去寫程式了
https://pastebin.com/AeSEYqBj
測試結果
請輸入N與n(用空格分隔): 5 4
存活可能數 14 + 15 = 29
失敗可能數 32 - 29 = 3
失敗率 3 / 32 = 0.09375
請輸入N與n(用空格分隔): 6 5
存活可能數 30 + 31 = 61
失敗可能數 64 - 61 = 3
失敗率 3 / 64 = 0.046875
請輸入N與n(用空格分隔): 7 6
存活可能數 62 + 63 = 125
失敗可能數 128 - 125 = 3
失敗率 3 / 128 = 0.0234375
請輸入N與n(用空格分隔): 12 11
存活可能數 2046 + 2047 = 4093
失敗可能數 4096 - 4093 = 3
失敗率 3 / 4096 = 0.000732421875

Links booklink

Contact Us: admin [ a t ] ucptt.com