勾股數(shù)公式為大家介紹了很喜歡研究數(shù)學(xué),現(xiàn)在他就遇到一個(gè)有趣的問(wèn)題,比如,直角三角形的周長(zhǎng)是120的話,詳情請(qǐng)看以下內(nèi)容:
Roowe(沒(méi)見(jiàn)過(guò)這么BT的,拿自己名字去編題目)很喜歡研究數(shù)學(xué),現(xiàn)在他就遇到一個(gè)有趣的問(wèn)題,比如,直角三角形的周長(zhǎng)是120的話,那么它的三條邊可以是20,48,52,或者24,45,51,還有30,40, 50,有三種不同的解,現(xiàn)在他想知道一個(gè)區(qū)間[a,b]中哪個(gè)數(shù)的解數(shù)最多(1<= a, b <= 1000000)?
輸入
10 100
1000 100000
1 1000000
300000 700000
100000 300000
100000 700000
800000 900000
104 720720
80 360360
1 1000000
輸出
60 2
55440 40
720720 104
360360 80
240240 64
360360 80
831600 78
720720 104
360360 80
720720 104
讓我做下,本來(lái)懶得做的,但是他說(shuō)打表就OK了,于是我就欣然答應(yīng)了。。。奈何他眼中的打表難易度和我眼中不一樣,再次看到了數(shù)學(xué)系高材生和我的差距,嘿嘿。
第一次嘗試,失敗。
我說(shuō),不就是勾股定理a^2+b^2=c^2嗎?結(jié)果他說(shuō),你再去補(bǔ)補(bǔ)數(shù)學(xué)知識(shí)。。。。
于是給了我一個(gè)鏈接,我一看,不就是百度百科的勾股數(shù)嗎,于是就暫時(shí)擱淺了。
今晚第二次嘗試,仍然失敗。
依稀記得昨天他給我說(shuō)了有個(gè)什么勾股數(shù)公式,在百度百科那個(gè)勾股數(shù)的最下面介紹了,但是我看了半天,還是有點(diǎn)迷糊。
然后讓他把代碼給我看看,好吧,結(jié)合百科介紹的勾股數(shù)公式,茅塞頓開(kāi)。
這里給出勾股數(shù)公式
直角三角形三條邊a, b, c,其中a,b是直角邊。
則 a=2*m*n
b=m^2-n^2
c=m^2+n^2
當(dāng)然,這是有前提條件的,也就是其局限性:“勾股數(shù)的公式還是有局限的。勾股數(shù)公式可以得到所有的基本勾股數(shù),但是不可能得到所有的派生勾股數(shù)。比如6,8,10;9,12,15…,就不能全部有公式計(jì)算出來(lái)”
也就是說(shuō),3,4,5可以求出來(lái),但是其倍數(shù)6,8,10就不行了。
這里要注意幾個(gè)問(wèn)題構(gòu)成三角形的條件
2*m*n+m^2-n^2 > m^2+n^2
既m>n
2.a, b, c互質(zhì),即無(wú)法得到派生的勾股數(shù)。
Roowe(沒(méi)見(jiàn)過(guò)這么BT的,拿自己名字去編題目)很喜歡研究數(shù)學(xué),現(xiàn)在他就遇到一個(gè)有趣的問(wèn)題,比如,直角三角形的周長(zhǎng)是120的話,那么它的三條邊可以是20,48,52,或者24,45,51,還有30,40, 50,有三種不同的解,現(xiàn)在他想知道一個(gè)區(qū)間[a,b]中哪個(gè)數(shù)的解數(shù)最多(1<= a, b <= 1000000)?
輸入
10 100
1000 100000
1 1000000
300000 700000
100000 300000
100000 700000
800000 900000
104 720720
80 360360
1 1000000
輸出
60 2
55440 40
720720 104
360360 80
240240 64
360360 80
831600 78
720720 104
360360 80
720720 104
讓我做下,本來(lái)懶得做的,但是他說(shuō)打表就OK了,于是我就欣然答應(yīng)了。。。奈何他眼中的打表難易度和我眼中不一樣,再次看到了數(shù)學(xué)系高材生和我的差距,嘿嘿。
第一次嘗試,失敗。
我說(shuō),不就是勾股定理a^2+b^2=c^2嗎?結(jié)果他說(shuō),你再去補(bǔ)補(bǔ)數(shù)學(xué)知識(shí)。。。。
于是給了我一個(gè)鏈接,我一看,不就是百度百科的勾股數(shù)嗎,于是就暫時(shí)擱淺了。
今晚第二次嘗試,仍然失敗。
依稀記得昨天他給我說(shuō)了有個(gè)什么勾股數(shù)公式,在百度百科那個(gè)勾股數(shù)的最下面介紹了,但是我看了半天,還是有點(diǎn)迷糊。
然后讓他把代碼給我看看,好吧,結(jié)合百科介紹的勾股數(shù)公式,茅塞頓開(kāi)。
這里給出勾股數(shù)公式
直角三角形三條邊a, b, c,其中a,b是直角邊。
則 a=2*m*n
b=m^2-n^2
c=m^2+n^2
當(dāng)然,這是有前提條件的,也就是其局限性:“勾股數(shù)的公式還是有局限的。勾股數(shù)公式可以得到所有的基本勾股數(shù),但是不可能得到所有的派生勾股數(shù)。比如6,8,10;9,12,15…,就不能全部有公式計(jì)算出來(lái)”
也就是說(shuō),3,4,5可以求出來(lái),但是其倍數(shù)6,8,10就不行了。
這里要注意幾個(gè)問(wèn)題構(gòu)成三角形的條件
2*m*n+m^2-n^2 > m^2+n^2
既m>n
2.a, b, c互質(zhì),即無(wú)法得到派生的勾股數(shù)。