LintCode領扣 題解 | Twitter 面試題:Eat the Beans

題目描述

一個袋子里有W個白豆子,R個紅豆子丧没。第一步: 隨機摸一個豆子鹰椒,摸到白豆子直接吃,摸到紅豆子呕童,放回去漆际。第二步:隨機再摸一豆子,不管是紅是白夺饲,都吃奸汇。然后重復第一步和第二步施符,問最后一個豆子是白豆子的概率。

思路點撥

考慮dp[i][j]表示剩下i個白豆子擂找,j個紅豆子的概率戳吝,則根據(jù)題意有兩種轉移。

考點分析

dp[i][j]表示當前剩下i顆白豆子j顆紅豆子的概率贯涎,dp[w][r] =1听哭,由于第二步必定會吃一顆豆子,所以執(zhí)行(w + r) * 2步一定可以把所有的豆子吃完柬采,考慮再加一維欢唾,dp[i][j][k]表示當前執(zhí)行到第i步,剩下j顆白豆子k顆紅豆子的概率粉捻,然后對應對于每一步就可以轉移了。

參考程序

http://www.jiuzhang.com/solution/eat-the-beans/

/**
* 本參考程序來自九章算法斑芜,由 @斌助教 提供肩刃。版權所有,轉發(fā)請注明出處杏头。
* - 九章算法致力于幫助更多中國人找到好的工作,教師團隊均來自硅谷和國內(nèi)的一線大公司在職工程師。
* - 現(xiàn)有的面試培訓課程包括:九章算法班优训,系統(tǒng)設計班搁吓,算法強化班,Java入門與基礎算法班寓娩,Android 項目實戰(zhàn)班叛氨,
* - Big Data 項目實戰(zhàn)班,算法面試高頻題班, 動態(tài)規(guī)劃專題班
* - 更多詳情請見官方網(wǎng)站:http://www.jiuzhang.com/?source=code
*/ 

public class Solution {
    /**
     * @param w: The W
     * @param r: The R
     * @return: The answer
     */
    public double eatTheBeans(int w, int r) {
        // Write your code here
        double[][][] dp = new double[281][71][71];
        int n = (w + r) * 2;
        for(int i = 0; i <= n; i++) {
            dp[i] = new double[71][71];
            for(int j = 0; j <= w; j++) {
                dp[i][j] = new double[71];
                for(int k = 0; k <= r; k++) {
                    dp[i][j][k] = 0;
                }
            }
        }
        dp[0][w][r] = 1;
        if(w == 1 && r == 0) {
            return dp[0][w][r];
        }
        for(int i = 1; i <= n; i++) {
            for(int j = w; j >= 0; j--) {
                for(int k = r; k >= 0; k--) {
                    if(j + k == 0) {
                        continue;
                    }
                    if(dp[i - 1][j][k] != 0) {
                        if(i % 2 == 1) {
                            if(j - 1 >= 0) {
                                dp[i][j - 1][k] += 1.0 * j / (j + k) * dp[i - 1][j][k];
                            }
                            dp[i][j][k] += 1.0 * k / (j + k) * dp[i - 1][j][k];
                        } else {
                            if(j - 1 >= 0) {
                                dp[i][j - 1][k] += 1.0 * j / (j + k) * dp[i - 1][j][k];
                            }
                            if(k - 1 >= 0) {
                                dp[i][j][k - 1] += 1.0 * k / (j + k) * dp[i - 1][j][k];
                            }
                        }
                    }
                }
            }
        }
        double ans = 0;
        for(int i = 1; i <= n; i++) {
            ans += dp[i][1][0];
        }
        return ans;
    }
}
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末棘伴,一起剝皮案震驚了整個濱河市寞埠,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌焊夸,老刑警劉巖仁连,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異阱穗,居然都是意外死亡饭冬,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進店門揪阶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來昌抠,“玉大人,你說我怎么就攤上這事遣钳∪呕辏” “怎么了麦乞?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長劝评。 經(jīng)常有香客問我姐直,道長,這世上最難降的妖魔是什么蒋畜? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任声畏,我火速辦了婚禮,結果婚禮上姻成,老公的妹妹穿的比我還像新娘插龄。我一直安慰自己,他們只是感情好科展,可當我...
    茶點故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布均牢。 她就那樣靜靜地躺著,像睡著了一般才睹。 火紅的嫁衣襯著肌膚如雪徘跪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天琅攘,我揣著相機與錄音垮庐,去河邊找鬼。 笑死坞琴,一個胖子當著我的面吹牛哨查,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播剧辐,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼寒亥,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了浙于?” 一聲冷哼從身側響起护盈,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎羞酗,沒想到半個月后腐宋,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡檀轨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年胸竞,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片参萄。...
    茶點故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡卫枝,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出讹挎,到底是詐尸還是另有隱情校赤,我是刑警寧澤吆玖,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站马篮,受9級特大地震影響沾乘,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜浑测,卻給世界環(huán)境...
    茶點故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一翅阵、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧迁央,春花似錦掷匠、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蜂科,卻和暖如春募强,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背崇摄。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留慌烧,地道東北人逐抑。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像屹蚊,于是被迫代替她去往敵國和親厕氨。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,969評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 一年級語文上冊生字表 生字表一(共400字) 啊(ā)愛(ài)安(ān)岸(àn)爸(bà)八(bā)巴(bā)...
    meychang閱讀 2,798評論 0 6
  • sì 支zhī茶chá 對duì 酒jiǔ汹粤,賦fù 對duì 詩shī命斧,燕yàn子zi 對duì 鶯yīng 兒é...
    每個人的孟母堂閱讀 1,211評論 0 6
  • Zhōng huá zì jīng 中 華 字 經(jīng) dì yī bù fēn 第 一 部分 qián kūn yǒ...
    半闕墨香閱讀 3,209評論 0 3
  • 每個人包容的心不一樣,格局越大的人嘱兼,包容的心越大国葬,因為你的那些事在他眼里只是芝麻小事。馬云爸爸不是說:人的心胸是讓...
    柏木水閱讀 1,308評論 0 1
  • 夏至到了通孽, 你也來了,如輕云飄過山巔睁壁。 院子里背苦,繡球花一片一片花瓣展開了笑顏互捌。
    七號線上閱讀 217評論 0 0