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

            洛譯小筑

            別來無恙,我的老友…
            隨筆 - 45, 文章 - 0, 評論 - 172, 引用 - 0
            數據加載中……

            神秘的村莊,聰明的村民,得病的狗,正午的槍聲

            記得這是在大四上半年晚上開臥談會的時候我們宿舍一個大能人給我們出的題,今天突然想起來:

            從前有一個村莊,村莊里有若干個村民,村民都非常的聰明,對于各種復雜的問題他們都能夠仔細的觀察,并能做出你所能做的一切分析和判斷,他們每個人都養且僅養一條狗。有一天,所有的村民接到了一條確切的消息:村里的狗中有若干條得了一種病(這種病不會傳染)。要求由且僅由這些村民自己找出這些病狗,他們每天上午要檢查除了自己的狗以外所有的狗。村民之間不許交談,如果一個村民通過觀察分析,判斷出了自己的狗是病狗,那他就開槍打死這只狗,但任何人不許打死別人的狗。排查工作就這樣開始了,第一天沒有槍響,第二天也沒有槍響,第三天的正午,所有人都聽到了“砰……”的一陣槍響。請問:村子里共有多少條病狗?

            后來知道了這個問題是 IBM 公司的一道面試題。答案是 3 條。解決的方法如下,按假設病狗數量不斷推論:

            假設病狗數為 1 ,那么在第一天這條病狗的主人就會發現:除了他自己的狗以外所有的狗都沒有病,然而病狗確實是存在的,因此這個村民就會做出推斷,自己的狗就是病狗。他就會開槍打死它。然而第一天沒有槍響,我們要繼續假設。

            假設病狗數為 2 ,大多數人都會發現這 2 條病狗,但會有且僅會有兩個村民只看到了 1 條病狗(因為他們自己的狗也是病狗,顯然地,他們所看到的病狗是彼此對方的)。我們考慮這兩個村民中的一個人,在第一天,他暫時還不能斷定自己的狗是否有病,但他可以假設:他所看到的這條病狗就是村里唯一的病狗;然后就此做出上一自然段(假設病狗數為 1 )中的分析:如果真的是這樣,那這個病狗的主人也會發現自己的狗是病狗(因為病狗的主人不會看到其他的狗生病)。在今晚,病狗的主人就會把它處死。然而,在他第二天出去檢查的時候,發現所有的狗都活得好好的。他會做出判斷:先前的假設是錯誤的,村子里的病狗不僅僅是一條,但是第一天在他去檢查時的確僅發現了 1 條病狗,因此很明顯地,自己的狗一定就是病狗。這條可憐的狗也會被處決。但是第二天仍沒有槍響。需要繼續假設。

            假設病狗數為 3 ,大多數人會看到 3 條病狗,有 3 位村民只看到 2 條。在你做出分析的同時,村民也在進行著同樣縝密的推理。這 3 位村民會做出上一自然段(假設病狗數為 2 )中的分析,他們一定知道,如果第二天有狗被處決的話,那么他們的假設就成立。然而等到了第三天去檢查的時候,發現沒有狗被處死,那足以證明自己的狗也是病狗。他們會在第三天開槍。假設成立,原題得解。

            你也許能夠發現,上述三段分析中,后一段都會借助前邊的那一段來分析。這儼然是一個遞歸問題。假設病狗數為 n ,如果 n==0 則執行操作,跳出遞歸,如果 n>0 則遞歸 (n-1) 的情況。把當前的狀況用一個三元組來表示 ( d , 總共看到 t 條狗 , 其中有 s 條有病 ) ,下面是偽代碼:

            bool assume(day, total, sick) {

            ? if ( sick == 0 ) { shoot(hisDog); return true; }

            ? else {

            if( assume(day+1, total-1, sick-1) ) return false;

            else { shoot(hisDog); return true; }

            }

            今天早上起來發現新買的 n73 不見了,可把我給急壞了,我拿來笤帚用笤帚把在床底下不斷地掃,最后只掃出了幾個玻璃球、一只襪子、幾張涂滿鴉的破紙,一大堆土。后來發現桌上躺著那個 old pal 2610 ,我才恍然大悟,原來是個夢啊。哼哼,太有意思了。

            都說有錢人,尤其是實打實地干出來的有錢人從來不亂花錢,他們的錢都是血汗,哪舍得花啊,哪有時間花啊。亂花錢,那是紈绔子弟,是暴發戶。北京月入 10k 的大牛還有擠公交車的,人家 手機之父 馬丁 ? 庫貝先生還會用幾百塊錢(折合成人民幣)的破手機呢。

            我還是個并且在未來的很長時間以內都將是個對當前的不好不壞的日子很滿足但是對未來的美好生活充滿期待的窮光蛋……

            posted on 2007-04-21 18:15 ★ROY★ 閱讀(1220) 評論(9)  編輯 收藏 引用 所屬分類: 飯后茶余

            評論

            # re: 神秘的村莊,聰明的村民,得病的狗,正午的槍聲  回復  更多評論   

            這道題有異曲同工之妙:
            一群人開舞會,每人頭上都戴著一頂帽子。帽子只有黑白兩種,黑的至少有一頂。每個人都能看到其它人帽子的顏色,卻看不到自己的。主持人先讓大家看看別人頭上戴的是什幺帽子,然后關燈,如果有人認為自己戴的是黑帽子,就打自己一個耳光。第一次關燈,沒有聲音。于是再開燈,大家再看一遍,關燈時仍然鴉雀無聲。一直到第三次關燈,才有劈劈啪啪打耳光的聲音響起。問有多少人戴著黑帽子?
            2007-04-22 07:52 | pengkuny

            # re: 神秘的村莊,聰明的村民,得病的狗,正午的槍聲  回復  更多評論   

            嘿嘿這個好,耳光抽得辟了啪啦的。
            殺狗那個讓人感覺怪怪的,莫名其妙的恐怖感。聽了以后晚上都不敢上廁所。我聽完僵尸故事都敢上。
            2007-04-22 08:40 | ★田德健★

            # re: 神秘的村莊,聰明的村民,得病的狗,正午的槍聲  回復  更多評論   

            動物保護組織對此表示譴責,^_^
            2007-05-12 13:07 | 天衣有縫

            # re: 神秘的村莊,聰明的村民,得病的狗,正午的槍聲  回復  更多評論   

            在假設2時,其中的一個村民怎么會只看到一條病狗呢?如果它判斷另一個村民的狗時病狗,那他一定也可以判斷自己的狗和另一個村民一樣。那他的假設只能應該是:他們倆的狗是病狗,或者其他人的狗是病狗...我始終想不通你的假設,就是他們只看到了1條病狗。
            2007-05-14 20:20 | Aug

            # re: 神秘的村莊,聰明的村民,得病的狗,正午的槍聲  回復  更多評論   

            錯了,不好意思,我忘記看一個條件,他們不能檢查自己的狗...抱歉了!
            2007-05-14 20:21 | Aug

            # re: 神秘的村莊,聰明的村民,得病的狗,正午的槍聲  回復  更多評論   

            呵呵。。
            2007-05-14 22:08 | ★ROY★

            # re: 神秘的村莊,聰明的村民,得病的狗,正午的槍聲  回復  更多評論   

            暈啊暈........
            2008-09-21 22:19 | 王晶

            # re: 神秘的村莊,聰明的村民,得病的狗,正午的槍聲  回復  更多評論   

            實在話:我沒看這文章.看見"殺狗"倆字就渾身冒冷汗了
            2008-09-21 22:22 | 王晶

            # re: 神秘的村莊,聰明的村民,得病的狗,正午的槍聲  回復  更多評論   

            博主你好!我對你文中給出的代碼有點疑問,按照這個函數assume()的執行流程來看,它最終會遞歸到shoot his dog,所以這個函數只能描述病狗主人的行為。能否提供一個普遍描述所有村民行為的函數?
            2008-10-13 11:29 | Shinelion
            精品久久久久久久久久中文字幕 | 精品蜜臀久久久久99网站| 久久亚洲国产精品成人AV秋霞| 伊人久久精品无码二区麻豆| 乱亲女H秽乱长久久久| 日本道色综合久久影院| 久久国产视屏| 久久久婷婷五月亚洲97号色| 日本精品久久久久中文字幕8| 亚洲午夜久久久| 久久九九青青国产精品| 久久久久久精品无码人妻| 国产一区二区精品久久| 精品久久久久久久久免费影院| 国内精品久久久久影院优| 婷婷久久综合九色综合绿巨人| 亚洲国产精品无码久久久不卡| 久久综合久久鬼色| 999久久久免费精品国产| 欧美精品乱码99久久蜜桃| 999久久久免费精品国产| 99久久这里只精品国产免费| 久久精品国产一区二区电影| 久久精品国产亚洲av麻豆色欲| 欧美久久一区二区三区| 国产精品久久久天天影视| 久久综合综合久久综合| 久久精品国产久精国产一老狼| 色综合久久久久综合99| 国产午夜精品久久久久九九| 久久综合狠狠色综合伊人| 久久久久久无码Av成人影院| 亚洲精品白浆高清久久久久久 | 99久久夜色精品国产网站| 久久亚洲中文字幕精品有坂深雪| 一级做a爰片久久毛片看看| 国产精品日韩深夜福利久久 | 午夜福利91久久福利| 久久成人18免费网站| 精品无码人妻久久久久久| 国产福利电影一区二区三区,免费久久久久久久精 |