• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 68  文章 - 57  trackbacks - 0
            <2010年3月>
            28123456
            78910111213
            14151617181920
            21222324252627
            28293031123
            45678910

            常用鏈接

            留言簿(8)

            隨筆分類(74)

            隨筆檔案(68)

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

              題目大意就是N個商店,M個人,每個人進入商店這個商店就賺n * d的錢,但是多個人只算一次錢。如果每個人進入每個商店的概率相同問最后所有商店期望的賺錢數是多少。
              做得超級艱苦,最開始是列錯了式子,推了一個上午,居然還推出了答案,發現是一個算組合數的式子,因此超時了。
              下午請教了吉大牛,發現我算概率的時候考慮的不對,實際要用到容斥原理。于是又推了一個下午。。。最后式子終于對了但是求不出來和。
              式子的列法是這樣的:以M個人恰好進入了i個不同的商店作為概率分布,那么事件P(i)的概率為(i / N) ^ M - C(i, 1) * ((i - 1) / N) ^ M + C(i, 2) * ((i - 2) / N) ^ M - ...
              也就是一個容斥原理。然后總的期望E = sigma{C(n, i) * P(i) * i * n * d},i = 0 ... N。
              這個式子列出來后怎么也求不出結果。晚上imems告訴了我一個很簡單的推導方法。對于一個商店來說,一個人不去的概率是(N - 1) / N,那么M個人都不去的概率是((N - 1) / N) ^ M,用1減去這個結果就是肯定至少有人去這個商店的概率。然后總的期望就乘以N個商店,再乘以賺錢數n * d就可以了。很巧妙,因為他是從商店的角度直接考慮的問題,而不考慮商店的人數,這樣就不用列概率分布了。
              但是上面的公式就不能推導出正確結果了么,后來又推了一下,發現是可以的(照著結果猜- -!)。
              具體的推導很麻煩,但是總的來說用到了組合數學的幾個公式。首先 k * C(n, k) = n * C(n - 1, k - 1),利用這個公式把外面的i消去。然后有pascal遞推式:C(n, k) = C(n - 1, k) + C(n - 1, k - 1)。我們分別考慮(i / N) ^ M前面的系數,可以發現都是兩個二項式系數相乘的方式。把其中的一個利用pascal公式展開后,出現了形如C(n, 0) - C(n, 1) + C(n, 2) - ...之類的式子,結果是0,消去了。剩下的還是兩個二項式系數的乘積,不過都是這種形式的:C(n, k) * C(k, r),它等于C(n, r) * C(n - 1, k - 1)。這樣變形之后有一個公共項就可以提出去了,里面還是形如(1 - 1) ^ n的形式。這樣結果就是0。在計算下一項的系數的時候,第一次展開后里面恰好包含了前一項的系數,直接就是0消去了,然后繼續利用上面的方法展開。中間推導的過程中還需要添加一些值為0的項便于繼續的推導。
              這個方法很麻煩,不過推導過程中還是用到了很多知識的,就當復習了- -!其實這個推導要不是知道了最后的公式也不敢推,實在太麻煩,看來還是基本功欠缺啊,而且算概率的題目還是要多練習練習。另外注意思維的靈活性,其實簡單做法不難想,但是最開始被吉大牛誤導了,就用了一個嚴格的推導方法,獨立思考還是很重要的。

            題目代碼:
             1 #include <cstdio>
             2 #include <cmath>
             3 
             4 int main()
             5 {
             6     double N, M, n, d;
             7 
             8     while (scanf("%lf %lf %lf %lf"&N, &M, &n, &d) == 4)
             9         printf("%.3lf\n", n * d * N * (1.0 - pow(1.0 - 1.0 / N, M)));
            10 
            11     return 0;
            12 }
            13 
            posted on 2009-06-18 21:48 sdfond 閱讀(182) 評論(0)  編輯 收藏 引用 所屬分類: Algorithm - Combinatorics
            久久无码专区国产精品发布| 色欲综合久久躁天天躁蜜桃| 精品无码久久久久久久动漫| 久久精品国产精品亚洲人人| 久久精品国产乱子伦| 久久婷婷五月综合色奶水99啪| 久久精品国产亚洲av水果派 | 色婷婷噜噜久久国产精品12p| 久久丝袜精品中文字幕| 激情伊人五月天久久综合| 99久久亚洲综合精品网站| 久久婷婷五月综合成人D啪| 久久国产精品国产自线拍免费| 久久se精品一区精品二区国产| 欧美成人免费观看久久| 91久久九九无码成人网站 | 中文字幕无码精品亚洲资源网久久| 欧洲成人午夜精品无码区久久 | 久久精品人人做人人爽电影| 香蕉久久夜色精品国产小说| 亚洲色婷婷综合久久| 久久综合亚洲色HEZYO国产| 狠狠狠色丁香婷婷综合久久五月 | 无码人妻精品一区二区三区久久| 99久久精品国产一区二区蜜芽| 久久久久久久波多野结衣高潮| 久久国产三级无码一区二区| 欧美亚洲国产精品久久蜜芽| 久久大香香蕉国产| 天堂久久天堂AV色综合| 久久久久久精品无码人妻| 少妇被又大又粗又爽毛片久久黑人| 国产欧美久久一区二区| 狠狠色婷婷综合天天久久丁香| 久久精品亚洲一区二区三区浴池 | 青青草原综合久久大伊人| 久久久久这里只有精品| 午夜视频久久久久一区| 国内精品久久久久影院亚洲| 日本五月天婷久久网站| 亚洲综合伊人久久综合|