本原勾股数组
勾股數我們都很熟悉,a2+b2=c2,可是如何快速找到所有的勾股數組呢?
本原勾股數組a2+b2=c2性質:
1. a,b奇偶不同,c一定是奇數
2. 若b為偶數,c-b和c+b一定是完全平方數
3. 設t>s>=1,且均為奇數,則a=s?t,b=(t?t?s?s)/2,c=(t?t+s?s)/2a=s*t,b=(t *t-s *s)/2,c=(t *t+s *s)/2a=s?t,b=(t?t?s?s)/2,c=(t?t+s?s)/2;其中a為奇數,b為偶數
有上面的性質以后我們就能迅速得到所有的勾股數組。
下面進行證明:
顯然:gcd(a,b,c)=1,則由a2+b2=c2得到a,b,c兩兩互質。如果其中兩個不互質則通過等式另一個肯定也含有相同的因子。
證明性質1:
假如a,b同為偶數,則c為偶數,則gcd(a,b,c)!=1,不可能。
假如a,b同為奇數,設a=2x+1,b=2y+1,則c2=4x2+4x+1+4y2+4y+1為偶數,則c必定為偶數,令c=2z,則2z2=2(x2+y2+x+y)+1,奇數不可能等于偶數,因此不成立。
故a,b奇偶不同,則c一定是奇數。QED
證明性質2:
另t=gcd(c-b,c+b),則t∣2c,t∣2b,若t>1,則t/2∣c,t/2∣b,所以t/2=gcd(b,c)=1,t=2t|2c,t|2b,若t>1,則t/2|c,t/2|b,所以t/2=gcd(b,c)=1,t=2t∣2c,t∣2b,若t>1,則t/2∣c,t/2∣b,所以t/2=gcd(b,c)=1,t=2所以t=1或者2.
又因為t|(c-b)(c+b)=a*a,a為奇數,所以不可能。因此t=1,c-b和c+b互質。
因為(c-b)(c+b)=aa,c-b,c+b均為完全平方數(由算術基本定理可知,他們的質因子的冪必須是偶數)QED
證明性質3:有以上,我們令s2=c-b,t2=c+b,則a=st,b=(t *t-s *s)/2,c=(t * t+s * s)/2。由a為奇數可得,s,t為奇數。QED
總結
- 上一篇: 英雄联盟电脑也会挂机吗?? 我第一次见
- 下一篇: Pollar Rho算法