Re: [问题][雾车] 关于赌场poker推演

楼主: nahsnib (æ‚Ÿ)   2022-06-06 21:31:45
理论与实务要结合。
import random
false_times_1 = 0
false_times_2 = 0
times = 1000
#3900测times次
money = 0
level = 0
steps = 1
for steps in range(1,times):
#一开始没有钱
money = 0
#赚到超过就停止
while money < 500:
#设定翻倍次数为0次
level = 0
#抽初始卡,计算卡的点数,计算上会是0~12
card_now = random.randint(0,51)
card_now_point=int(card_now/4)
#如果还没到8次就继续
while level<8:
#抽下一张卡,但不能抽到同一张卡,抽到就重抽
card_next = random.randint(0,51)
while card_now == card_next:
card_next = random.randint(0,51)
card_next_point=int(card_next/4)
#如果当前点数大于7,都猜小。
if card_now_point > 5:
#如果下一张卡点数小于当前卡牌,翻倍,并且将当前卡片设为抽起来的卡片
if card_next_point < card_now_point:
level+=1
card_now=card_next
card_now_point=card_next_point
#如果下一张卡点数大于当前卡牌,失败,倍率归零,一切重来但失败次数+1
elif card_next_point > card_now_point:
level=0
false_times_1+=1
card_now = random.randint(0,51)
card_now_point=int(card_now/4)
#如果点数相等,那就啥都没发生,再来一次;这时候卡就当作不用重抽没关系
#如果当前点数小或等于7,都猜大。
else :
#如果下一张卡点数小于当前卡牌,翻倍并且将当前卡片设为抽起来的卡片
if card_next_point > card_now_point:
level+=1
card_now=card_next
card_now_point=card_next_point
#如果下一张卡点数大于当前卡牌,失败,倍率归零,一切重来但失败次数+1
elif card_next_point < card_now_point:
level=0
false_times_1+=1
card_now = random.randint(0,51)
card_now_point=int(card_now/4)
#如果点数相等,那就啥都没发生,再来一次;这时候卡就当作不用重抽没关系
#累积8次成功后,奖金增加,往下一次前进
money += 199
#做到额度全满,也就是赢三次结束
#5000测times次
money = 0
level = 0
steps = 1
for steps in range(1,times):
#一开始没有钱
money = 0
#赚到超过就停止
while money < 500:
#设定翻倍次数为0次
level = 0
#抽初始卡
card_now = random.randint(0,51)
#计算卡的点数,计算上会是0~12
card_now_point=int(card_now/4)
#如果还没到7次就继续
while level<7:
#抽下一张卡,但不能抽到同一张卡,抽到就重抽
card_next = random.randint(0,51)
while card_now == card_next:
card_next = random.randint(0,51)
#计算卡的点数,计算上会是0~12
card_next_point=int(card_next/4)
#如果当前点数大于7,都猜小。
if card_now_point > 5:
#如果下一张卡点数小于当前卡牌,翻倍,并且将当前卡片设为抽起来的卡片
if card_next_point < card_now_point:
level+=1
card_now=card_next
card_now_point=card_next_point
#如果下一张卡点数大于当前卡牌,失败,倍率归零,一切重来但失败次数+1
elif card_next_point > card_now_point:
level=0
false_times_2+=1
card_now = random.randint(0,51)
card_now_point=int(card_now/4)
#如果点数相等,那就啥都没发生,再来一次;这时候卡就当作不用重抽没关系
#如果当前点数小或等于7,都猜大。
else :
#如果下一张卡点数大于当前卡牌,翻倍并且将当前卡片设为抽起来的卡片
if card_next_point > card_now_point:
level+=1
card_now=card_next
card_now_point=card_next_point
#如果下一张卡点数小于当前卡牌,失败,倍率归零,一切重来但失败次数+1
elif card_next_point < card_now_point:
level=0
false_times_2+=1
card_now = random.randint(0,51)
card_now_point=int(card_now/4)
#如果点数相等,那就啥都没发生,再来一次;这时候卡就当作不用重抽没关系
#累积7次成功后,奖金增加,往下一次前进
money += 128
#做到额度全满,也就是赢四次结束
#输出总失败次数
print(false_times_1,false_times_2)
跑了几次之后得到
29254 27368
29285 27770
29075 28483
29275 28505
29431 27978
看,总之差不多。
除以测试的1000次之后,我们大致上可以得到赌3900的,每天会翻车约29.3次,
赌5000的大概每天翻车28次,然而每天前者每天多赚了100万,可以更早达到筹码自由。
当然这只讨论只会中三条兔胚,不过纳入其他做考量实在太麻烦了。
如果哪里写错请再指教,谢谢。
※ 引述《jpopaholic (日音スキ)》之铭言:
: 虽然版上或其他攻略网都有赌场poker心得,但感觉都有点奇怪
: 于是几天前我自行推演一下,好像有更好的玩法
: 先从比大小机率推演开始(梭哈部分比较难,之后推演)
: 若无脑随便压机率是1/2,但是可以根据牌型判断大小,所以不是单存1/2
: 一堆网站攻略都有各数字大小的机率
: 但是它们都把平手视为另外的机率
: 但是这游戏平手不是赢也不是输(虽然可以途中反悔,但前期是跟的情况下)
: 是重新比一次
: 所以胜/输的机率就不是单存攻略所写的
: 而是:
: 赢/输一次 + 平手一次之后赢/输一次 + 平手两次之后赢/输一次 + .... +
: 平手无限次后赢/输
: 假设赢/输的机率是p
: 那机率就是: p 乘以 sigma n = 0 to infinity ( 3/51 )^n
: (平手机率是3/51)
: 这算出来是 17/16 * p
: 所以实际输/赢机率都要乘上 17/16
: 所以庄家出A赢的机率就变成: 12*4/51 * 17/16 = 100%
: 之后以此类推
: 得知一次比大小若不手残能赢的机率是:
: 1/13 * ( (12+11+10+..+7)*4*2+6*4)/51 ) * 17/16 = 10/13
: 虽然从第二局比大小开始,庄家会拿闲家的牌,但不论庄或闲都是庄家发牌
: 所以可以视为每一局都是独立机率
: 所以挑战10次赢得大奖的机率是 (10/13)^10 ~= 7.25%
: (其实不算高)
: 然而由于每赢一次都是基数两倍,所以会乘指数上涨
: 变相连赌x次的赢倍率期望值为:
: (10/13)^x * 2^x
: https://i.imgur.com/8uOFXh0.png
: 这计算若x = 5 则 f(x) ~= 8.6
: x = 9 则 f(x) ~= 48.28
: x = 10 则 f(x) ~= 74.27
: 但是这赌场不是单纯只比大小(不然拉斯维加斯一定破产被大家淦)
: 前面还有梭哈机制
: 虽然有hold和鬼牌机制,会使得算梭哈机率变得超级难算
: (而且还不知道鬼牌是一张还是两张)
: 所以梭哈部分单纯不考虑鬼牌和hold(其实加上这两项不会使得机率提高)
: 这部分计算复杂,直接拿wiki计算比较快(wiki有详细解释):
: https://zh.m.wikipedia.org/zh-tw/%E6%92%B2%E5%85%8B%E7%89%8C%E5%9E%8B
: 得知拿杂牌机率是 ~50.12% 一对机率是 ~42.26%
: 所以能比大小的入门门槛是 ~ 1-50.12%-42.26%
: 这算出来约 7.62% (因为underflow关系我们算8%)
: 以下先假设不论牌型基础倍率皆相同(不然很难算)
: 所以刚刚的赢得倍率期望值还有再乘以8%
: 得到:
: x = 5 , f(x) = 0.688
: x = 9 , f(x) = 3.862
: x = 10 , f(x) = 5.946
: 所以巴O推荐连赢五场就收其实很不好,因为期望值很低,只能慢慢已基底0.6倍
: 慢慢累积
: 至于9场或10场我觉得看个人,若有保握尽量10场,但9场与10场约只差两倍
: 因为一局梭哈+比大小速度很快,所以可以一直连刷
: 变相连续x场梭哈+比大小
: 没有一局10场大小赢的机率为
: (1-(10/13)^10*8%)^x
: 至少一局10场大小赢的机率为
: 1-(1-(10/13)^10*8%)^x
: 当x=20 机率约 10%
: 当x=100 机率约 44%
: 当x=300 机率约 82%
: 当x=400 机率约 90%
: 当x=600 机率约 97%
: 所以巴O说机抵用赌本1/300有点危险,应为期望机率有82%
: 用1/400比较安全,期望机率有90%
: 而且用1/300 回本时赚赌本的 1/300 * 2^10 ~= 3.4 倍
: 用1/400 回本时赚赌本的 1/400 * 2^10 = 2.56 倍
: 当然用很保险的1/600 去赌 ,但是回本只会拿约 1.7倍
: 所以没赌本的时候,我还是倾向于用1/400赌本下去赌
: 因为赢一次就用更大的赌本去赌,所以赢前会变成指数性成长
: 不论是2.56^x 或是 3.4^x ,很快就撞到每日上线
: 这样推论应该比较完整吧?
: 至于若 1/400 或 1/300 赌本 撞到上限 5000
: 用5000还是期望值最高的3900赌哪个好?
作者: kimokimocom (A creative way)   2022-06-06 21:41:00
你们wwwwww推详细计算XD
作者: windnduck (be Human)   2022-06-06 22:31:00
是不是叫我该M起来?
作者: npc776 (二次元居民)   2022-06-06 23:46:00
( ╮ ′ _ > ` )a ???
作者: yoyofish02   2022-06-07 00:29:00
(′・ω・‵) 嗯?蛤?
作者: bigbeat (天气热)   2022-06-07 06:33:00
连code 都有 不过出社会后觉得当码农太肝改行 忘得差不多了xd
作者: Tsucomi69 (N9SU3XL3AJ4)   2022-06-07 08:41:00
官方请实装自动连赌功能
作者: billy791122 (jj)   2022-06-07 13:12:00
车车赌场还很lag吗,gbf那种才叫一个顺
作者: tom00000tw (Metaphorical)   2022-06-07 16:05:00
居然写成code...真有你的
作者: refusekkk (另类3k)   2022-06-07 21:26:00
作者: Alicputster (Alic)   2022-06-08 21:31:00
...快推不然别人会以为我看不懂(X

Links booklink

Contact Us: admin [ a t ] ucptt.com