回想剛才的數學題:
有100瓶液體,其中99瓶是水,水是沒有毒的,1瓶是毒藥,但小白鼠喝完不會立刻死去,而是一周後會毒發身亡。如果給你一周時間,每隻小白鼠也可以喝多種液體,你至少需要多少隻小白鼠才能把毒藥試出來?
既然每隻小白鼠可以喝多種液體,那就可以把一瓶液體分成許多小份,所以每隻小白鼠喝一瓶液體的時候,不用全喝,喝一部分就行。如果某隻小白鼠一周之後死了,就說明那隻死去的小白鼠喝的液體裡肯定有一瓶有毒。具體則可以用二進製這樣算:
首先把藥瓶標上號:1號藥瓶,2號藥瓶,3號藥瓶一直標到100號藥瓶。然後把這些標號轉化成二進製。那麽1號藥瓶編碼為0000001,2號藥瓶編碼0000010,3號藥瓶編碼0000011……一直到100號藥瓶,二進製編碼為1100100。並且轉化為二進製編碼時都是七位數。
最重要的來了!
現在把藥瓶的二進製編碼按照它們的位數進行分類,可以分成7類。然後7隻小白鼠去試藥,讓1號小白鼠喝那些二進製代碼中第一位是1的液體,肯定,1號小白鼠喝的一定包含第100瓶。因為第100瓶轉化的二進製編碼是1100100,首位數字帶1。但1號老鼠絕對不喝第一瓶。因為第一瓶轉化成二進製編碼是0000001。而1號瓶轉化後第一位是0,所以1號小白鼠不喝。同樣道理,第二隻小白鼠也會喝第100瓶以及其他第二位是1的液體。比如第六隻小白鼠,它既要喝第二瓶,又要喝第三瓶,但不喝第一瓶,因為第一瓶二進製第六位是0。然後等一周看那隻小白鼠死了。
小白鼠死的時候,假如1號3號5號死了,就說明二進製編碼中,第一位,第三位和第五位帶1的二進製編碼那瓶液體有毒。2號4號6號7號老鼠沒死,說明二進製編碼中第二四六七位是0非1的,都不會死。把1號到7號小白鼠按死亡編號與二進製編碼進行對照,就會發現1010100是那瓶有毒液體的編號。把1010100轉化成十進製,發現第84瓶液體有毒,所以第84瓶是毒藥。而這就是用二進製算法做的答案。
那麽二進製是誰發明的?系統提出二進製觀點的人是跟牛頓爭奪微積分發明權的德國數學家、哲學家————萊布尼茨Gottfried Wilhelm Leibniz。有人說他是根據中國的《周易》八卦發明出來二進製的。但其實這個說法並不準確,他確實先發明了二進製,後來他看到中國的《周易》之後,覺得《周易》裡的八卦是可以用二進製解釋。確實,因為在我看來《周易》它就是一種數學。
簡單來說下周易。
《周易》八卦裡有兩種爻,一個叫陰爻,是兩根斷了線的橫,我用摩斯電碼裡的點來表示,就是..。一個叫陽爻,是一根連起來的橫,我用下劃線表示。而通過陰爻和陽爻的不同組合,就可以組成八卦。而說到八卦,八卦中有一句“太極生兩儀。”兩儀就是指陰爻和陽爻:..和_
八卦中還有一句“兩儀生四象。”四象包括:太陰,太陰就是陰爻加陰爻即....。四象中還包括少陽,少陽是一個陽爻加一個陰爻即_..,一橫在上,兩個小斷橫在下。陽的這邊也有兩個,一個叫少陰,是指一個陰爻加一個陽爻即.._,斷橫在上,一橫在下。還有一個是太陽,太陽是兩個陽爻,寫出來其實就是一個加長的等於號。
八卦中還有“四象生八卦”這句。而“八卦”其實是在四象兩橫基礎上,再加一橫,也就是三橫。八卦分別為坤艮坎巽震離兌乾。如果把陰爻寫作0,陽爻寫作1。用二進製來表示八卦,坤就是000,也代表0。艮為001,代表1。坎為010,代表3。以此類推,巽震離兌乾就代表4,5,6,7。所以八卦的卦象,其實就代表0到7八個數。而算命諸如八字,八卦、六爻什麽的,其實就是以二進製為基準的數學運算罷了。只不過這些遠遠要比二進製複雜得多。就在這時,我遇到了我的師父欒程安。他教了我新數字八卦。