日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

UVA11427玩纸牌(全概率+递推)

發布時間:2025/6/17 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UVA11427玩纸牌(全概率+递推) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題意:
? ? ? 一個人玩紙牌游戲,他每天最多玩n局,枚舉獲勝的概率是a/b,每天玩牌只要獲勝概率達到p,那么他今天就不玩了,明天接著玩,如果有一天他的概率沒有達到p,(沒有達到p的話他今天一定是玩了n次),那么他以后就在也不玩了,問題是在平均的情況下,他能玩多少個晚上的牌?


思路:
? ? ? 我們可以先算他只玩一天就失敗了的概率,P[i][j]表示玩了i次,贏了j次,當
j/i<=p的時候,根據全概率公式,P[i][j] = P[i-1][j]*(1-p)+P[i-1][j-1]*p前面是輸了后面是贏了,端點值是P[0][0] = 1 ,P[0][1] = 0,其他部分全都是0,記得要把其他部分清成0,因為更新是不連續的,這樣之后只玩一天的概率等于Q = P[n][0] + P[n][1] +.....
這樣答案就是(期望)
玩一天 1 * Q
玩兩天 2 * Q(1-Q)
玩三天 3 * Q(1-Q)^2
......
化簡后 Ans = 1 / Q;
說下化簡的方法吧,有兩種
(1)
? ?a 令s = EX/Q = 1+2(1-Q)+3(1-Q)^2+4(1-Q)^3+...

? ?b ? ? (1-Q)s = (1-Q)+2(1-Q)^2+3(1-Q)^3+....
a - b得到
EX = Qs = 1+(1-Q)+(1-Q)^2+(1-Q)^3+..=1/Q


(2)
設數學期望為e天,把情況分為兩類,第一天晚上出頭喪氣概率Q期望1,第一天晚上興高采烈,概率(1-Q)期望e + 1,解得 e = Q * 1 + (1 - Q) * (e + 1) => e = 1/Q;




#include<stdio.h>
#include<string.h>


double P[105][105];


int main ()
{
? ?int n ,a ,b ,i ,j;
? ?int t ,cas = 1;
? ?scanf("%d" ,&t);
? ?while(t--)
? ?{
? ? ? scanf("%d/%d%d" ,&a ,&b ,&n);
? ? ? double p = a * 1.0 / b;
? ? ? memset(P ,0 ,sizeof(P));
? ? ? P[0][0] = 1 ,P[0][1] = 0;
? ? ? for(i = 1 ;i <= n ;i ++)
? ? ? for(j = 0 ;j * b <= i * a ;j ++)
? ? ? {
? ? ? ? ?P[i][j] = P[i-1][j] * (1 - p) ;
? ? ? ? ?if(j >= 1)P[i][j] += ?P[i-1][j-1] * p;
? ? ? }
? ? ? double Ans = 0;
? ? ? for(j = 0 ;j * b <= n * a ;j ++)
? ? ? Ans += P[n][j];
? ? ? printf("Case #%d: %d\n" ,cas ++ ,(int)(1 / Ans));
? ?}
? ?return 0;
}
? ?



總結

以上是生活随笔為你收集整理的UVA11427玩纸牌(全概率+递推)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。