趣聞
《美國遊戲數學》雜誌曾提出一個“兩頭蛇數”問題:“要求找出一個自然數,使它的‘兩頭蛇數’是這個數的99倍。”這個問題一提出,就激起了廣大青少年數學愛好者的廣泛興趣,並掀起一股研究“兩頭蛇數”熱潮。有意思的是,這樣的數有無數個,最小的一個有21位,接下去是65位、109位、153位……。後來,一位日本學者西山輝夫發現了一種方法。人們把這種方法稱為“西山解法”。
“西山解法”實例分析: 求一個自然數,使它的“兩頭蛇數”是原來的29倍。
具體操作方法是:
(1) 把題目指定的29倍減去10,得19;
(2) 把1÷19化為循環小數:0.052 631 578 947 368 421 052 63……,這裡循環節共有18位;
(3) 把18位循環節依次分成位數相等的前後兩個部分,把它們各位對應的數字相加起來,就會出現由“清一色”的數字9組成的數:
052631578+947368421=999999999
(4)再把前一半循環節的個位數字加上1,就是:
052631578+1=52631579
52631579就是所求的數,它與29的乘積等於它的“兩頭蛇數”1526315791.
“西山解法”可以解決一大批類似的“兩頭蛇數”問題。
程式求解思路
有愛好編程的讀者提出了自己的編程思路:設所求的自然數N是M位數,因為1N1=99×N,所以10+10N+1=99N,從而N=10^(m+1)+1/89=100000……01,之後,可以採用試探除法,從101,1001,……,逐次添加零,直到有自然數100…01(M個0)能除盡89為止,其商為所求的數N.