PTT推薦

Re: [問題][霧車] 關於賭場poker推演

看板DMM_GAMES標題Re: [問題][霧車] 關於賭場poker推演作者
nahsnib
(悟)
時間推噓 7 推:7 噓:0 →:4

理論與實務要結合。


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

圖 [霧車] 關於賭場poker推演
: 這計算若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賭哪個好?

--
以雙眼親睹靈魂的奧秘
以雙手掌握生命的法則

人類不應觸及,僅屬於神祇的禁忌之天頂…不曾存在!

--

※ PTT留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.169.188.242 (臺灣)
PTT 網址

kimokimocom06/06 21:41你們wwwwww推詳細計算XD

※ 編輯: nahsnib (1.169.188.242 臺灣), 06/06/2022 21:43:03

windnduck06/06 22:31是不是叫我該M起來?

npc77606/06 23:46( ╮ ′ _ > ` )a ???

yoyofish0206/07 00:29(′・ω・‵) 嗯?蛤?

bigbeat06/07 06:33連code 都有 不過出社會後覺得當碼農太肝改行 忘得差不

bigbeat06/07 06:33多了xd

Tsucomi6906/07 08:41官方請實裝自動連賭功能

billy79112206/07 13:12車車賭場還很lag嗎,gbf那種才叫一個順

tom00000tw06/07 16:05居然寫成code...真有你的

refusekkk06/07 21:26

Alicputster06/08 21:31...快推不然別人會以為我看不懂(X