二進位製神題 一千個蘋果問題

2022-03-28 01:37:26 字數 759 閱讀 1566

今晚翻出了之前收藏的乙個有趣的問題--一千個蘋果的分裝:

現在有1000個蘋果,和10個箱子,如何把這1000個蘋果裝在這10個箱子裡,才能使不管任何數量(1-1000)的蘋果,都能一次給出?

典型的二進位制數變種,1000個蘋果,最接近1024,轉化為2進製,需要占用10個bit,則從右往左數,第乙個bit位表示1個蘋果,第二個bit位表示2個蘋果,第三個bit位表示4個蘋果,,,第10個bit位表示488個蘋果(512-24)。分別把這些通過放入相同編號的箱子裡。當需要某一數量的蘋果時,檢視這些數量的哪些bit位為1,為1則表示這個bit位代表有蘋果,取出對應編號的箱子即可。

還有其他博友那淘來的毒藥問題,異曲同工:

有8瓶液體,其中一瓶是毒藥,毒性可使小白鼠飲用後在20小時內陣亡,需要幾隻小白鼠才能在20小時內判斷哪一瓶是毒藥?

分析:給8瓶毒藥編碼:

第一瓶:000

第二瓶:001

第三瓶:010

第四瓶:011

第五瓶:100

第六平:101

第七平:110

第八平:111

只需3只小老鼠

第一只老鼠喝最後bit位為1的,即第2,4,6,8瓶

第二隻老鼠喝中間bit位為1的,即第3,4,7,8瓶

第三隻老鼠喝第一bit位為1的,即第5,6,7,8瓶

如果20小時候,沒有老鼠死亡,則第一瓶有毒,否則:

假設第二隻和第三隻老鼠死亡,把對應位上bit設為1,即110,所以第7瓶有毒。

二進位制問題

題目 題解 純二進位制題目。因為所有的水都是由兩份相同的水合併而成的,因此每瓶水的體積一定是2 i,i in n 2 i i n 公升。最後保留k個瓶子,那麼最後總的公升數的二進位制表示中,1的個數一定 k。本題實質上是用不超過k個1和無數個0生成乙個最接近且大於n的二進位制數 方法一 includ...

二進位制有關問題

有1000瓶液體,味,外表完全 樣,其中 瓶是毒藥,有10 條警 警 喝過毒藥後兩 時後死亡。問,如何在兩個 時後確定 哪瓶是毒藥 解法 因為有1000瓶液體。10條警犬。分別給這1000瓶液體編號,為 1 10000 用二進位制表示 10位就夠了。因為2 10 1024 給這10只警犬分別編號 1...

LeetCode 二進位制問題

338.counting bits 計算小於n的各個數值對應的二進位制1的個數 思路 通過奇偶判斷,if i是偶數,a i a i 2 if i是奇數,a i a i 1 1。class solution return res 136.single number 只有乙個元素出現1次,其他出現2次,...