Ćwiczenia z teoria licz, ciąg dalszy (pt 15 maja) Matematyka Dyskretna Przypomnienie: Mówimy a (a jest względnie pierwsze z ) jeśli NW D(a, ) = 1. (Zero jest podzielne przez każdą liczę naturalną, więc jest względnie pierwsze tylko z 1). Ziór licz względnie pierwszych z n oznaczamy Z n (na Wikipedii (Z/nZ) ). Mnożenie dwóch licz w Z n daje znowu liczę n. Dla każdej liczy a n istnieje dokładnie jedna licza a 1 taka, że aa 1 a 1 a 1 (mod n) (np. 1 3 mod 10 7, więc 2 3 mod 10 4 i rzeczywiście 4 3 mod 10 = 2; ale żadna licza pomnożona przez 2 nie da 1 mod 10, więc 2 1 mod 10 nie ma sensu, dokładnie tak jak dzielenie przez zero). Z tego wynika, że Z n tworzy grupę ze względu na mnożenie, czyli póki posługujemy się liczami względnie pierwszymi z n modulo n to można normalnie mnożyć i dzielić. Małe tw. Fermata: a p 1 1 (mod p) dla p pierwszego i a p (ten ostatni warunek znaczy po prostu, że a nie jest podzielne przez p, ale lepiej tak go zapamiętać). Ogólniej tw. Eulera a ϕ(n) 1 (mod n) dla a n. Tu ϕ(n) to licza licz względnie pierwszych z n, czyli ϕ(n) = Z n. Np. ϕ(p) = p 1 dla pierwszych p, o wszystkie liczy od 1 do p 1 są p. Generalnie łatwo pokazać ϕ(p α ) = p α p α 1 = p α (1 1 p ) oraz że dla a zachodzi ϕ(a ) = ϕ(a) ϕ(). Więc jak znamy rozkład liczy n = p α 1 1 pα 2 2, to łatwo policzyć φ(n) = n (1 1 p 1 ) (1 1 p 2 ). Np. φ(100) = φ(2 2 5 2 ) = 100 (1 1 2 ) (1 1 5 ) = 40. To w szczególności daje metodę na liczenie odwrotności modulo: jeśli a n, to a 1 a φ(n) 1 (mod n), no o iloczyn a φ(n) 1 a 1 (mod n) z tw. Eulera. Jeśli rozkładu nie znamy, to szysza metoda wynika z rozszerzonego algorytmu Euklides: skoro N W D(a, n) = 1, to znajduje on liczy x, y takie, że ax + ny = 1. Czyli ax 1 (mod n) i x (mod n) jest szukaną odwrotnością. Q1.: Udowodnij, że iloczyn trzech kolejnych licz naturalnych, z których środkowa jest sześcianem, dzieli się przez 504. Przypomnienie: ChTwoR mówi, że dla n = n 1 n 2 gdzie n i n j, mamy ijekcję między resztami mod n a ciągami reszt mod n i. Inaczej mówiąc każdy układ równań x a 1 (mod n 1 ), x a 2 (mod n 2 ), ma dokładnie jedno rozwiązanie x {0,..., n 1}. Q2.: Wiemy z tw. Eulera, że a 100 a φ(100) 1 (mod 100). Znajdź liczę 0 < λ < φ(100) = 40 taką, że a 100 a λ 1 (mod 100). Jak użytą metodę uogólnić do n innych niż 100? Q3.: Pokaż, że istnieje 2011 kolejnych licz naturalnych, z których każda jest podzielna przez jakiś sześcian.
A1.: Chcemy pokazać, że dla każdego n N zachodzi 504 (n 3 1)n 3 (n 3 + 1). Łatwo znaleźć rozkład 504 = 8 63 = 8 9 7, czyli wystarczy pokazać, że dla każdego n mamy 8 (n 3 1)n 3 (n 3 + 1) i 7 (n 3 1)n 3 (n 3 + 1) i 9 (n 3 1)n 3 (n 3 + 1) (czyli możemy się skupić na podzielności przez potęgę liczy pierwszej, a droniej już raczej trudno ędzie patrzeć, o z tego że dwa razy pokażemy podzielność przez 3 rzadko wynika podzielność przez 9). To, że 8 (n 3 1)n 3 (n 3 + 1) widać z tego, że alo n jest parzyste i wtedy 8 n 3, alo jest nieparzyste i wtedy jeden z nawiasów jest podzielny przez 4 a drugi przez 2 alo odwrotnie. Sproójmy pokazać 7 (n 3 1)n 3 (n 3 + 1). Jeśli 7 dzieli n to ok, a jeśli nie to może dzielić tylko (n 3 1)(n 3 + 1). Tu można zauważyć, że (n 3 1)(n 3 + 1) = n 6 1. Teraz z małego tw. Fermata wynika, że n 6 1 (mod 7), skoro n nie jest podzielne przez 7. Czyli rzeczywiście 7 n 6 1. Podonie dla 9 (n 3 1)n 3 (n 3 + 1): alo 3 dzieli n i jest ok, alo nie dzieli i wtedy n 3 nic nie pomoże. Czyli chcemy pokazać w tym drugim przypadku 9 n 6 1 i to rzeczywiście zachodzi z tw. Eulera, o założyliśmy, że 3 nie dzieli n oraz liczymy φ(9) = 9(1 1 3 ) = 6. Inne rozwiązanie to sprawdzić, że 1 3, 2 3,..., 9 1 3 (mod 9) przystają do 1, 0 lu 1, ale jest to w ogólności ardziej pracochłonne no i nie widać dlaczego się akurat tak zgodziło. A2.: Musimy jakoś skorzystać z a 100. Potrafimy z tw. Eulera powiedzieć, że wtedy np.: a φ(10) 1 (mod 10) a φ(4) 1 (mod 4) a φ(25) 1 (mod 25) No i jak y tu skorzystać z różnych kongruencji żey dostać jedną? Narzuca się ChTwoR: jeśli pokażemy, że a λ 1 1 (mod n 1 ) dla jakichś n 1 n 2, to z tego np. wynika, że a λ 2 1 (mod n 2 ) a λ 1λ 2 1 λ 2 1 (mod n 1 ) a λ 1λ 2 1 λ 1 1 (mod n 2 ) Z ChTwoR a λ 1λ 2 jest jedyną liczą (mod n 1 n 2 ), która daje reszty 1 (mod n i ), ale taką liczą jest 1, więc a λ 1λ 2 1 (mod n 1 n 2 ). Żey to wykorzystać musimy mieć n 1 n 2, więc możemy skorzystać tylko z kongruencji dla 4 i dla 25. I rzeczywiście φ(4) = 2, φ(25) = 20, czyli mamy a 2 1 (mod 4) a 20 1 (mod 25) Potegując pierwszą do dziesiątej dostaniemy a 20 1 (mod 4)
czyli z ChTwoR a 20 1 (mod 25) a 20 1 (mod 100) Więc λ = 20 spełnia warunki zadania. Ogólniej każdą liczę n możemy rozłożyć na n = p α 1 1 pα 2 2, użyć kongruencji i aφ(pα i ) 1 (mod p α i i ), wszystkie dopotęgować żey uzyskać wspólny wykładnik i użyć ChTwoR, żey dostać a NW W (φ(pα 1 1 ),φ(pα 2 2 ),... ) 1 (mod n) A3.: Jak stwierdzenie jest prawdziwe dla 2011, to jest też prawdziwe dla 2010, więc raczej w liczie 2011 nie ma nic specjalnego, chcemy po prostu pokazać, że można znaleźć dowolnie wiele kolejnych licz podzielnych przez sześcian. Jak nie mamy pomysłu można spróować to inaczej zapisać. Chcemy znaleźć taką liczę x, że n 3 0 dzieli x, n3 1 dzieli x + 1, i tak dalej, n3 i dzieli x + i. Czyli chcemy znaleźć liczę x, która spełnia różne podzielności, w jakimś sensie. Tu się powinno już narzucać ChTwoR. Szukamy takiej liczy x, że x i (mod n 3 i ) (dla i = 0,..., 2010 i dowolnych n i ). No i rzeczywiście, jeśli wyierzemy względnie pierwsze liczy n 0,..., n 2010 (a za takie możemy wziąć po prosu kolejne liczy pierwsze), to istnieje dokładnie jedno rozwiązanie x {0,..., n 3 0 n3 1 n3 2010 1} zestawu kongruencji x i (mod n3 i ). Q4.: Drzewo Sterna-Brocota zawierające nieskracalne ułamki powstaje w następujący sposó. Zaczynamy od ciągu [ 0 1, 1 0 ] (o 1 0 myślimy jako ). W każdym kroku między każde dwie kolejne liczy a a oraz wsadzamy liczę a+a +. Czyli po pierwszym kroku mamy [ 0 1, 1 1, 1 0 ], po kolejnych [ 0 1, 1 2, 1 1, 2 1, 1 0 ] [ 0 1, 1 3, 1 2, 2 3, 1 1, 3 2, 2 1, 3 1, 1 0 ] Można to też widzieć jako następujące drzewo: Pokaż, że: a) po każdym kroku liczy występują rosnąco. ) Wszystkie występujące ułamki są skrócone.
c) Jak znaleźć liczę w tym drzewie, jeśli istnieje? d ) Pokaż, że każdy nieskracalny ułamek jest w drzewie dokładnie raz.
A4.: a) Skoro konstrukcja jest indukcyjna, to dowód pewnie też. Jeśli po jakimś kroku mamy kolejno a < a, to wystarczy sprawdzić a < a+a + (i tak samo drugą stronę). Ale to jest równoważne a + a < a + a, czyli a < a, czyli a < a. (Formalnie 1 0 trzea y rozważyć osono, ale darujmy soie). ) Ułamek a jest skrócony wtw gdy a. Ale niestety taka teza nie przechodzi indukcyjnie. Trzea spróować ją przeformułować i wzmocnić. Teza znaczy to samo co NW D(a, ) = 1, więc może warto powiedzieć, że jest też równoważna stwierdzeniu, że istnieją liczy x, y N takie, że ax + y = 1. To może spełniają zawsze jakąś konkretną równość? Rzeczywiście kolejne liczy w ciągu wyglądają na powiązane i jak spojrzeć i popróować to widać, że zawsze dwie kolejne liczy po danym kroku spełniają a a = 1. I taka teza już łatwo przechodzi indukcyjnie. c) Skoro z a) wiemy, że liczy mniejsze od danej leżą na lewo od niej, większe na prawo, to można zroić wyszukiwanie inarne. Szukając x y zaczniemy od przedziału ( a, a ) = ( 0 1, 1 0 ) i testujemy środek. Jeśli x y < a+a +, to zmieniamy a := a + a ; := +, jeśli > to zmieniamy analogicznie a,, jeśli równe to znaleźliśmy. Zachowujemy tu niezmiennik, że a < x y < a oraz a, a są kolejnymi liczami w ciągu po kolejnym kroku. Podonie można szukać przyliżeń dowolnej liczy rzeczywistej: szukamy tym algorytmem i kończymy po małej liczie kroków. Właśnie po to oryginalnie Brocot wymyślił to drzewo, o potrzeował przyliżać rzeczywiste stosunki ilorazami licz zęów w kołach zęatych. d) Generalnie łatwo zauważyć, że ułamki w kolejnych krokach rosną, konkretnie na pewno jedna z licz a, a,, w każdym kroku algorytmu rośnie i żadna nie maleje. Więc wystarczyłoy znaleźć takie wyrażenie rosnące razem z nimi, które yłoy ograniczone z góry przez coś zależącego tylko od x i y gdyy taki niezmiennik ył spełniony, to liczy nie mogłyy rosnąć dowolnie, więc algorytm musiały kiedyś skończyć. Możemy spróować z znanych już niezmienników coś wywnioskować: a < x y < a oraz a a = 1 dają nam dwie nierówności i równość, więc mamy dużą szansę znaleźć odpowiednią kominację liniową. Chcemy tylko wyrażenia rosnące z a,, a,, więc nierówności przedstawmy jako ay < x, x < a y, korzystając z całkowitości 1 + ay x, 1 + x a y. Oddzielić zależność od a,, a, od zależności od x, y możemy iorąc następującą kominację liniową: mnożymy pierwszą nierówność przez a, drugą przez a i dodając mamy: a+a +a ay+a x a x + aa y, o teraz stosując równość z ) i skracając mamy a + a (a a )x = x. Podonie mnożąc przez i dostaniemy + (a a )y = y. Czyli a + a + + x + y. Wyrażenie po lewej rośnie w każdym kroku, po prawej się nie zmienia, ale nierówność jest spełniona w każdym kroku, więc kroków jest skończenie wiele, czyli w co najwyżej x + y krokach znajdziemy ułamek x y w drzewie. Na wiki jest naszkicowane jak ścieżka w drzewie odpowiada ułamkowi łańcuchowemu, co daje inny dowód, może ardziej konkretny i naoczny, że znajdziemy liczę x y gdzieś w drzewie. Tak więc liczy wymierne można reprezentować jako ciąg 0-1 mówiący czy idziemy w lewo czy w prawo w drzewie, co może się przydać w scenariuszach gdzie potrzeujemy porównywać, wyszukiwać i przyliżać liczy skróconymi, możliwie krótkimi ułamkami.