趙美利 唐靜
摘要:三角形數(shù)是否能化為正方形數(shù)是一個(gè)有趣的數(shù)學(xué)問題,沒有形成一定的結(jié)論,該文結(jié)合數(shù)列性質(zhì)和佩爾方程,討論三角形數(shù)可化為正方形數(shù),為研究三角形數(shù)和正方形數(shù)提供一定的參考價(jià)值,并利用了Java語言的大整數(shù)特征結(jié)合 Eclipse集成開發(fā)環(huán)境,驗(yàn)證了其結(jié)論的正確性。
關(guān)鍵詞:三角形數(shù);正方形數(shù);佩爾方程;大整數(shù)
中圖分類號(hào):TP393? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2021)29-0171-03
Note and Algorithm Construction of Triangular Row Number and Square Number
ZHAO Mei-li, TANG Jing
(Chuzhou City Vocational College, Chuzhou 239000, China)
Abstract: Triangle number whether can into the square number is an interesting mathematical problems, not form a certain conclu?sion, based on the sequence of the nature and pell equation, The necessary and sufficient conditions for the triangle number to be transformed into a square number are discussed, Let the positive integer ofan the nrow of the triangle number be,thean from smallto large, constitute ana series sequence is infinite, has a recurrence formulaan +2 =6an +1 - an +2,a1= 1,a2= 8 The general formula isan =? [(3+ 2)n +(3- 2)n]- ; The number of triangles can be changed into the number of squares, which pro?
vides some reference value for the study of the number of triangles and the number of squares. The correctness of the conclusion is verified by using the feature of large integer ofJAVA language and Eclipse integrated development environment.
Key words: triangle number; square number; pell equation; large integer
眾所周知, 三角形數(shù)和正方形數(shù)是數(shù)學(xué)中一類有趣的問題,我們熟悉的古希臘數(shù)學(xué)家畢達(dá)哥斯拉提到過三角形數(shù)和正方形數(shù)[1],他們把數(shù)看作點(diǎn)集或點(diǎn)狀物體,把數(shù)字和圖形聯(lián)系在一起,將正整數(shù)和正方形、正五邊形、三角形等聯(lián)系起來,將數(shù)字劃分為正方形數(shù)、五邊形數(shù)、三角形數(shù)等,使得數(shù)字更加形象生動(dòng),研究規(guī)律很方便。之后很多人對(duì)此問題進(jìn)行了討論和研究,得出了一些特殊的三角形數(shù)和正方形數(shù),所有大于3的三角形數(shù)都是合數(shù),所有三角形數(shù)的倒數(shù)之和是2,任何一個(gè)完全平方數(shù)都可以表示成相鄰的兩個(gè)三角形數(shù)之和[2]。鄭玉美[3]利用余弦定理從1200三角形數(shù)方面得出了兩個(gè)性質(zhì),張愛靜[4]從三角形數(shù)和數(shù)三角形角度討論了三角形的一些規(guī)律,得出了數(shù)與規(guī)則圖形的一些結(jié)論。黃祎[5]利用初等方法和解析方法,首次提出了三角形數(shù)和數(shù)列的關(guān)系,研究Smarandache三角形數(shù)的下部及上部數(shù)列的幾何平均值的極限問題。智婕[6]在佩爾方程x2-py2=1的求解技巧一文中把佩爾方程和三角形數(shù)建立了聯(lián)系,利用佩爾方程的解的規(guī)律得到了滿足一定條件的特殊的三角形數(shù)。余熙國(guó)[7]得出關(guān)于三角形數(shù)和正方形數(shù)的一個(gè)結(jié)論,一個(gè)正整數(shù)既是三角形數(shù)也是正方形數(shù)有無限多個(gè),可以用通式表示:
通式給出了三角形數(shù)和正方形數(shù)的關(guān)系,但是沒有給出兩者相互轉(zhuǎn)化的結(jié)論。近年來很多中學(xué)都注重培養(yǎng)學(xué)生思維能力和創(chuàng)新能力,在數(shù)學(xué)學(xué)科競(jìng)賽題中經(jīng)常出現(xiàn)三角形數(shù)的考題,吳家華[8]將一個(gè)數(shù)列的各項(xiàng)重新排列,構(gòu)造三角形數(shù)陣,妙解一類數(shù)列問題,提出了三角形數(shù)的應(yīng)用問題,開辟了新的領(lǐng)域。綜上所述,對(duì)于這個(gè)有趣數(shù)學(xué)問題有了一定的研究和探討,形成了一定的結(jié)論,但是對(duì)于三角形數(shù)和正方形數(shù)的轉(zhuǎn)化問題沒有涉及,為了更進(jìn)一步探討兩者的本質(zhì)聯(lián)系,本文對(duì)滿足一定條件的三角形數(shù)如何轉(zhuǎn)化成正方形數(shù)進(jìn)行了研究,形成了一定的結(jié)論。
1預(yù)備知識(shí)
三角形數(shù):將物品以三角形形式等距離排列,可以形成等邊三角形,這樣得到的物品的數(shù),比如1,3,6,10,15,21,...,這樣的數(shù)稱為三角形數(shù)。
正方形數(shù):正方形數(shù)也稱平方數(shù),將一定數(shù)量的點(diǎn)或圓等距離排列成正方形,這樣得到一組數(shù),比如1,4,9,16,...,這樣的數(shù)稱為正方形數(shù)。
佩爾方程:形如x2- dy2= 1(x,y∈ Z+; d不是平方數(shù))方程稱為佩爾方程,其滿足方程的正整數(shù)解是初等數(shù)論經(jīng)典問題之一。
2相關(guān)結(jié)論
自從三角形數(shù)作為一類特殊的數(shù),有一定的規(guī)律之后,人們開始一系列探討和研究,比如三角形數(shù)的第n個(gè)數(shù)是,所有的三角形數(shù)的倒數(shù)之和等于2,任何兩個(gè)相鄰的三角形數(shù)之和都是一個(gè)正方形數(shù)等等。三角形數(shù)是否化為正方形數(shù),是一古老有趣的數(shù)學(xué)問題,也是初等數(shù)論的經(jīng)典問題之一,在不少書刊和中學(xué)生數(shù)學(xué)競(jìng)賽中出現(xiàn),但未見一個(gè)的結(jié)論。筆者經(jīng)研究發(fā)現(xiàn),若三角形數(shù)可化為正方形數(shù),其滿足一定條件即可,從而完美解決了這一古老有趣的數(shù)學(xué)問題,下面我們給出一定的結(jié)論。
引理1:設(shè) an 為三角形數(shù)的第 n 行的正整數(shù),構(gòu)成新的數(shù)列為{an},
綜上所述引理1得證。
我們經(jīng)過數(shù)列的性質(zhì)進(jìn)一步推導(dǎo)后就會(huì)發(fā)現(xiàn),對(duì)引理1 的數(shù)列各項(xiàng)進(jìn)行求和,會(huì)有更一般的結(jié)論,下面給出這個(gè)結(jié)論,并給出證明。
由(3)式容易得到:
綜上所述引理2成立。
由以上兩個(gè)引理我們得到三角形數(shù)轉(zhuǎn)化成正方形數(shù)的充要條件,下面我們給出結(jié)論,并利用佩爾方程簡(jiǎn)單證明這個(gè)結(jié)論是正確的,從而解決了三角形數(shù)和正方形數(shù)互相轉(zhuǎn)化的這一初等數(shù)論的經(jīng)典問題。
定理:如三角形數(shù)可化為正方形數(shù),三角形數(shù)第n行的正整數(shù)為an,則an +2 =6an +1 - an +2,a1= 1,a2= 8。
證明:∵三角形數(shù)可化為正方形數(shù),第n行的正整數(shù)為an,由引理2知:
∴存在相對(duì)應(yīng)的正整數(shù)m n,使得:
由佩爾方程的概念易知(4)式符合佩爾方程形式。
由佩爾方程的通解知(4)式的通解為:
定理得證。
由引理1和引理2知定理結(jié)論是正確的。
此定理給出了三角形數(shù)和正方形數(shù)轉(zhuǎn)化的充要條件,徹底解決了兩者之間的聯(lián)系問題,以前只是片面的討論三角形數(shù)和正方形數(shù)的規(guī)律問題,形成了一定的結(jié)果。所以研究此問題很有必要,有一定的理論指導(dǎo)意義。此定理是對(duì)原來三角形數(shù)判定定理的延拓,更具有一般性和使用的廣泛性。為進(jìn)一步證明其結(jié)果的準(zhǔn)確性,利用java 中大整數(shù)的特點(diǎn)設(shè)計(jì)相應(yīng)的算法。
3算法實(shí)現(xiàn)
程序設(shè)計(jì)語言基本數(shù)據(jù)類型中l(wèi)ong類型所能表示的整數(shù)范圍是最大的,但還是有限的。當(dāng)數(shù)據(jù)值超出范圍會(huì)有異常出現(xiàn),而Java 中專門提供了用來進(jìn)行不限制大小的整數(shù)計(jì)算的類——java.math.BigInteger。支持任意精度的整數(shù),可以準(zhǔn)確地表示任何大小的整數(shù)值,而不會(huì)丟失任何信息[9]。在該類中封裝了大整數(shù)相加add();相減subtract();相乘multiply();相除取整di? vide();取余remainder();求冪pow(); a.pow(b)=a^b;最大公約數(shù)gcd ();絕對(duì)值abs();是否相等boolean equals();通過使用這些大整數(shù)運(yùn)算,可以求解許多高精度運(yùn)算問題。在本算法中需要驗(yàn)證通過公式所得數(shù)列中的每個(gè)數(shù)是否完全平方數(shù)(正方
形數(shù))和對(duì)完全平方數(shù)取得其平方根,在java.math.BigInteger類沒有這兩種方法,需要自己設(shè)計(jì)。以下兩種算法就是完全平方數(shù)和取得其放平方根的設(shè)計(jì)。
(1)//public static BigIntegermyBigNumSqrt(BigInteger xx){}方法是對(duì)大整數(shù)求平方根
public static BigIntegermyBigNumSqrt(BigInteger xx){
BigDecimal x=new BigDecimal(xx);
BigDecimal n1=BigDecimal.ONE;
BigDecimalans=BigDecimal.ZERO;
while((n1. multiply(n1). subtract(x)). abs(). compareTo(BigDeci?mal.valueOf(0.001))==1)
{
BigDecimal? s1=x.? divide(n1,? 2000,? BigDecimal. ROUND_HALF_UP);
BigDecimal s2=n1.add(s1);
n1=s2. divide(BigDecimal. valueOf(2), 2000, BigDecimal. ROUND_HALF_UP);
}
ans=n1;
BigInteger rt =new BigInteger(ans.toString().split("\\.")[0]); return rt;
}
(2)//public static BigIntegeris_square(BigInteger F7){}方法是判斷大整數(shù)是否完全平方數(shù)
public static booleanis_square(BigInteger F7){
//牛頓法求解平方根, 求解a 的平方根 x為a 的平方根,x 的初始值為1,//按x =(x+a/x)/2迭代,誤差為error
BigDecimal x = BigDecimal.ONE;
BigDecimal m = new BigDecimal(F7.toString()); BigDecimal eps = new BigDecimal("1");
final BigDecimal error = new BigDecimal("1E-10"); int scale =100;
while(eps.compareTo(error)==1){// eps > error
x? =? x.? add(m.? divide(x,? scale,? BigDecimal. ROUND_HALF_UP)). divide(new BigDecimal("2.0"), scale, Big?Decimal.ROUND_HALF_UP);
eps = x.multiply(x).subtract(m).abs();
}
BigInteger sqrt = x.toBigInteger();//求平方根的整數(shù)部分 if(sqrt.pow(2).compareTo(F7)==0)
return true;
else
return false;
}}
(3)該算法中要進(jìn)一步驗(yàn)證數(shù)列數(shù)列的個(gè)數(shù)與
該數(shù)列中完全平方數(shù)的個(gè)數(shù)是否相等,如相等就證明上述的充分必要條件,在主方法中通過for循環(huán)和方法條用的到相應(yīng)的結(jié)果該算法利用數(shù)組長(zhǎng)度為102最終實(shí)現(xiàn)的結(jié)果如下求數(shù)列an 的值:
在Eclipse開發(fā)環(huán)境下該程序運(yùn)行的結(jié)果界面如下:
三角形數(shù)和正方形數(shù)的判定問題是初等數(shù)論討論的經(jīng)典問題之一,本文章討論了三角形數(shù)和正方形數(shù)的轉(zhuǎn)化的重要條件,對(duì)于他們的求解問題一直是近年來競(jìng)賽題的首選問題,對(duì)培養(yǎng)學(xué)生的創(chuàng)新思維能力有一定積極意義,在此基礎(chǔ)上用Java 語言中大整數(shù)的特點(diǎn)和大數(shù)據(jù)分析方法對(duì)三角形數(shù)和正方形數(shù)以及正多邊形數(shù)進(jìn)行分析和編寫語言程序,對(duì)于這種算法的實(shí)現(xiàn)也是永無止境的課題。當(dāng)然三角形數(shù)和正方形數(shù)的判定條件還可以進(jìn)一步優(yōu)化,需要感興趣的我們一起去研究和發(fā)現(xiàn),相信會(huì)有更好的結(jié)果。
參考文獻(xiàn):
[1]華羅庚.數(shù)論導(dǎo)引[M].北京:科學(xué)出版社,1957.
[2]張文鵬,李海龍. 初等數(shù)論[M].西安:陜西師范大學(xué)出版社,2013.
[3] 鄭玉美.120°三角形數(shù)的兩個(gè)性質(zhì)[J].中學(xué)數(shù)學(xué),1992(2):31-32.
[4] 張愛靜 . 數(shù)三角形與三角形數(shù)[J]. 數(shù)學(xué)學(xué)習(xí)與研究,2010(3):104.
[5] 黃煒.關(guān)于Smarandache三角形數(shù)的下部及上部數(shù)列[J].寶雞文理學(xué)院學(xué)報(bào)(自然科學(xué)版),2011,31(1):23-25.
[6] 智婕.佩爾方程x2-py21的求解技巧[J].佳木斯大學(xué)學(xué)報(bào)(自然科學(xué)版),2011,29(1):110-111.
[7] 余熙國(guó).關(guān)于三角形數(shù)和正方形數(shù)的一個(gè)結(jié)論[J].數(shù)學(xué)通報(bào),2012,51(4):55.
[8] 吳家華.構(gòu)造三角形數(shù)陣妙解一類數(shù)列問題[J].高中數(shù)學(xué)教與學(xué),2020(1):18-19.
[9] 申時(shí)全.基于Java BigInteger類的大整數(shù)運(yùn)算應(yīng)用[J].價(jià)值工程,2014,33(24):229-231.
【通聯(lián)編輯:代影】