はまやんはまやんはまやん

hamayanhamayan's blog

ふしぎなナップサック [yukicoder No.560]

https://yukicoder.me/problems/no/560

解説放送

準備中

解説

https://yukicoder.me/submissions/199805

一回試行する毎に以下のような漸化式で期待値が変化していく
ans' = ans * 2 * 1/3 + (ans + 1) * 1/3
これをN回繰り返せば答え。

int M, N;
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> M >> N;
    double ans = M;
    rep(i, 0, N) ans = ans * 2 * 1.0 / 3.0 + (ans + 1) * 1.0 / 3.0;
    printf("%.10f\n", ans);
}