Ограничения: время – 100ms/500ms, память – 64MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
Эми (далее A) и Бендер (B) играют в следующую азартную игру. Перед началом игры A отдает B `P`$.
Затем B бросает монетку. Если выпал орел, B отдает A 1$, и игра заканчивается. Если выпала решка,
то B бросает монету во второй раз. Если выпадает орел, то B отдает 2$, иначе бросает монету снова.
Если орел выпадает после `N` решек, то B платит A `2^N`$ и игра заканчивается, иначе B продолжает
бросать монету, но не более чем `K` раз. Если орел не выпал и после `К` подбрасываний монеты,
то игра завершается и B платит A `2^K`$. Определите математическое ожидание выигрыша A.
Например, для `P=3` и `K=5` математическое ожидание можно рассчитать следующим образом. Вероятность выпадения
орла при первом броске равна `1/2`. При этом выигрыш равен `1-3\ =\ -2`. Если орел выпадет только при
втором броске (вероятность этого события равна `1/4`), то выигрыш составит `2-3\ =\ -1`. Аналогично для третьего
броска вероятность равна `1/8`, а выигрыш `4-3\ =\ 1`. Для четвертого броска вероятность равна `1/16`, а
выигрыш `8-3\ =\ 5`, для пятого: `1/32` и `16-3\ =\ 13`. Вероятность, что пять раз выпадет решка, равна `1/32`, а выигрыш
при этом будет равен `32-3\ =\ 29`. Перемножая вероятности и выигрыши и суммируя результаты, получаем математическое
ожидание выигрыша `(-2)/2\ +\ (-1)/4\ +\ 1/8\ +\ 5/16\ +\ 13/32\ +\ 29/32\ =\ 0.50`$ (полдоллара).
Во входном файле содержится два целых числа через пробел – `P` и `K` (`1\ ≤\ P\ ≤\ 10^9`, `1\ ≤\ K\ ≤\ 10^9`).
В выходной файл вывести математическое ожидание выигрыша A с двумя десятичными знаками.