C. Машины соперников
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

После победы над соперником из Чёрного Списка вы получаете шанс вытянуть $$$1$$$ из $$$x$$$ доступных призовых карточек. Изначально $$$x=3$$$ и доступны следующие карточки: Взятка, Освобождение от конфискации и Машина соперника. Изначально вероятность вытянуть их в случайной попытке равна $$$c$$$, $$$m$$$ и $$$p$$$ соответственно. Также присутствует фактор изменчивости $$$v$$$. Вы можете играть в гонки с соперником до тех пор, пока не вытяните карточку Машина соперника. Предположим, что вы выигрываете каждую гонку и получаете шанс тянуть призовую карточку. В каждом вытягивании вы достаете одну из $$$x$$$ доступных карточек с соответствующей вероятностью. Пусть вы вытянули карточку и вероятность ее вытягивания до вашей попытки была равна $$$a$$$. Тогда

  • Если это карточка Машина соперника, то игра для вас заканчивается и вы больше не можете участвовать в гонках.
  • Иначе
    1. Если $$$a\leq v$$$, то вероятность вытянутой карточки становится равной $$$0$$$ и она перестает быть доступной для последующих вытягиваний, уменьшая $$$x$$$ на $$$1$$$. Более того, освободившаяся вероятность $$$a$$$ распределяется равномерно среди оставшихся доступных карточек.
    2. Если $$$a > v$$$, вероятность вытянутой карточки уменьшается на $$$v$$$, и освободившаяся вероятность распределяется равномерно среди остальных доступных карточек.

Например,

  • Если $$$(c,m,p)=(0.2,0.1,0.7)$$$ и $$$v=0.1$$$, то после вытягивания карточки Взятка новые вероятности будут равны $$$(0.1,0.15,0.75)$$$.
  • Если $$$(c,m,p)=(0.1,0.2,0.7)$$$ и $$$v=0.2$$$, то после вытягивания карточки Взятка новые вероятности будут равны $$$(\text{Недоступна},0.25,0.75)$$$.
  • Если $$$(c,m,p)=(0.2, \text{Недоступна},0.8)$$$ и $$$v=0.1$$$, то после вытягивания карточки Взятка новые вероятности будут равны $$$(0.1, \text{Недоступна} ,0.9)$$$.
  • Если $$$(c,m,p)=(0.1,\text{Недоступна},0.9)$$$ и $$$v=0.2$$$, то после вытягивания карточки Взятка новые вероятности будут равны $$$(\text{Недоступна},\text{Недоступна},1.0)$$$.

Вам хочется заполучить машину соперника. Для этого вы должны найти математическое ожидание количества гонок, которые нужно пройти, чтобы вытянуть карточку Машина соперника.

Входные данные

Первая строка содержит одно целое число $$$t$$$ ($$$1\leq t\leq 10$$$) — количество наборов входных данных.

Первая и единственная строка каждого набора содержит четыре действительных числа $$$c$$$, $$$m$$$, $$$p$$$ и $$$v$$$ ($$$0 < c,m,p < 1$$$, $$$c+m+p=1$$$, $$$0.1\leq v\leq 0.9$$$).

Гарантируется, что каждое из чисел $$$c$$$, $$$m$$$, $$$p$$$ и $$$v$$$ содержит не более $$$4$$$-х знаков после запятой.

Выходные данные

Для каждого набора входных данных выведите одну строку, содержащую одно действительное число — математическое ожидание количества гонок, которые нужно пройти, чтобы вытянуть карточку Машина соперника.

Ответ будет считаться верным, если его абсолютная или относительная ошибка не будет превосходить $$$10^{-6}$$$.

Формально, пусть ваш ответ равен $$$a$$$, а ответ жюри – $$$b$$$. Ваш ответ считается правильным, если $$$\frac{|a - b|}{\max{(1, |b|)}} \le 10^{-6}$$$.

Пример
Входные данные
4
0.2 0.2 0.6 0.2
0.4 0.2 0.4 0.8
0.4998 0.4998 0.0004 0.1666
0.3125 0.6561 0.0314 0.2048
Выходные данные
1.532000000000
1.860000000000
5.005050776521
4.260163673896
Примечание

Обозначим за C вытягивание карточки Взятка, за M — карточки Освобождение от конфискации, за P — карточки Машина соперника.

В первом наборе входных данных возможные последовательности вытягиваний представлены ниже:

  • P с вероятностью $$$0.6$$$;
  • CP с вероятностью $$$0.2\cdot 0.7 = 0.14$$$;
  • CMP с вероятностью $$$0.2\cdot 0.3\cdot 0.9 = 0.054$$$;
  • CMMP с вероятностью $$$0.2\cdot 0.3\cdot 0.1\cdot 1 = 0.006$$$;
  • MP с вероятностью $$$0.2\cdot 0.7 = 0.14$$$;
  • MCP с вероятностью $$$0.2\cdot 0.3\cdot 0.9 = 0.054$$$;
  • MCCP с вероятностью $$$0.2\cdot 0.3\cdot 0.1\cdot 1 = 0.006$$$;
Поэтому математическое ожидание количества гонок равно $$$1\cdot 0.6 + 2\cdot 0.14 + 3\cdot 0.054 + 4\cdot 0.006 + 2\cdot 0.14 + 3\cdot 0.054 + 4\cdot 0.006 = 1.532$$$.

Во втором наборе данных возможные последовательности вытягиваний представлены ниже -

  • P с вероятностью $$$0.4$$$;
  • CP с вероятностью $$$0.4\cdot 0.6 = 0.24$$$;
  • CMP с вероятностью $$$0.4\cdot 0.4\cdot 1 = 0.16$$$;
  • MP с вероятностью $$$0.2\cdot 0.5 = 0.1$$$;
  • MCP с вероятностью $$$0.2\cdot 0.5\cdot 1 = 0.1$$$.

Поэтому математическое ожидание количества гонок равно $$$1\cdot 0.4 + 2\cdot 0.24 + 3\cdot 0.16 + 2\cdot 0.1 + 3\cdot 0.1 = 1.86$$$.