吳朝陽


在計算機語言里,每一個字符都對應一個編碼,所有字符都有自己的碼值。以前一般使用的是所謂的ASCII碼,現在則發展成為UNICODE。在ASCII碼和UNICODE中,0-9的碼值、A-Z的碼值、a-z的碼值分別是連續遞增的碼值區。因此,知道了0、A及a的ASCII碼值,則這3類字符的碼值也就都知道了。由于換行符和空格符也是編程中最常用的字符,因此記住它們與0、A、a的ASCII碼值,將給編程者提供不小的便利。有趣的是,這5個字符的ASCII和UNICODE碼值相同,它們依次為10、32、48、65和97。5個碼值中,從O~9這10個數字不多不少,恰好各出現1次。
我們今天要談的,是30多年前我還是中學生的時候遇到過的2個趣味數字問題。同樣有趣的是,它們中的一個正是從O~9這10個數字恰好各出現1次的趣味數字題。
問題一:一個數的立方及4次方總計有10個數字,它們正好從0~9各有1個,請問這個數是多少?
這個問題的答案是18,簡單計算很容易得到:l83=5832,l84=104976。在5832和104976這2個數中,從0~9的10個數字恰好各出現1次。
擱在現在,這個答案編個小程序就很容易得到。然而,在連計算器都沒有的年代,用紙筆漫無目標地用試算法來尋找答案是一件很費力的事情。因此,用數學推理的方法尋找這個問題的答案,不僅是一個考驗推理能力的辦法,也是一個聰明的辦法。我個人認為,這種數學推理方法非常值得學習,因此我們下面來重現當年的推理過程。
假設N是所求的數,即,N的立方及4次方總計有10個數字,恰好從O~9各有1個。
首先,由于9的4次方小于10的4次方(即10000),故它只有4位數字。因此,N必然大于9。這就是說,答案至少是1個2位數。
其次,由于N至少是2位數,所以N的4次方至少比N的立方多l位數字。因此,N的立方最多只能是1個4位數,而N的4次方則至少是1個6位數。
第三,11的立方等于1331,乘以8即超過10000。也就是說,22的立方是1個5位數。因而由上述第2條可知,N小于22。
第四,17的平方等于289,它小于300。因此289的平方,即17的4次方,將是1個小于300的平方(即90000)的數。也就是說,17的4次方充其量是一個5位數。因此據第2條,我們知道N大于17。
第五,20的立方與4次方的個位數都是0,數字重復出現,因此它不可能是問題的答案。同理,我們可以排除21。因此,N必然等于18或19,二者必居其一。
最后,19的平方等于361,它小于400。因此361的平方,即19的4次方,小于160000。由此可知,19的4次方是1個首位數字為l的6位數。由于361平方的個數位顯然是l,所以19的4次方出現重復數字,它同樣不可能是問題的答案。
綜合第三、第四條,我們知道N只能是18、19、20和21這4個數中的一個。而最后2條告訴我們,19、20、21也都不可能是問題的答案。因此答案只能是——18。
只需要記得20以內自然數的平方,通過推理及簡單的心算就可以獲得上述問題的答案,此可見分析推理的威力及重要性。好了,我們不多啰嗦——現在來看第2個問題。
問題二:一個4位數2ab2被不小心寫成了2ab2,結果卻恰好與原來的數字相等,請問這個數字是多少?
我們同樣用推理的方法來解決這個問題。首先,b2小于10的平方,即小于100。但是它與2a的乘積等于2ab2,是一個大于2000的數值,因此,2a必須大干20。這樣我們得到第一個結論。
a≥5
(1)
其次,29=512。如果a=9,則2ab2大于2900。而2900除以512大于50,所以b2大干50,故有:
b≥8
(2)
現在,我們考慮b=8的可能性。如果b=8,則:
2ab2=2a82=2a+6
據已知條件,這個數的個位數等于2。容易證明,對自然數n,2n的個位數隨n的增加形成2、4、8、6的循環,只有當n=4k+l時的個位才等于2。因此,據結果(1),目前的情況下必然有:
a=7。
然而我們知道,1K的準確數值等于1024,它是2的10次方。也就是說,a=7且b=8時,2ab2等于213。雖然這個數的個位數等于2,但它等于8K,數值上遠遠超過小于3000的2ab2。這就是說,b=8是不可能的。
于是,據結果(2),我們得到如下的第3個結果。
b=9,并且2a×92=81x2a=2a92
(3)
根據上述結果,81×2a的個位數等于2,因而2a的個位數也等于2。如上所述,此時有a=4k+l。據結果(1),我們有a=5或a=9。
我們前面提到,29=512,所以它與81的乘積大于4000,大大超過2ab2的最大可能值。因此,我們得到:a=5,即本問題的答案是:
a=5,b=9
2592=25×81=2592