matematykaszkolna.pl
liczby Pyra: Wyznacz wszystkie pary liczb naturalnych (a, b) takich ze 1 ≤a, b ≤ 2000 oraz (a2−ab−b2)2=1.
2 sie 12:08
MilEta: 1 1 2 1 3 2 5 3 8 5 13 8 21 13 34 21 55 34 89 55 144 89 233 144 377 233 610 377 987 610 1597 987
2 sie 12:20
MilEta: Kod w Python jakby co: for i in range(1,2001): for j in range(1,2001): if (i**2−i*j−j**2)**2 == 1: print(i,j)
2 sie 12:21
Pyra: To zadnie jest z Teorii liczb, a nie programowania.
2 sie 12:24
MilEta: To powodzonka! emotka Wiesz już czego szukać, i jak widać rozwiązań jest wiele. Gdyby np były 2 rozwiazania to by było warto pomyśleć, tak można sie domyśleć że będzie sporo przypadków
2 sie 12:53
MilEta: Oczywiście warto zacząć od: a2−ab−b2 = 1 lub a2 − ab − b2 = −1
2 sie 13:00
MilEta: a2 − ab − b2 = 1 to z tego już wynika że a2 > ab + b2 (z tego też wynika że a2 > b2 a zatem a > b) Niech a = b+k, k>0 (b+k)2−(b+k)b−b2 = 1 b2 + 2bk + k2 − b2 − bk − b2 = 1 bk + k2 − b2 =1 z tego wynika że k2 − b2 < 0 a zatem k2 < b2 więc k < b Zatem już wiemy że warto sprawdzać tylko takie pary (a,b) gdzie a∊(b,2b) Pobaw sie dalej
2 sie 13:11
MilEta: (oczywiscie prócz przypaku gdy b=k=1 i wtedy a =2) Do tego a, b nie mogą być równocześnie parzyste. Dlaczego Wrzuć swoje rozwiązanie to sprawdzimy
2 sie 13:15
2 sie 14:46
MilEta: rzeczwyiście, jak sie tak popatrzy to kolejne a i kolejne b to wyrazy ciagu fibonacciego emotka
2 sie 15:09
MilEta: Czyli można udowodnić takie twierdzenie: Jeżeli a, b spełniają równość to a+b i a też Z założenia (a2−ab−b2)2 = 1 Sprawdzamy teraz a+b i a ((a+b)2 − (a+b)a − a2)2 = (a2+2ab+b2 − a2 − ab − a2)2 = (b2+ab−a2)2 = (a2−ab−b2)2 i rzeczywiscie jest to równe 1 (z założenia) Zatem tak, wyrazy ciągu Fibonnaciego spełniają to równanie (w taki rekurencyjny sposob). czyli 1,1 i potem 2, 1 i potem 3, 2 itd Pasowaloby pokazac jeszcze, ze to wszystkie (nie ma innych)
2 sie 15:24