賭博遊戲 概率dp

2021-08-10 13:07:00 字數 1110 閱讀 5917

題目描述

最近西雅圖的高中校園裡流行這樣乙個遊戲。

我們有乙個骰子,這個骰子有 m 個面,分別寫著 1..m ,並且是個公平的骰子,換句話說,一次投擲時每個面朝上的概率是相同的。

遊戲的組織者使用這個骰子進行 n 次投擲,並且告訴玩家點數 v 出現了至少一次。那麼玩家需要猜測 n 次投擲的點數之和。如果猜對了,就贏得了這個遊戲。

小宇也喜歡玩這個遊戲。在一次遊戲中,她猜測了乙個正整數 sum ,於是她想知道猜對的概率是多少。

輸入格式

輸入檔案僅一行,包括 4 個正整數 n, m, v, sum 。

輸出格式

輸出檔案包括一行,乙個實數,保留 8 位小數,表示猜對的概率。

樣例資料 1

輸入 

2 6 6 12

輸出 0.09090909

分析:定義f[i][j][k],表示猜了i次,和為j,是否猜到過v,於是不難看出轉移:

f[i][j][k==v]+=f[i-1][j-k][0]/(m*1.0);

f[i][j][1]+=f[i-1][j-k][1]/(m*1.0);

最後統計和為sum的概率/總的和的概率就得到答案:

# include 

# include

# include

# include

# include

# include

# include

# include

# include

using

namespace

std;

typedef

long

long ll;

int read()

while(ch>='0'&&ch<='9')

return f*i;

}double tot,f[55][2550][2];

int n,m,v,sum;

int main()

for(int i=1;i<=n*m;++i) tot+=f[n][i][1];

printf("%.8f\n",f[n][sum][1]/tot);

}

配對遊戲 概率DP)

美團點評是綜合性生活服務平台,覆蓋吃喝玩樂。在休閒娛樂版塊,有很多轟趴 桌遊 密室逃脫類的專案,適合多人一起玩。下面就是出自團隊遊戲場景中的乙個問題。有 n 個人排成一排,一開始全部面向前方,然後大家一起轉身,隨機朝左或是朝右轉。轉身後,不斷檢查佇列,如果存在兩個面對面的相鄰的人,則將這兩個人從佇列...

craps賭博遊戲

遊戲規則如下 玩家擲兩個骰子,點數為1到6,如果第一次點數和為7或11,則玩家勝,如果點數和為2 3或12,則玩家輸,如果和 為其它點數,則記錄第一次的點數和,然後繼續擲骰,直至點數和等於第一次擲出的點數和,則玩家勝,如果在這之前擲出了點數和為7,則玩家輸 from random import ra...

Craps賭博遊戲

craps賭博遊戲 玩家搖兩顆色子 如果第一次搖出7點或11點 玩家勝 如果搖出2點 3點 12點 莊家勝 其他情況遊戲繼續 玩家再次要色子 如果搖出7點 莊家勝 如果搖出第一次搖的點數 玩家勝 否則遊戲繼續 玩家繼續搖色子 玩家進入遊戲時有1000元的賭注 全部輸光遊戲結束 骰子 乙個流行的骰子遊...