1. 程式人生 > >什麼是數學:驗證電話號碼的演算法

什麼是數學:驗證電話號碼的演算法

http://lqisabella.blog.sohu.com/6359613.html 看到的文章前些天在百度的貼吧裡也見過,其實沒有什麼神奇的元素,其本質就是初等算術。
讓我們設一個電話號碼AB,其前半部分表示為A,依照北京電信的安排,A是四位正整數,而B同樣為四位正整數。這樣,按照原文提供的演算法,我們一步一步地做了運算:((80*A+1)*250+B+B-250)/2。上式合併同類項,可表示為10000A+B。分析結果我們可以得出的是:其運算的本質是將一個正整數擴大10000倍,使其後四位為0,再加上一個四位正整數而最終得到結果。從而我們可以拓展思想,其運算準確與否與B的位數有直接關係,即B必須為四位正整數,而對A沒有特殊限制。而中國的電話號碼多為8或7位,文中提到的取前三位實際上是為了保證後半部分為四位。
結論:一個N(N>=5)位數,若取其末尾四個數字為一個新數作為B,剩餘部分為另一個新數作為A,則原數為((80*A+1)*250+B+B-250)/2

推論:一個N(N>=5)位數,不論從哪個部位將其切割為兩個新數A、B,總有正整數n使得原數可表示為((80*n*A+1)*250+B+B-250)/2

那位同學有興趣可以證明一下推論嘛。