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