一袋小球
题号:NC232848
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

D和P轮流从一个装有w个白球和b个黑球的袋子中轮流取小球,第一个取到白球的人获胜(所有小球除颜色外完全相同)。当袋子中没有小球时,D获胜。为了更容易获胜,每次D取小球时会故意多带出一个小球(带出的小球不算取出,带出每个小球的概率相同)。
所有小球取出或带出后不放回,求P先手时P获胜的概率。

输入描述:

输入一行两个整数wb ()。

输出描述:

输出一行一个实数,表示P获胜的概率。与答案的绝对或相对误差不超过即为正确。
示例1

输入

复制
1 3

输出

复制
0.500000000

说明

P第一轮取到白球的概率为1/4,D第一轮取不到白球的概率为3/4 * 2/3 = 1/2。在D第一轮取不到白球的情况下,袋中剩下一黑一白两个小球,此时D带出白球时,D获胜,否则P获胜(概率为1/2 * 1/2 = 1/4)。故P获胜的概率为1/4 + 1/4 = 1/2。
示例2

输入

复制
5 5

输出

复制
0.658730159