第25章 二進位編碼這怎麼能做到?
四桶酒分成兩組,變成兩個一組,還是需要一天時間來判斷。
三虎百思不得其解,思考再三後,對老錢說道:“想不出來,怎麼著也得再需要一天時間,你還是直說答案吧。”
“你是不是把兩隻老鼠分成兩組,然後每隻老鼠喝一桶酒,這樣就能縮小範圍到兩桶。”
聽到老錢的話,三虎憨厚地點了點頭。
“為什麼一定要把酒分成兩組,為什麼老鼠隻能喝一桶酒?為什麼跳出原本的思維定式?不從老鼠的角度,而是從酒的角度來看問題。
比如對於第一桶酒,兩隻老鼠都不喝;第二桶酒,老鼠甲喝,老鼠乙不喝;第三桶酒,老鼠甲不喝,老鼠乙喝;第四桶酒,老鼠甲乙都喝。
這樣的話,如果第一桶酒是毒酒,兩隻老鼠都沒喝,所以兩隻老鼠都不會死;
如果第二桶酒是毒酒,隻有老鼠甲喝了,所以老鼠甲會死,但老鼠乙不會死;
如果第三桶酒是毒酒,老鼠乙喝了,所以老鼠乙會死,老鼠甲不會死;
如果第四桶酒是毒酒,兩隻老鼠都喝了,所以兩隻老鼠都會死。
那麼隻需要一天時間,就能從四桶酒裡麵判斷出那桶酒是毒酒。”
頭好癢,要長腦子了。
聽完老錢的解釋,三虎感覺自己彷彿打開新世界的大門,一個以往想都沒想過的方法在自己麵前呈現。
可為什麼老錢要說這和“二”有關係?
到底這種方法裡麵,什麼是“二”?
三虎感覺自己和答案隻差最後一堵牆壁,隻要找對門路,就能越過這堵牆。
但這堵牆又彷彿天塹,自己怎麼也邁不過去。
就這麼想了一會,三虎實在想不出到底有什麼聯繫,隻能無奈地對老錢說道:“就差一點,但還是想不明白,你還是繼續說吧。”
“想不明白很正常,因為這涉及到二進位編碼。
換句通俗的話,老鼠喝酒,會有生死兩種狀態。如果兩隻老鼠喝酒,一共四桶酒裡有一桶毒酒,根據剛才的喝法,會有生生、生死、死生、死死四種可能的結果,那麼這四種可能的結果就分別對應一種情況。
如果拓展到三隻老鼠,最多會出現八種狀態,生生生,生生死,生死生,生死死,死生生,死生死,死死生,死死死。
如果是四隻老鼠,最多會出現十六種狀態。
這就是整個演算法的核心,老鼠的生死,兩種狀態,代表0和1,也就是二進位的基礎單位。
所謂二進位,就是隻有0和1,和十進位的計數規則很接近,都是從右往左計數,隻不過十進位裡逢10進1,也就是個位數9後麵是兩位數10,而二進位的計數規則是逢2進1。
比如1,在4位的二進位裡麵表示為0001;比如2,因為逢2進1,倒數第二位就是1,代表一個2,倒數第一位就是0,所以就可以表示為0010;
比如3,比2多1,所以在末位多一個1,表示為0011;
比如4比3再多1,最後一位加1變2,所以進一位;倒數第二位加1後也變2,所以又進一位,最後結果就是0100;
比如7就是0111;比如13就是1101,這樣的4位數一共能表示從0到15共計16個數字。
設置
繁體簡體
現在回到當初兩隻老鼠四桶酒的情況,通過老鼠的喝酒情況對四桶酒編碼分別為00,01,10,11,甲代表倒數第二位的數,乙代表倒數第一位的數。
對應老鼠的喝酒情況依次為:都不喝、乙喝、甲喝、甲乙都喝。
看本書最新章節,請到oop.tw
喝了就是1,不喝就是0,最後可以根據老鼠死亡的情況,從而逆推那桶酒是毒酒。
比如甲乙都死了,就是兩個1,編碼為11,就是第四桶酒;比如甲死了,乙沒死,甲是倒數第二位,編碼為1,乙是倒數第一位,編碼為0,綜合編碼為10,對應第三桶酒;如果甲乙都沒死,編碼為00,就是第一桶酒。
這樣用兩隻老鼠可以判斷四桶酒,三隻老鼠判斷八桶酒。現在有一千桶酒,一共隻需要十隻老鼠,十隻老鼠一天時間,就能分辨出那桶酒是毒酒。”
原來如此!
!樣這是案答來原
。道悟大然恍嘴大張,完聽虎三
。清理經已己自路思的緻大但,糊迷些有得聽碼編位進二的麵後然雖
。白明不磨琢都怕恐子輩這己自,釋解的細詳樣這錢老沒果如,來出不想己自得不怪
:題問個一後最下剩還中心虎三,刻此時此
”?啊像不覺感麼怎我?嗎題問的平水中高是的真這“
。答回間時一第有沒,起皺頭眉,鬍羊山的上巴下摸了摸錢老,問疑的虎三到聽
。裡圍範習學的中高在也,碼編位進二是怕哪,疇範的中高過超有沒都識知條一每的到及涉裡目題個這,說來格嚴
。轉打直一上線路的誤錯在能隻,法分多用應合聯是就也步一進再,算計去法分三法分二的糙粗始原最用能隻,解理全完能定一不真生中高分部大但
。案答的確正到不找本根就也,碼編位進二到想能可不本根
”。門偏較比過不隻,題問的平水中高是實確“:道說後隨,陣一索思錢老
”…學大上中高完念,中高念中初完念,完念中初把少至,書念好好就我道知早,樣這是真來原“
。道語自喃喃,洞空光目虎三
”…題的學大,錢老那“:道錢老問,來神過回地猛虎三,然突
”。了答回會不也我問再你!嘴閉你“
。問提的虎三了斷打,喝暴聲一錢老,完說虎三等沒還
。題問出問沒是還,嘴張了張後最,袋腦撓撓地心甘不虎三
。氣口一了鬆才錢老,樣模的虎三到看
麼這了添己自給就,鐘分幾才後後前前,會一了來哲周就