1. 程式人生 > >【學習筆記】關於最大公約數(gcd)的定理

【學習筆記】關於最大公約數(gcd)的定理

結論1

gcd(xa1,xb1)=xgcd(a,b)1\gcd(x^a-1,x^b-1)=x^{\gcd(a,b)}-1
證明:
採用數學歸納法。
a=kb+pa=kb+p, 則有gcd(xa1,xb1)=gcd(xkb+p1,xb1)=gcd(xp(xkb1)+xp1,xb1)=gcd(xp1,xb1)=gcd(xb1,x(amod  b)1)\gcd(x^a-1,x^b-1)=\gcd(x^{kb+p}-1,x^b-1)=\gcd(x^p(x^{kb}-1)+x^p-1,x^b-1)=\gcd(x^p-1,x^b-1)=\gcd(x^b-1,x^{(a\mod b)}-1)

.
中間一步利用到了如下結論: (x1)(xk1)(x-1)|(x^k-1), 證明直接因式分解: xk1=(x1)(i=0k1xi)x^k-1=(x-1)(\sum^{k-1}_{i=0} x_i)

結論2

gcd(Fib(a),Fib(b))=Fib(gcd(a,b))\gcd(Fib(a),Fib(b))=Fib(\gcd(a,b))


其中Fib(x)Fib(x)為Fibonacci數列第xx項。
證明:
首先證明一個結論: Fib(a+b)=Fib(a1)Fib(b)+Fib(a)Fib(b+1)Fib(a+b)=Fib(a-1)Fib(b)+Fib(a)Fib(b+1)
採用數學歸納法: b=1,Fib(a+b)=Fib(a+1)=Fib(a)+Fib(a1)=Fib(a1)Fib(1)+Fib(a)Fib(2)b=1, Fib(a+b)=Fib(a+1)=Fib(a)+Fib(a-1)=Fib(a-1)Fib(1)+Fib(a)Fib(2)

b=2,Fib(a+b)=Fib(a+2)=Fib(a+1)+Fib(a)=2Fib(a)+Fib(a1)=Fib(a1)Fib(2)+Fib(a)Fib(3)b=2, Fib(a+b)=Fib(a+2)=Fib(a+1)+Fib(a)=2Fib(a)+Fib(a-1)=Fib(a-1)Fib(2)+Fib(a)Fib(3)
對於更大的bb, 假設有結論對b1,b2b-1, b-2成立,則Fib(a+b)=Fib(a+b1)+Fib(a+b2)=Fib(a1)Fib(b1)+Fib(a)Fib(b)+Fib(a1)Fib(b2)+Fib(a)Fib(b1)=Fib(a1)(Fib(b2)+Fib(b1))+Fib(a)(Fib(b1)+Fib(b))=Fib(a1)Fib(b)+Fib(a)Fib(b+1)Fib(a+b)=Fib(a+b-1)+Fib(a+b-2)=Fib(a-1)Fib(b-1)+Fib(a)Fib(b)+Fib(a-1)Fib(b-2)+Fib(a)Fib(b-1)=Fib(a-1)(Fib(b-2)+Fib(b-1))+Fib(a)(Fib(b-1)+Fib(b))=Fib(a-1)Fib(b)+Fib(a)Fib(b+1)
因此假設成立。
然後考慮如何證明gcd\gcd: 首先gcd(Fib(n),Fib(n1))=1\gcd(Fib(n),Fib(n-1))=1 (數學歸納同樣可證),然後不妨設a>ba>b, 依然可以數學歸納證明,假設上式對於a,ba,b成立,則gcd(Fib(a+b),Fib(a))=gcd(Fib(a1)Fib(b)+Fib(a)Fib(b+1),Fib(a))=gcd(Fib(a1)Fib(b),Fib(a))=gcd(Fib(b),Fib(a))=Fib(gcd(a,b))=Fib(gcd(a+b,a))\gcd(Fib(a+b),Fib(a))=\gcd(Fib(a-1)Fib(b)+Fib(a)Fib(b+1),Fib(a))=\gcd(Fib(a-1)Fib(b),Fib(a))=\gcd(Fib(b),Fib(a))=Fib(\gcd(a,b))=Fib(\gcd(a+b,a)).
證畢。
推廣: 由於f(a+b)=f(a1)f(b)+f(a)f(b+1)f(a+b)=f(a-1)f(b)+f(a)f(b+1)對多種能表示成f(n)=af(n1)+bf(n2),(gcd(a,b)=1)f(n)=af(n-1)+bf(n-2), (\gcd(a,b)=1)的遞推關係式都適用,因此對於此類關係式都有gcd(f(a),f(b))=f(gcd(a,b))\gcd(f(a),f(b))=f(\gcd(a,b)).