- 趣味數(shù)學(xué)及編程拓展
- 楊克昌
- 1730字
- 2019-07-30 18:00:15
1.7 雅趣守形數(shù)
本節(jié)探討守形數(shù),其特性表現(xiàn)在其平方數(shù)的尾部。
定義:若正整數(shù)n是它平方數(shù)的尾部,則稱n為守形數(shù),又稱同構(gòu)數(shù)。
例如,6是其平方數(shù)36的尾部,25是其平方數(shù)625的尾部,6與25都是守形數(shù)。
首先利用守形數(shù)的特性簡單求解3位守形數(shù),在此基礎(chǔ)上編程拓展求指定區(qū)間內(nèi)的守形數(shù),并進一步探求多位守形數(shù)。
1.7.1 探索區(qū)間守形數(shù)
先求解一個簡單的守形數(shù)問題。
【問題】 共有多少個3位守形數(shù)?
【思考】 從個位開始向高位逐位探求。
(1)除了5與6外,1能否構(gòu)成守形數(shù)的尾部?
回答是否定的。事實上,12=1,1是1的平方,而不是其平方數(shù)的尾部。
設(shè)2位整數(shù)a=10k+1(即a的十位數(shù)字是k>0),只要證a2的十位數(shù)字不為k即可。
a2=(10k+1)2=10(10k2+2k)+1
可見,a2的十位數(shù)字是2k的個位數(shù)字,無論k>0為何數(shù)字,2k的個位數(shù)字都不可能為數(shù)字k。
(2)任意n位守形數(shù)必為n-1位守形數(shù)。
要求3位守形數(shù),可先求出所有2位守形數(shù)。
①設(shè)a=10k+5為個位數(shù)字為5,十位數(shù)字為k(k>0)的2位整數(shù),則
a2=(10k+5)2=100(k2+k)+25
顯然a2的最低2位為25,其十位數(shù)字為2。
即要使a為守形數(shù),只有k=2,即a=25這一個解。
②設(shè)a=10k+6為個位數(shù)字為6,十位數(shù)字為k(k>0)的2位整數(shù),則
a2=(10k+6)2=100(k2+k)+10(2k+3)+6
顯然a2的十位數(shù)字為(2k+3)的個位數(shù)字,即(2k+3)%10。
由(2k+3)%10=k,推得有k=7,即a=76這一個解。
(3)在2位守形數(shù)基礎(chǔ)上配置首位。
①設(shè)a=100k+25,即低2位為守形數(shù)25,百位數(shù)字為k(k>0)的3位整數(shù),則
a2=(100k+25)2=1000(10k2+5k)+625
顯然a2的最低3位為625,其百位數(shù)字為6。
即a為個位數(shù)字是5的3位守形數(shù),百位數(shù)字k=6,即a=625這一個解。
②設(shè)a=100k+76為低2位為守形數(shù)76,百位數(shù)字為k(k>0)的3位整數(shù),則
a2=(100k+76)2=1000(10k2+15k+5)+100(2k+7)+76
顯然a2的百位數(shù)字為(2k+7)的個位數(shù)字,即(2k+7)%10。
由(2k+7)%10=k,推得有k=3,即a=376這一個解。
(4)綜合以上可知共兩個3位守形數(shù):
3762=141 376
6252=390 625
依此可求出4位、5位守形數(shù)。
【拓展】 試探求指定區(qū)間[x,y]內(nèi)所有守形數(shù)。
(1)設(shè)計要點。
為了擴大探求范圍,變量類型設(shè)置為double型。
對指定范圍[x,y]內(nèi)的每一個整數(shù)a(約定a>1),求出其平方數(shù)s;計算a的位數(shù)k,同時計算b=10^k,a的平方s的尾部c=fmod(s,b);比較整數(shù)a與其平方數(shù)的尾部c,若a=c則輸出守形數(shù)。
(2)程序設(shè)計。

(3)程序運行示例與說明。

以上結(jié)果可見,沒有5結(jié)尾的4位守形數(shù),也沒有6結(jié)尾的5位守形數(shù),實際上是因為其最高位為0而沒有顯示。
由輸出的第2個解與第4個解比較可知,0625即為5結(jié)尾的4位守形數(shù),因其高位為0,自然不輸出。
同樣,由輸出的第3個解與第5個解比較可知,09376即為6結(jié)尾的5位守形數(shù),因其高位為0而沒有輸出。
1.7.2 展現(xiàn)多位守形數(shù)
以上設(shè)計搜索到2個3位守形數(shù)、1個4位守形數(shù)、1個5位守形數(shù)、2個6位守形數(shù)。守形數(shù)的個位數(shù)字為5或6。
試探索一般n位守形數(shù)。
1. 設(shè)計要點
為了求更多位數(shù)的守形數(shù),可應(yīng)用守形數(shù)的性質(zhì):
一個m位守形數(shù)的尾部k(1≤k≤m-1)位數(shù)也是一個高位可能為0的守形數(shù)。
事實上,a是一個m位數(shù),a的平方數(shù)的尾部k位僅由a的尾部k位決定,而與a的其他位無關(guān)。
實施易知一位守形數(shù)有5,6,則二位守形數(shù)的個位數(shù)字只可能是5,6這兩個數(shù)字。根據(jù)這一思路,我們可應(yīng)用遞推求解。
設(shè)置數(shù)組a[k]存儲守形數(shù)的第k位:守形數(shù)的個位數(shù)字a[1]選取d(5~6),a[k](k>1)選取j(0~9)。同時,設(shè)置b數(shù)組存儲計算平方的中間值,設(shè)置c數(shù)組存儲計算守形數(shù)的平方值,應(yīng)用“豎式乘模擬”計算平方數(shù)。
通過比較若有a[i]=c[i](i=1,2,…,k)成立,則k位守形數(shù)確立,繼續(xù)遞推下一位,直至n位確定并打印輸出。
2. 程序設(shè)計

3. 程序運行示例與變通

注意到以上結(jié)果中“5結(jié)尾的守形數(shù)”中沒有4位守形數(shù),“6結(jié)尾的守形數(shù)”中沒有5,12,13與20位守形數(shù),只是其最高位為0而已(由其高一位結(jié)果可看出)。
變通:試把守形數(shù)的尾數(shù)從5,6擴展到0~9,即改變尾數(shù)d循環(huán),由for(d=5;d<=6;d++)變?yōu)閒or(d=0;d<=9;d++)。變通后運行程序,可知除5,6結(jié)尾外,其他數(shù)字結(jié)尾沒有守形數(shù)。
- 矩陣決策:如何鎖定關(guān)鍵點做出制勝策略
- 感官的盛宴:數(shù)學(xué)之眼看藝術(shù)(萬物皆數(shù)學(xué))
- 耀世數(shù)學(xué)明珠
- 數(shù)學(xué)建模:算法與編程實現(xiàn)
- 瘋狂的數(shù)學(xué)游戲
- Origin 9.0科技繪圖與數(shù)據(jù)分析超級學(xué)習(xí)手冊
- 張梅玲:讓孩子受益一生的數(shù)學(xué)思維訓(xùn)練
- 紅發(fā)克拉拉的數(shù)學(xué)奇想
- 老師沒教的數(shù)學(xué)
- 魔方的思維世界
- 幾何之美
- Abaqus有限元分析從入門到精通(2022版)
- 高等數(shù)學(xué)同步練習(xí)指導(dǎo)
- 越玩越聰明的印度數(shù)學(xué)和孫子算經(jīng)
- 愛情數(shù)學(xué)(TED 思想的力量系列)