天堂里的游戏(51Nod-1417)
題目
多年后,每當Noder看到吉普賽人,就會想起那個遙遠的下午。
Noder躺在草地上漫無目的的張望,二樓的咖啡館在日光下閃著亮,像是要進化成一顆巨大的咖啡豆。天氣稍有些冷,但草還算暖和。不遠的地方坐著一個吉普賽姑娘,手里拿著塔羅牌,帶著耳機,邊上是她的狗。狗看起來有點兇,姑娘卻漂亮。Noder開始計算各種搭訕方式的成功概率,然而狗的存在......。
奇怪的事情發(fā)生了,姑娘自己走了過來,把耳機戴在Noder的耳朵上,里面播放著:“......Knock-knock-knockin' on heaven's door ......”。姑娘沖他詭異的一笑,Noder只覺得自己眼前一陣眩暈,然后就站在了天堂的門口。
正當Noder驚魂未定的時候,走來一個美女,要求和他一起玩?zhèn)€數(shù)學游戲。美女提議:“讓我們各自亮出硬幣的一面,或正或反。如果我們都是正面,那么我給你A元,如果我們都是反面,我給你B元(A + B為偶數(shù))。剩下的情況你給我(A + B) / 2元就可以了。
Noder知道這個游戲他多半要輸,可他并不在乎,他只想讓自己輸?shù)穆稽c。
那么你來幫美女計算一下,她選擇出正面的概率應(yīng)該是多少(以最簡分數(shù)形式輸出)?
輸入
第1行:一個數(shù)T,表示后面用作輸入測試的數(shù)的數(shù)量(1 <= T <= 20)。
第2 - T + 1行:每行2個數(shù)A, B中間用空格分隔。(1 <= A, B <= 10^9,且A + B為偶數(shù))。
輸出
輸出共T行,對應(yīng)美女選擇正面的概率,以最簡分數(shù)形式輸出,具體請參看輸出樣例。
輸入樣例
2
3 1
1 3
輸出樣例
3/8
5/8
關(guān)于樣例的解釋:
美女采取了(3/8,5/8)這個方案,不論Noder采用什么方案,都是不能改變局面的。如果全部出正面,每次的期望收益是 (3+3+3-2-2-2-2-2)/8=-1/8元;如果全部出反面,每次的期望收益也是(-2-2-2+1+1+1+1+1)/8=-1/8元。而任何策略無非只是上面兩種策略的線性組合,所以期望還是-1/8元。
思路:
設(shè)女性出正面的概率為 x,那么出反面的概率為 1-x
那么對于男性來說:
- 假設(shè)男性全出正,那么有:
- 假設(shè)男性全出反,那么有:
兩者期望相同,故:
化簡得:
即:
源程序
#include<iostream> #include<cstdio> #include<cstdlib> #include<string> #include<cstring> #include<cmath> #include<ctime> #include<algorithm> #include<utility> #include<stack> #include<queue> #include<vector> #include<set> #include<map> #define EPS 1e-9 #define PI acos(-1.0) #define INF 0x3f3f3f3f #define LL long long const int MOD = 1E9+7; const int N = 1000000+5; const int dx[] = {-1,1,0,0}; const int dy[] = {0,0,-1,1}; using namespace std; LL GCD(LL a,LL b){return b==0?a:GCD(b,a%b); } int main() {int t;scanf("%d",&t);while(t--){LL a,b;scanf("%lld%lld",&a,&b);LL gcd=GCD(a+3*b,4*(a+b));LL up=(a+3*b)/gcd;LL down=(4*(a+b))/gcd;printf("%lld/%lld\n",up,down);}return 0; }?
總結(jié)
以上是生活随笔為你收集整理的天堂里的游戏(51Nod-1417)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Problem C(HDU-5687)
- 下一篇: 搜索 —— 启发式搜索 —— A* 算法