以下の内容はhttps://blog.hamayanhamayan.com/entry/2017/09/09/134642より取得しました。


コンプリート [yukicoder No.567]

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

解説放送

未定

解説

https://yukicoder.me/submissions/203601

dpで解く
dp[i][j] := サイコロをi回投げて6面のうちj面が既に出ている確率

サイコロを既にi回投げて、6面のうちj面が既に出ている場合
新しい面が出る確率は(6 - j) / 6であり、これでdp[i+1][j+1]を更新する
出たことある面が出る確率はj/6であり、これでdp[i + 1][j]を更新する

するとdp[N][6]が答え

int N;
double dp[1010101][10];
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> N;
    dp[0][0] = 1;
    rep(i, 0, N) rep(j, 0, 7) {
        int ok = 6 - j;
        int ng = j;
        dp[i + 1][j + 1] += dp[i][j] * ok / 6;
        dp[i + 1][j] += dp[i][j] * ng / 6;
    }
    printf("%.10f\n", dp[N][6]);
}



以上の内容はhttps://blog.hamayanhamayan.com/entry/2017/09/09/134642より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14