• <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>

            O(1) 的小樂

            Job Hunting

            公告

            記錄我的生活和工作。。。
            <2010年10月>
            262728293012
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            統(tǒng)計(jì)

            • 隨筆 - 182
            • 文章 - 1
            • 評(píng)論 - 41
            • 引用 - 0

            留言簿(10)

            隨筆分類(70)

            隨筆檔案(182)

            文章檔案(1)

            如影隨形

            搜索

            •  

            最新隨筆

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            一道網(wǎng)易游戲筆試題

            題目:英雄升級(jí),從0級(jí)升到1級(jí),概率100%。

            從1級(jí)升到2級(jí),有1/3的可能成功;1/3的可能停留原級(jí);1/3的可能下降到0級(jí);
            從2級(jí)升到3級(jí),有1/9的可能成功;4/9的可能停留原級(jí);4/9的可能下降到1級(jí)。
            每次升級(jí)要花費(fèi)一個(gè)寶石,不管成功還是停留還是降級(jí)。
            求英雄從0級(jí)升到3級(jí)平均花費(fèi)的寶石數(shù)目。

            這個(gè)題目秒殺了一大片,一開始看到這個(gè)題目,立刻反應(yīng)出來的是自動(dòng)機(jī)DP,然后就朝著自動(dòng)機(jī)DP去想,很快一個(gè)公式就可以搞出來。

            dp[i][k]表示k步之后在i級(jí)的概率。

            dp[0][k] = 1/3*dp[1][k-1];

            dp[1][k] = dp[0][k-1]+1/3*dp[1][k-1] + 4/9*dp[2][k-1]

            dp[2][k] = 1/3*dp[1][k-1] + 4/9* dp[2][k-1];

            dp[3][k]= 1/9*dp[2][k-1];

            然后此遞推式可以寫成矩陣乘法的形式,最后的結(jié)果就是求/Sigma (k+1)/9*dp[2][k]; 這個(gè)矩陣可以轉(zhuǎn)換為對(duì)角陣,然后可以求出其通項(xiàng)公式等等。。。其實(shí)這個(gè)問題是線性差分方程組的解法。。。還要求特征值 + Jordan標(biāo)準(zhǔn)型bulalalalala。。。。我覺得要算出一個(gè)解析解的話果斷是跪了。。。用Matlab跑了一下:

            A =

                   0              1/3            0      

                   1              1/3            4/9    

                   0              1/3            4/9 

            >> ret =0;

            >> for k=1:1000

            ret = ret+ (k+1)/9*[0 0 1]*A^k*[1 0 0]';

            end

            >> ret

            ret =

                  30 

            竟然是整數(shù)30.。。被赤果果得鄙視智商了。。。

            蛋疼的用C++再跑一遍:

            #include <stdio.h>
            #include <iostream>
            using namespace std;
            
            double dp[4];
            double nextdp[4];
            int main()
            {
                for(int i=0; i<4; i++) dp[i]=0.0f;
                dp[0]=1.0f;
                double ret=0.0f;
                for(int i=0; i<100000000; i++)
                {
                    for(int j=0; j<4; j++) nextdp[j]=0.0f;
                    nextdp[0]= 1/3.0*dp[1];
                    nextdp[1]=1/3.0*dp[1]+dp[0]+4/9.0*dp[2];
                    nextdp[2]=4/9.0*dp[2]+1/3.0*dp[1];
                    nextdp[3]=1/9.0*dp[2];
                    ret+=i*dp[3];
                    for(int j=0; j<4; j++)    dp[j]=nextdp[j];
                    if(i%1000000==0)
                    {
                        cout<<i<<" ";
                        printf("%d  %.4f\n",i, ret);
                    }
                }
                return 0;
            }

            還是30.。。

            于是想到有沒有簡單的方法。。。其實(shí)可以觀察到當(dāng)趨于無窮的時(shí)候,此系統(tǒng)的期望的概率轉(zhuǎn)移是趨于穩(wěn)定的!其實(shí)任何系統(tǒng)在無窮步之后,都是期望穩(wěn)定的?。?廢話,但很重要!)

            所以,從0 到1 所需要的期望步數(shù)很簡單就是1. 從1到2的期望步數(shù)假設(shè)是X ,則在走了一步之后,我們分情況討論所處位置。可以列出  X = 1+ 1/3*X + 1/3*(1+X)  所以X=4 ,從1 都2 的期望步數(shù)是4. 同理,從2-3 X = 1+ 4/9*X + 4/9*(4+X)   X =25. 從2到3的期望步數(shù)是25. 所以從0到3的期望步數(shù)是 30.。。。。。。。

            坑爹?。。。。。。。。。。。?!

            使用第一種思路可以求,問題是那個(gè)矩陣A太坑爹。。??纯此奶卣髦?。。。。eig(A)

            ans =

               -1588/3201 

                1072/3461 

                 457/474  

            還要帶著n次方去求解dp[2][k]的通項(xiàng)。。。殺了我吧。。第二種方法是解決這類問題的萬金油啊。反正系統(tǒng)達(dá)到穩(wěn)態(tài),那就直接上穩(wěn)態(tài)公式吧。其實(shí)求解差分方程組的解法中,隱含使用的條件就是穩(wěn)態(tài)方程。。。殊歸同途啊。。。

            posted on 2012-10-23 11:39 Sosi 閱讀(2092) 評(píng)論(5)  編輯 收藏 引用 所屬分類: Algorithm

            評(píng)論

            # re: 一道網(wǎng)易游戲筆試題[未登錄] 2012-11-29 22:31 在路上

            這個(gè)是離散時(shí)齊的markov鏈! 是筆試題的話,應(yīng)該可以解出來。

            # re: 一道網(wǎng)易游戲筆試題[未登錄] 2013-08-28 23:28 sworddance

            X = 1+ 1/3*X + 1/3*(1+X)。

            這里的期望第一項(xiàng),為什么我覺得是 1/3吧,而你這里寫的是1呢?應(yīng)該是金幣數(shù)1*概率1/3

            # re: 一道網(wǎng)易游戲筆試題 2013-08-28 23:29 se

            這里的期望第一項(xiàng),為什么我覺得是 1/3吧,而你這里寫的是1呢?應(yīng)該是寶石數(shù)1*概率1/3

            # re: 一道網(wǎng)易游戲筆試題[未登錄] 2014-04-29 15:26 sosi

            @sworddance
            X = 1/3+ 1/3*(1+X) + 1/3*(1+1+X) 是這個(gè)樣子,省略成了 X = 1+ 1/3*X + 1/3*(1+X)

            # re: 一道網(wǎng)易游戲筆試題[未登錄] 2014-04-29 15:26 sosi

            @se
            X = 1/3+ 1/3*(1+X) + 1/3*(1+1+X) 是這個(gè)樣子,省略成了 X = 1+ 1/3*X + 1/3*(1+X)
            統(tǒng)計(jì)系統(tǒng)
            97久久精品人妻人人搡人人玩| 国产精品久久久久久五月尺| 伊人久久综合热线大杳蕉下载| 99精品国产在热久久无毒不卡| 99久久精品国产综合一区| 欧美成a人片免费看久久| 久久亚洲AV成人出白浆无码国产| 97久久精品人人澡人人爽| 久久香综合精品久久伊人| 久久综合九色综合久99| 久久妇女高潮几次MBA| 伊人丁香狠狠色综合久久| 亚洲精品无码久久久影院相关影片| 色综合色天天久久婷婷基地| 亚洲精品乱码久久久久久蜜桃图片| 18岁日韩内射颜射午夜久久成人| 蜜臀久久99精品久久久久久小说| 久久久久亚洲AV成人网人人软件| 久久ZYZ资源站无码中文动漫| 人妻无码久久精品| 狠狠综合久久综合中文88| 久久99国产精品久久99| 久久国产热精品波多野结衣AV| 亚洲午夜福利精品久久| 久久九九免费高清视频| 成人a毛片久久免费播放| 久久精品九九亚洲精品| 日本欧美久久久久免费播放网| 久久无码国产专区精品| 超级碰碰碰碰97久久久久| 久久久国产视频| 欧美伊人久久大香线蕉综合| 青青草原综合久久大伊人| 久久中文字幕人妻熟av女| 久久精品国产清自在天天线| 久久精品一本到99热免费| 久久久久久精品久久久久| 精品久久久久久中文字幕大豆网| 亚洲乱码精品久久久久..| 99国产欧美精品久久久蜜芽| 一级做a爱片久久毛片|