正文 第20章 取蘋果(1 / 1)

7隻箱子中分別放有1隻、2隻、4隻、8隻、16隻、32隻和64隻蘋果,現在要從這7隻箱子中取出87隻蘋果,但每隻箱子中的蘋果都不能隻取出一部分。你能迅速地取出來嗎?

先將這七隻箱子編好號碼:

號碼7654321隻數6432168421因為87隻超過64隻,所以先取7號箱,還少23隻,由於23隻少於6號箱,多於5號箱,所以要取5號箱,還少7隻,按同樣的方法,繼續取出3號箱、2號箱和1號箱裏的蘋果。這樣,總共取1、2、3、5、7五個箱子,就得到所需的87隻蘋果。

這實際上是二進製數的一種應用。如果我們將87除以2,再將所得的商連續地除以2,凡餘數1就記住1,餘數0就記作0可得:

餘數2|8712|4312|2112|1012|512|5111按箭頭方向,依次把餘數橫列成1010111,這就是十進數87的二進數製表示(這個方法叫做除2取餘法),再將箱子的號碼同它對應:

1010111

7654321

比較可知,凡是記1所對的編號(1、2、3、5、7)就是應取的號碼。這是因為64、32、16、8、4、2、1、分別表示成二進製數就是1000000、100000、10000、1000、100、10、1,取(1、2、3、5、7)就相當於取1000000+10000+1000+10+1=1010111,也即十進製數87。

你還可以用上述方法取47隻,59隻……蘋果,這對我們熟悉二進製數很有益處。