0%
怎樣用手指數數兒

怎樣用手指數數兒

作者:弗雷德里克·波爾
10011,10010
第二列是以另一個數字開始的,以第一列原數二分的次數不斷加倍。運算如下:
如果說這樣的二進位制有一個缺陷的話,那就是,它過分簡潔明快,所以有些單調乏味。
不過,假若你想知道真有容易的例子的話,就請看一下,1023-n這個奇特的問題吧。

10 0 11 1
第一列是以原數開始的,這個數字不斷被二分,直到無法二分為止。伊萬對分數一竅不通,所以他的演算法是把數目去掉——比如,他把12當做25的半數。
又比如,加法變成簡單的計數(當然是二進位數——1,10,11,100等等的計數。如果願意,你可以稱之為「一」,「十」,「十一」,以及「一百」等等,並無妨礙)。將一組數目相加,比如:
1*23 8
拇指:24=16
9*102=900
1*22=4
111
87 1 93 1
等於二 10
六   110
——————
你的手指確實就可當做「數點」,你是在依靠有效的進位制運用它們的。請注意,你可以表示從00000,00000(兩個手都握著)以至到11111,11111(兩手都伸開)之間的任何數目。下一次你若想將一個可能大的數目——比如,在擁擠堵塞的車道上你前邊的車數;或者,棒球投手投擲的安打數目——你可以試試這種方法。從0數到1023是毫無問題的。確實,通過顯而易見的肢體伸展——比如通過腕、肘等等成功地延伸或收縮的位置的遞增——你可以很快就算出你從未數到過的數目。
43 186
626
算到這裏之後,伊萬看看左邊或二分列中,找出偶數。他找到其中有兩個——第四個數10,還有第六個數2。他將跟它們平行的右邊(或加倍)列中的數目——也就是說,744和2976劃掉。然後,將右列中余剩的數目加起來:
10110
————
我大約十歲時,我們小孩喜歡玩一種數數兒遊戲在汽車上打發時間。我們會選一個普通的東西——牛或福特汽車或農場「出賣」的牌子——看看在給定時間內誰數得最多。這樣總可使我們安靜相處,在頭一兩英里平平靜靜——幾乎總是這樣。
———————
至於「大如居室」的數目——啊,我們假設在百萬之內——僅僅由於長度這樣的問題似乎並不能對二進法產生否定意見。你可以用20個二進位數點表示那麼大的數目(相應的十進位數是七位數),像這樣一個——隨便挑選的——101001111001011000010確實有點兒嚇人。但是,它的十進位等數1372866不是很可愛的嗎?
在許多科學幻想小說中(別處很少見),都說這十進位制屬於人類的「天生的」數數制。因為,你瞧,我們每一個人不都有雙手十指嗎?我們切不要把它作為理論而糾纏不休。它如果真是這樣,那麼當我們的探索火箭發現十二進位的天外地域(或者換言之,當我們的考古學家發現古巴比倫人比我們現代人多六倍的指頭)時,它就可通過大量的機會證實自身。此外,假若我們認定這個故事天經地義,那麼我們便可對全能自動電腦做出這樣的「解釋」:由於計算機設有可用來查數的手指,所以不得不運用一種更簡單的方法。這種更簡單的體制,其名稱就是「二重」或「二進」制。世界上大多數數目現在都正被翻譯進這種體制,以求被輸入、被消化在電腦中。
比如,2的乘方的乘法(或除法)就是明例,你只要削去或者是加上零。是的,十進位制中的10的乘方也會出現類似情況。不過,你在這一點上必須對二進位刮目相看,因為在任何有限數目系列里2的乘方比10的乘方要多。
1488
5*101=50
誰都知道,從0到9以10個數目為基礎的十進位制由於簡潔明快、極為便利等特點,已取代了其他所有進位制而得到普遍運用。不過,跟許多「盡人皆知」的事物一樣,這種看法包含著一個錯誤,因為事實並不是這樣。
———
0*22 0
回過頭來再看一下伊萬的俄國式乘法;讓我們以稍微不同九_九_藏_書的方式再重新運算一遍。讓我們將兩列數目都二分,左右都是這樣。我們不再削掉數字,而要在奇數邊上註上「1」,在偶數邊寫上「0」,這樣:
8091
1*27 128
43 1 46 0
好了,在你做到千次時先暫停一下。或許這樣會使你十分興奮,原來二進位數的算術的一些特別例子並不難,即使第一次碰到也很容易給做出來。
1956
——————
你在手指上一次「寫」一個數,就能「寫出」結果。也就是說,當你從寫下的數目中減去你右拇指的數點,你右手餘下的手指已經表示出答案的最後四個數點。一做到這兒,答案就可以讀出來了。
5 1  5 1
被三除 11
自然地,我們是靠十進位制來數的。
換言之,在二進法中,任何數目n都是1023-n這個數目的「逆轉」。不僅僅此例如此,而且同樣的法則也可以體現在511-n,255-n,以及127-n等等例子之中——任何數目其二進位表示法都屬於「普遍性的」,你或許已經認識到了這一點。請一試身手,看看如何吧。
186
——
但不管怎樣,這便可證明他算出來了。而且全能自動電腦及其電子同胞兄弟們今日也是這樣算的。
十進位制呢?
6*100=6
這並不是說蔑視俄國人,而只是說全能自動電腦跟俄國農夫伊萬有許多共同之處——這些共同之處中有一點就是,在進行十進位乘法和除法時技巧的缺乏。
1*210 1024
1010111
1*20 1
0*25=0
用它可乘可除:
等於七 111
按上面所講,你要買的鑲板的平方英尺數是111,01010(我們在做減法時零充塞進左手數目組以表示所有五個指頭的位置)。一個鑲板有1,00000平方英尺;111,01010被1,00000除,明顯商是111以及一個分數。但是,你不可能買鑲板的一個部分,所以只好將1加在111上,得出1000。答案便是:你需要買1000個鑲板(或者,它的十進位數8)。
我們所認可的東西顯然很不成熟,至少在這個特別的例子中是這樣的——而這又絕不是無關緊要的例子——二進位制可以比十進位制更精確些。
可以看出,在曲曲折折費盡氣力之後,伊萬大功告成,算出了跟用乘法得出的同樣的答案。
101
261
2 0  2 0
我妻子觀察出(就像很多妻子有時的觀察),不論她提出什麼建議做出什麼變動都無所謂,我經常都能找到十數個絕妙的理由使之保持原樣。由於人們的保守性,我們大多數人都會尋找借口反對任何形式的變化(「魔鬼也是自己熟悉的好」)。又由於人也是可塑的,所以,一旦變化帶來報償,我們不管怎樣經常都能逾越我們的異見。
當然了,你朋友可能會是位因循守舊的人,不情願捨棄十進位制,所以你可能想給他換算出來。如果你對每個手指所代表的十進位對等數都能記牢的話,那是十分容易的:
我們可以看到,二進位制的算術是算術中最為簡便的。這就是它之所以成為惟一適應全能自動電腦的原因所在;但即使在電子計算機設計的比較簡單的層次上,它也顯示出優越之處。比如說,非常精確的微型計算器就可以設計成二進位數程序。所以,至少在做常規計算時,無需使用齒輪和鏈條,也無需動力源驅動。如果做十位數目的加法或減法(乘法和除法比較而言用處較小),你只需要上(「1」)和下(「0」)組成的10個層次的一組數。當然了,做這麼簡單的計算,你無需破費錢財去買計算器。你自己就能造一個。或者變通一下,你可以使用我們剛剛談到的天生的有10個位置的二位數計算機,而這個天生的計算機就長在我們手臂上。
1*21 2
請記著,在十進位制里,我們是將三個一組隔開,以求簡化閱讀這樣大的數目。比如說吧,5000000000000本身很難讀,而5,000,000,000,000,則一目了然,一下子就可看出是五個百萬平方。我們為什麼不給二進位數目找一種類似https://read.99csw.com的成規呢?沒有理由拘泥於三個一組,我們可以選五個一組,這樣就可將87*93乘積——亦即8091——的表達法寫作111,11100,11011。
——————
現在,你可能還不知道,你做出的結果是什麼樣子——伊萬肯定也聞所未聞——實際上你已經將兩個十進位數轉化成二進位數的對等物了。從下向上讀,1010111是二進位中的87,1011101是二進位中的93。
1*20=1
無名指:21=2
8091
但是,伊萬卻覺得萬分艱難,因為他恰恰沒有進過等級制學校(全能自動電腦也是如此)。伊萬如果做類似的算題,就會使用一種被稱為「俄國」——有時也被稱為「半數跟加倍」(也就是指「調中跟重複」)的計算方法。這樣計算時,只需將兩列數目一邊挨一邊寫下來。
0*25 0
我們的二進位數目——比如說,87——實際上就是一種速記形式,(在這一例中)是81*101加7*100的「定位」講法。數字越大,速記越顯得短。比如1956,可寫作:
87
不過,如果我們要將十進位數8901轉換成莫爾斯電碼。就必須這樣表示:嗒嗒嗒嘀嘀 嗒嗒嗒嗒嗒 嗒嗒嗒嗒嘀 嘀嗒嗒嗒嗒。也就是,四組,每一組包含五個「位」,總共有20個「位」。
縮回小指,伸出右邊無名指。把它讀作10(或者十進位中的二)。
1010111
請看,這多麼簡潔!儘管數目很大,但可以看到處理時又變得多麼快捷。
01100,01101
11111,11111
註釋:
既然能找到這樣一個例子,那就讓我鼓起勇氣再多找一些吧。
1010111
食指:23=8
5952
這並不難算。如果情況不允許,我們也有可能在腦子裡算出來。
麻煩的是,我們是靠手指數數的。這樣自然可以順利數10個數目,還可以順延到20或者是30——在用指頭數第二圈或者是第三圈時,並不需要多少特別的記憶技巧。不過,當我們數到高於它們很多的數目時,就要在很大程度上依賴我們各自不同的記憶:我們將10個數目數了幾遍,這樣麻煩也就來了。
讓我們來看一下換用二進位制可能帶來的不便和便利吧。這種情況實際上是引不起爭論的,因為電腦默無聲息的票數已以壓倒性多數超過了我們人類的票數。但還是讓我們來看一下,對我們這樣有厭煩能力、愛吹毛求疵的人類有什麼益處。
誠然,十進位制以前的那些方法不可能捲土重來。譬如,我們很少有機會再恢復使用巴比倫人的六十進位制(以60為基礎)——不過由於我們仍將每個小時定為60分鐘,將圓分為360度,所以它並沒有廢棄不用。以其他數字為基數的進位制也還有存在的跡象。諸如「斯考爾」(英文音譯,意思是「20」)和法語中表示80的「考特——文特」等術語都清楚地表明以20為基數進位制的存在,而像「一打」「十打」等等這樣的術語則明顯是從以12為基數的進位制中派生出來的詞語。
這樣,就可告訴你朋友,你走了626步。
小指:29=512
8091
但是,正如上面所見到的,它的十進位數對等物只需三組,總共有13個「位」。
拇指:25=32
既然如此,為什麼這種龐大的計劃現在還要實施呢?
你只需簡單地數右欄數字(1,10;寫下0和1表示);然後數中欄數字,當然要從一開始算起(1,10,11;寫下1和1表示);然後數左欄數字,還是從一開始算起(1,10,11,100,101;寫下1和10表示;寫下10)。
93
加三  11
-10011,10010
1011111
1*28 256
783
有人也許會反對說,這樣特別的例子是不常見的。這是極為正確的。但是,在十進位制中,它們不僅僅不常見,而且根本就不存在。而我們不論用什麼方法,也都不能把二進位制中的花樣給完全翻九-九-藏-書出來。實際上,一個人在一個晚上如果找不到二進位的另外一些捷徑又想將二進位法搞得頭頭是道,那簡直是不可能的。
1111110011011
110
左手
然後,將它劃掉,將626的二進位等數在手指上表示出來:
用二進位,你手頭有1101個100*1000塊鑲板,要補10100,01010平方英尺牆壁。
無名指:28=256
87
或許數目本身並沒有什麼,或許我們的閱讀方式需要某種改變。比如,1111110011011這個數目。你在幾頁前已跟它見過面(可謂故友重逢,那是87同93相乘的結果)。不過,你自有何曾相識之感,幾乎認不出它來。這是不是由於它的認知價值本質是很低的?抑或是我們在閱讀(以及形成書寫習慣)這種數字時缺乏訓練?
這看起來叫人害怕,因為人們對這種東西很不熟悉;但是,得出的結果仍然跟87*93是一樣的;它是下式的速記形式:
伸出右邊小指。這是1——二進位和十進位都是這樣。
將雙手的十指在面前伸開(不要因語義而進行詭辯「拇指」是不是一個「指頭」——你明白我的意思),讓我們來看看它們能幹些什麼。
1*212 4096
1*211 2048
很明顯,1101*100*1000不過是位置的認定罷了。你讓左手代表01101,讓右手代表00000;那就是你所有的鑲板平方英尺總數——可以說,是用手表示的。然後,減法就只需要考慮接續的數點,從右手數起,以你要減出的寫出的數目中的相對應數點減去你手指上顯示的數點,另外負載著「借用的」數目。(你能夠記著,當你首次學習十進位減法的規則時,「負載」要給你多大麻煩?那麼,如果這樣能使你找到「負載」的訣竅,就不要放棄二位數的減法。)
1*24=16
1*103=1000
四  100
———————
2 2976
如此類推,你會發現這樣來回伸縮手指需要練習或者天生的靈活性——當然了,除非你將手指放在桌邊上休息,那就無所謂了。
舉個例子:你要修房子,手頭有13個4*8的鑲板,你發現有650平方英尺的牆要補。問:你還要到外邊去買多少塊鑲板才行?
1*29 512
要理解這樣做的意思,就要牢記我們是如何將一個十進位數分開的。一個二進位數也可以分成同樣的份數。惟一的區別是,份數是2的乘方相乘,而不是10的乘方相乘。這樣的話,1010111,就是下邊說法的速記形式:
讓我們看看一個簡單的數目——比如,87*93——看看我們,伊萬,還有全能自動電腦是怎麼算的。我和你,由於至少在年級制學校讀過幾年書,就會寫下一個如此簡潔的運算式:
看起來難嗎?請再考慮一下相關的困難。可能這畢竟是你第一次做二進位數的題。多做些練習;如果做上六次,就一點兒也不難了。若做上百次,便會成為半自動性的;若做上千次呢——
1*21=2
左小指:512
不過,有能力評論一個問題,就等於在解決它的道路上前進了許多。很明顯,給二進位數目賦予更多的發音價值是毫無困難的。
————
21 1 23 1
中指:22=4
這個問題並沒有多少難解的地方,暫且先讓我們把手指當做計算機,用二進位算術把它算出來。首先,我們需要先轉換成二進位——這隻是因為我們出的題用的是十進位。但如果把換算時間計在答題時間之內,那將不是公平的。
1010111
我認為,這跟一個代數式一樣容易計算,乘法也差不多是這樣。乘法只用寫下數目,將位中的一個適當數目向左移,或者根本無需寫下數目(取決於你是用「1」還是「0」乘那個數字)。因此,此外不外是相加;而相加已如上述,不過是數數而已,完全用不著乘法表!用不著死記硬背叫人生厭!無怪乎全能自動電腦和伊萬都喜愛它!
像上面所講,我們已經找到了二進位制的靈活運用實際上比九九藏書十進位制更為精確這樣的第二個例子——可以看出,是由100這個因素決定的。那麼,暫時讓我們不計二進位的有限「不利」,以求對它的某些更為引人注意的特點稍作了解吧。
那種笨拙、散漫、古怪的舊玩意兒!
不便之處馬上就會顯現出來,首先是二進位數跟它的十進位數相比好像大而無當。但是,二進位數實際上並不比十進位數長多少(大約三位),這倒是沒有問題的。事實上,真正大的數目不管在什麼進位制中都是根本不易運用的。在目前流行的十進位制中,科技人員要麼用近似值(比如3*1047)、要麼用它們原初的分解因式和指數形式(193*6415*1861)、要麼用其他因數或者速記方式來表示大的數目。甚至在我們每天的報紙上,連標題也傾向於用6.5百萬美元,而不用6,500,000美元。
——————
緊握拳頭,開始數起:
在科學幻想小說中,絕大多數對未來數目進位制的處理就是以這種12(「十二進位」)製為基礎的,但究竟是由於什麼原因很難搞明白。有人爭辯說,12數目制簡化了書寫諸如1/3和1/6等分數的「十進位的」對等物。不過,對於數目轉換的巨大工作來說,這似乎是一種很小的報償。若將十二進位制本身的優缺點存而不論的話,就請考慮一下這樣一種變換要付出的代價吧。對一個初學者來說,我們的十二進位貨幣制每況愈下,必將被一種新幣制所替代,或者是像不列顛笨拙的1s1d那樣的時代錯亂的產兒一樣苟延殘喘。而這樣的代價僅僅是開始而已。科學就是度量和解釋;沒有度量,解釋便等於是霧中亂撞;而度量就是數目。如果要將書寫數目的系統改觀,你就必須更換幾乎所有的有記載的人類知識的整體——這包括試驗室報告和稅務回票,價格核算和計時方法,有關介子行為的知識,以及紐約股票交易所的交易情報等等。
0
此外,你什麼時候都可以得出要算的總數(比如,這不像是用十進位手指數法,用這種辦法你必須數手指本身才可得出總數),你只需要讀下去就行了。假設你同一個朋友一起外出散步(比方說你丟了計步器),而你的朋友又想知道你在某個給定時問內走了多少步。你一直數著指頭,最後發現自己伸著左手的小指、食指和拇指,右手的拇指和無名指。依照我們已定的的規則,你數讀手指便會發現你已經走了10011,10010步。又據我們的發音規則,你可以傳達出這樣的信息:「嘀嗒嗒嘀嘀 嘀嗒嗒嘀嗒」。
372
左食指:64
右手
我們開始時要建立起一套規則。伸出一指是「1」,收回一指為「0」。
21 372
於是我們就會發現有點奇怪。我們已經承認,二進位制有一種本質上的缺陷,此即它的數目在原則上沒有十進位制精確。
左拇指:32
1 1  1 1
將世界上的主要文字記載從一種數目制轉化為另一種,這樣的計劃是有礙於思維的。它的代價不僅無法以億萬美元來計算,而且即使花費人類億萬年時間或許也無法完成。
100
依此而行,若要將手指數數結果變為十進位數目,只需將上面給出的手指表示的對等數加起來。上面提到的10011,10010就可解為:
①10010,01010平方英尺(牆要補)
-01101,00000平方英尺鑲板(現有)
—————————————————
00111,01010平方英尺(仍需)
(為防止你上高中時間過長,101就是10的意思;100指10除以10,或者是1。無論你上高中有多長時間,都應該記著102的意思是10乘以10,或者是100,如此類推。)
不要擔心減法,你已經做出來了!逆轉指頭表示數目的規則:把伸出的手指當做「0」,收縮的手指當做「1」,便會得出:
如果你將87和93這樣的數字輸入全能自動電腦,它的消化功能就會給搞亂——實際上,除非這些數字先被消化,否則它就無法消受。所以你必須像我們上面https://read.99csw.com所做的那樣,先將它們轉化成二進位數目(「數字」或「數點」)。諸如1010111和1011101這樣的二進位數,全能自動電腦處理得非常好。想做乘法嗎?毫無困難。全能自動電腦,依其電子途徑,會如是而行:
當然了,你是可以這樣來算數的。1是一;10是二;11是三;100是四;101是五;110是六;111是七;1000是八;1001是九;1011是十;如此類推。用它可加可減:
1*24 16
1*26=64
用二進位制能否做得更好些呢?
*1011101
10 744
為證實全能自動電腦是怎樣運算的,讓我們把某些數目拆開,看看其中包括些什麼。
右無名指:2
不過,他並非那麼聰慧儒雅,而依然一如愚人。但是,你如果責怪他從數目的二進位制求取幫助,他就會公開嘲笑你。
0*23=0
收回這兩個指頭,再將右手中指伸出。讀作100(二進位)或四(十進位)。
看,還有點益處。正如平常出現的那種情況,一個方面若稍有進展就可能會給尚未解決的相關問題帶來幫助。這裏的相關問題就是心讀化的問題。我們都靠嘴來閱讀,即使有時嘴唇肌肉動作完全受到抑制肉眼無法看到,喉管中仍舊在形成我們所閱讀——或者思想的事物的任何聲音。諸如***逗號***啊啊逗號**啊**這樣一組,簡直就無法發音。
0
保持無名指姿勢,並將它旁邊的小指伸出。讀作11(十進位中的三)。
87 93
讓我們把「1」的發音當作「嘀」,「0」發作「嗒」。這樣,111,11100,11011就變成嘀嘀嘀 嘀嘀嘀嗒嗒 嘀嘀嗒嘀嘀——
二進位制恪守十進位制的所有規則。它屬於定位性的;它可以表示任何有限數目;它可以用來加、減、乘、除,求指數,以及人類及全能自動電腦所知的任何代數方程。惟一的差別是:它的基數是2,不是10。它削去十進位數中的10個基數中的8個——2,3,4,5,6,7,8和9——只剩下0和1。
你可以不費吹灰之力算出來,而無需背誦乘法口訣。這樣使你的青春時光自由自在,在夜晚盡情欣賞棒球比賽,或者訪朋問友。
小指:20=1
簡單地講,其答案是,機器也並不比俄國農夫敏捷多少。
實際上,這樣一種制度已經廣泛得到運用。如果你在人聲嘈雜的夜晚走進切爾西的愛爾蘭沙洲銀行,或許會碰到一兩個海運官員在隨意閑聊。由於人聲鼎沸,他們並不怕人偷聽,也不怕受到干預。如果你恰好聽到他們談話,他們又恰好是無線電報務人員,他們便會用電碼互相交談。就莫爾斯一點一畫相間的電碼而言,其中包含有一套非常嚴格的成規定則。「嘀」是短線,「嗒」是長線。如果我們就以這套規定而以二進位制代之的話,可能會丟掉某種便利——無疑一種更為嚴謹、更為明晰的體制有可能根據基本的發音規則被創造出來。但是,它卻有一個特別的方便:它行之有效。我們用不著對它測驗,用不著不相信它;我們明白它行之有效。它在全世界範圍內為無數個無線電發報機工作已有好幾個時代了。
中指:27=128
乍一看來,這並不是什麼盡善盡美的方法。如果你想起伊萬渾然不知乘法表為何物,你就會認為此法確實靈巧非凡。而伊萬則搖身一變成為聰慧儒雅之輩。
5 1488
*93
這就是我們剛才提到的原來的數字形式。
食指:26=64
1010111
11111,11111
右拇指:16
————
———————
1 5952
——————
不過,世上的工作都充滿著單調乏味的操作過程,但我們又不能不做。我們已經找到了處理它們的兩個好辦法——要麼把它們交給機器(像全能自動電腦),它們沒有能力產生厭煩情緒;要麼看成是一種機械性的常規把它們掌握住。
0*26 0
讓我們隨意將n定為626(這是因為我們剛好要處理一個二進位的等數——當然了,1023以下任何其他數目也都可以)。請用手指算這個數。先將1023的二進位對等數表示出來: