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