題目連線
乙個盒子中有n個紅球和m個黑球,n+m>=1,現在規定隨機拿出兩個球(拿出後不放回盒子中),如果是一紅一黑,則向盒子中放入乙個黑球;其他情況向盒子中放入乙個紅球。求當盒子中只剩乙個球時,是紅球的概率。
有多組測試資料,每組輸入兩個數,n,m(0<=n<=100,0<=m<=100,1<=n+m)
輸出包含一行是紅球的概率,保留6位小數。樣例輸入
1 1
1 0
樣例輸出
0.000000
1.000000
分析問題:
求紅色的概率,可以倒著推導。
首先,觀察變化。
bb -> r ,rr -> r ,br - > b由以上可以得知,如果b的數量是奇數,就不可能通過變換最後把 b 完全消去從而只剩下乙個 r ,因此此時概率為 0也就是說,可以通過rr消去乙個r,也可以通過br消去乙個r,消去b的方式只有一種,通過bb同時消去兩個b,生成乙個r
如果是偶數個,不妨設 b 有很多很多個,r也有很多很多個,有三種情況:
取走了兩個b,這樣的話會消去兩個b生成乙個r,b的數量依然是偶數
取走了兩個r,這樣會消去兩個r再生成乙個r,b的數量不變
各取走乙個,會消去乙個r乙個b,再生成乙個b,b的數量不變
如果最後只剩下乙個 r ,必然要求把所有的 b 全部消去,只能通過操作1完成,如果中間有操作2 或者 3的發生,b 的數量不變,r 的數量增多或者減少,直到某一步b 完全消去了只有 r 的時候,無論怎麼操作都會在原來的基礎上少乙個 r ,因此一定可以滿足條件。因此概率為1
#include using namespace std;
int main()
else puts("1.000000");
} return 0;
}
SICP練習 85 練習2 57
看到題目中的能處理任意項就趕緊這道題挺難的,同時也想到了前面學過但還沒怎麼用過的點引數。題目中要能求和還能求乘積。我們先來寫求和的函式吧。define make sum a1 a2 if single operand?a2 let a2 car a2 cond number?a10 a2 numbe...
SICP練習 85 練習2 57
看到題目中的能處理任意項就趕緊這道題挺難的,同時也想到了前面學過但還沒怎麼用過的點引數。題目中要能求和還能求乘積。我們先來寫求和的函式吧。define make sum a1 a2 if single operand?a2 let a2 car a2 cond number?a10 a2 numbe...
SGU 257 Debt 貪心 模擬
題意 有乙個人欠三個人分別p o s 1 p o s 10 5 塊錢,現在這個人手裡有n 1 n 10 5 塊crystal,但是每塊crystal在不同人看來是不一樣的 價值 1塊或者2塊 現在問是否存在一種分配方案使得能還清3個人的錢。題解 首先給不同的crystal排優先順序,然後列舉滿足三個...