teoria liczb
maniek: mógłby ktoś pomóc w nauczeniu się kongruencji ?
a) 6x = 3 mod 9
b) 2000x = 3 mod 643
28 lip 23:59
Vax: Jasne, generalnie trzeba tutaj wiedzieć, że kongruencja liniowa ax = b (mod c) ma rozwiązanie
wtedy i tylko wtedy, gdy nwd(a,c) | b. Dodatkowo, jeżeli masz kongruencje ax = b (mod c) i
istnieje takie n, że n | a,b,c, to nasza kongruencja jest równoważna (a/n)x = b/n (mod c/n).
Łatwo to się uzasadnia, jeżeli a = na' , b = nb' , c = nc', to mamy równoważnie n(a'x−b') = 0
(mod c'n) a to jest równoważne a'x−b' = 0 (mod c') ⇔ a'x = b' (mod c'). Czyli np mając 6x = 3
mod 9 jest to równoważne 2x = 1 mod 3 /*2 ⇔ 4x = 2 mod 3 ⇔ x = 2 mod 3. Dodatkowo jeżeli (a,b)
= 1, to istnieje element odwrotny do a mod b (zapisuje się to po prostu a
−1 mod b), czyli
taka liczba k, że a*k = 1 mod b, wyznaczamy go przy pomocy rozszerzonego algorytmu Euklidesa.
No to np tą 2 kongruencje rozwiązujemy tak, że:
2000 = 71 mod 643, więc 2000x = 3 mod 643 ⇔ 71x = 3 mod 643, z rozszerzonego algorytmu
Euklidesa wyznaczamy, że 71
−1 = 480 mod 643, więc 71x = 3 mod 643 /*480 ⇔ x = 154 mod 643.
Jakbyś miał jeszcze jakieś pytania pisz
29 lip 02:35
maniek: 1) 2x = 1 mod 3 / * 2 ⇔ 4x = 2 mod 3
po co mnożymy tutaj przez dwa? i dlaczego to jest równoważne x = 2mod 3 ?
29 lip 02:53
maniek: 2) 2000 = 71 mod 643, więc 2000x = 3 mod 643
skąd ta trójka? oraz wyżej napisałeś "dodatkowo (a, b) = 1" − co to oznacza?
29 lip 03:00
Vax: Mamy 2x = 1 mod 3 i chcemy przemnożyć przez taką liczbę, żeby przy x stała 1, (czyli przez
element odwrotny do 2 mod 3). Zauważ, że 2*2 = 4 = 1 mod 3, czyli mnożąc przez x dostajemy 4x
= x mod 3, więc 2x = 1 mod 3/*2 ⇔ 4x = 2 mod 3 ⇔ x = 2 mod 3
29 lip 03:00
Vax: Tą trójkę masz podaną w przykładzie, a (a,b) to skrót od nwd(a,b).
29 lip 03:01
maniek: no ok, a skąd bierze się to 71 ? tj.: 2000x = 2 mod 643 ⇔ 71x = 3 mod 643 ?
29 lip 03:04
Vax: Bo 2000 = 71 mod 643 więc mnożąc przez x dostajesz 2000x = 71x mod 643.
29 lip 03:05
maniek: ok to chyba rozumiem dziękuje
a jak rozwiązać taki układ ? :
⎧ | 2x = 1 mod 3 | |
⎨ | 3x = 1 mod 4 |
|
⎩ | 5x = 4 mod 7 | |
29 lip 03:10
Vax: Każdą z kongruencji mnożymy przez taką liczbę, aby przy x dostać 1, czyli:
{2x =1 mod 3/*2
{3x = 1 mod 4/*3
{5x = 4 mod 7/*3
⇔
{x = 2 mod 3
{x = 3 mod 4
{x = 5 mod 7
Z pierwszej kongruencji wynika, że x = 3t + 2 dla dowolnego całkowitego t, wstawiamy to do 2
kongruencji:
3t+2 = 3 mod 4/−2 ⇔ 3t = 1 mod 4/*3 ⇔ t = 3 mod 4
A to oznacza, że t = 4k+3 dla dowolnego całkowitego k, więc x = 3t+2 = 3(4k+3)+2 = 12k+11,
wstawiamy to do ostatniej kongruencji:
12k+11 = 5 mod 7/−11 ⇔ 12k = −6 mod 7, ale −6 = 1 mod 7 oraz 12k = 5k mod 7, więc jest to
równoważne 5k = 1 mod 7/*3 ⇔ k = 3 mod 7 czyli k = 7n+3 dla dowolnego całkowitego n,
ostatecznie rozwiązaniem jest x = 12k+11 = 12(7n+3)+11 = 84n+47 dla dowolnego całkowitego n.
29 lip 03:15
maniek: 1 i 2 rozumiem
natomiast 5x = 4 mod 7 /* 3 dlaczego x = 5 mod 7, skąd ta piątka?
29 lip 03:20
maniek: 12 mod 7 = 5 mod 7
teraz rozumiem
29 lip 03:21
Vax: Tak
I przy okazji nie trzeba przy każdej liczbie pisać mod coś, wystarczy dodać to na końcu,
tj u nas 12 = 5 mod 7, przy dłuższych przykładach mocno skraca to zapis, bo znak równości
możemy pisać wielokrotnie
29 lip 03:24
maniek: to mam jeszcze jedno zadanie:
Mając dane a, b ∊ ℤ oraz m, n ∊ N
+ podaj warunek konieczny, aby układ
⎧ | x = a mod m | |
⎩ | x = b mod n |
|
miał rozwiązanie.
29 lip 03:25
Vax: Z 1 równania mamy x = mk+a dla dowolnego k ∊ ℤ, więc wstawiając do 2 dostajemy mk+a = b mod n ⇔
m*k = b−a mod n a to jak wiemy ma rozwiązanie wtedy i tylko wtedy, gdy nwd(m,n) | b−a (pisałem
w 1 poście, że kongruencja ax = b mod c ma rozwiązanie wtedy i tylko wtedy, gdy nwd(a,c) | b)
Przy okazji widzimy, że jest to warunek konieczny i wystarczający, tj mamy relację
równoważności tutaj
29 lip 03:31
maniek: czemu nie mogłem na to wpaść od początku
dziękuję ci bardzo za pomoc, dobranoc
29 lip 03:35
Vax: Dobranoc.
29 lip 03:37
maniek: to jeszcze tak dla bezpieczeństwa zapytam, dlaczego w tym układzie
⎧ | 2x = 1 mod 3/*2 | |
⎨ | 3x = 1 mod 4/*3 |
|
⎩ | 5x = 4 mod 7/*3 | |
mnożymy przez 2, 3, 3, wolę upewnić się czy dobrze myślę
29 lip 23:15
Vax: Chcemy przy każdej kongruencji przy x mieć współczynnik 1, przy małych ,,mod" możemy na palcach
sprawdzić przez co trzeba przemnożyć daną kongruencję, aby dostać 1, np mając 5x = 4 mod 7,
jeżeli przemnożylibyśmy przez 2 dostalibyśmy 10x = 8 mod 7 czyli 3x = 1 mod 7, czyli mamy 3, a
chcemy mieć 1, sprawdzamy czy zadziała jak przemnożymy przez 3, istotnie wtedy mamy 15x = 12
mod 7 czyli x = 5 mod 7.
Dla większych modulo oczywiście nie sprawdzamy tego na palcach bo to bez sensu, stosujemy
rozszerzony algorytm Euklidesa, który ma logarytmiczną złożoność, więc jest ,,dość" szybki
29 lip 23:32
maniek: nie widzę jak otrzymujemy tą 1 i jak to sprawdzasz 10x = 8 mod 7 czyli 3x = 1 mod 7, dlaczego
otrzymujemy 3? 8 mod 7 = 1, skad ta trójka ?
29 lip 23:59
maniek: można liczyć na odpowiedź? dlaczego one są równe?
30 lip 23:59
maniek: najlepszym pomysłem jest chyba zrobienie jednego całego przykładu
a) 3x + 2 = 1 mod 5
3x = −1 mod 5
i teraz tak jak pisałeś muszę pomnożyć przez element odwrotny, czyli 3−1 mod 5, ale ile to
będzie wynosiło ?
31 lip 02:51
Vax: 3{−1 = 2 mod 5, bo 3*2 = 1 mod 5, więc 3x = −1 mod 5 /*2 ⇔ x = −2 = 3 mod 5
A to 10x = 8 mod 7 ⇔ 3x = 1 mod 7 wynika stąd, że 10x = 3x mod 7 oraz 8 =1 mod 7.
31 lip 07:21
maniek: 3{−1 = 2 mod 5 ? co to ma dokładnie oznaczać ?
31 lip 15:27
Vax: Przez a−1 mod b oznaczamy taką wartość t, że a*t = 1 mod b, czyli 3−1 mod 5 to taka
liczba x, że 3x = 1 mod 5, jak łatwo sprawdzić x = 2 mod 5.
31 lip 16:43
maniek: przepraszam Cię, ale jeszcze nic z tego nie rozumiem
3x + 2 = 1 mod 5
3x = −1 mod 5
i mógłyś teraz w krokach napisać co należy po kolei zrobić? jak wyznacza się to a
−1 od
początku do końca, jakiś schemat na to jest? bo nic nie widzę
1 sie 00:37
Vax: Jak pisałem, przy małych modulo najszybciej liczyć na palcach, chcemy znaleźć taką liczbę, aby
mnożąc 3 przez nią dostać 1 mod 5. Sprawdzamy czy jest nią 1:
3 * 1 = 3, to jest różne od 1 mod 5, sprawdzamy 2:
3*2 = 6, ale 6 = 1 mod 5, czyli elementem odwrotnym do 3 mod 5 jest 2, więc mając:
3x = −1 mod 5
mnożymy obie strony przez 2 i dostajemy:
x = −2 mod 5
Ale −2 = 3 mod 5, więc:
x = 3 mod 5 i takie jest rozwiązanie.
1 sie 00:43
maniek: pierwsze pytanie
wejściowa postać to 3x + 2 = 1 mod 5
przkeształcona na 3x = −1 mod 5
dlaczego w swoim rozwiązaniu napisałeś "3 przez nią dostać 1 mod 5" ?
drugie pytanie
jezeli to jest prawdziwe to chodzi o to ze podstawiamy kolejne liczby i sprawdzamy rownanie?
a) 1 : 3 * 1 = 1 mod 5 , nie
b) 2: 3 * 2 = 1 mod 5, 5 * 1 + 1 = 6, czyli się chyba zgadza o to chodzi?
trzecie pytanie
dlaczego mnożymy przez 2, czyli jeżeli mamy liczbę 3 * 2, to 3 jest a, a dwójka to a
−1 ?
czwarte pytanie
dlaczego po przemnożeniu przez 2 dostaliśmy x = −2 mod 5 ?, dlaczego znikneła trójka?
piąte pytanie
czy rozwiązaniem nie jest już x = −2 mod 5? i jak to przeksztalcic na liczbę x = 3 mod 5,
dlaczego to jest równe ?
przepraszam za ten nawał pytań ale bardzo mi na tym zależy
1 sie 00:54
Vax:
1) nie rozumiem pytania
2) tak
3) Tak, mając jakiś element a (u nas a=3) przez a
−1 mod b, oznaczamy taką liczbę, że a *
a
−1 = 1 mod b (u nas a
−1=2)
4) Mamy 3x = −1 mod 5. Mnożąc obustronnie przez 2 dostajemy 6x = −2 mod 5, ale 6x = x (mod 5)
(widzisz czemu ? Po odjęciu obustronnie x jest to równoważne 5x = 0 (mod 5) co jest prawdą, bo
dla dowolnego całkowitego x zachodzi 5 | 5x), oraz −2 = 3 mod 5, gdyż jest to równoważne (po
dodaniu obustronnie 2) 0 = 5 mod 5, co jest prawdą, bo 5 | 5, więc skoro mamy 6x = −2 mod 5,
oraz wiemy, że 6x = x mod 5 oraz −2 = 3 mod 5 możemy napisać x = 3 mod 5.
5) Na to odpowiedziałem wyżej
1 sie 01:00
maniek: rozumiem z ostatniego postu prawie wszystko prócz:
"więc skoro mamy 6x = −2 mod 5, oraz wiemy, że 6x = x mod 5 oraz −2 = 3 mod 5 możemy napisać x
= 3 mod 5."
1 sie 01:06
Vax: Po prostu jeżeli mamy a = b mod c, to możemy to równoważnie zapisać (a mod c) = b mod c, tak
samo a = (b mod c) mod c, albo (a mod c) = (b mod c) mod c, czyli konkretnie mówiąc możemy
manipulować lewą, lub prawą lub obiema stronami dodając/odejmując wielokrotności c, czyli
mając 6x mod 5, możemy to zapisać jako x mod 5, bo 5x jakby nie patrzeć jest wielokrotnością
5, więc 6x = 6x − 5x = x mod 5
1 sie 01:10
Vax: A tymczasem idę już spać, jakbyś miał jeszcze jakieś pytania/wątpliwości pisz, później postaram
się odpisać.
1 sie 01:13
maniek: chyba z tym ostatnim punktem musze się przespać, to wracając do początkowego przykładu:
a) 6x = 3 mod 9
2x = 1 mod 3
tak jak napisałeś podstawiam po kolei:
dla x = 2 jest 3 * 1 + 1 = 4
2x = 1 mod 3 / * 2
x = 2 mod 3
czy mogę automatycznie pisać już tę równość przy mnożeniu?
1 sie 01:16
maniek: dziękuję za pomoc i jakbyś mógł poźniej odpisać na powyższe pytanie
1 sie 01:27
Vax: Tak, możesz automatycznie z 2x=1 mod 3 przechodzić do x = 2 mod 3.
1 sie 11:54
maniek: ok dziękuję, a taki przykład:
5x = 2 mod 11
7: 3 * 11 + 2 = 35 = 5 * 7
5x = 2 mod 11 /* 7
x = 14 mod 11
i to jest ostateczna odpowiedź ?
1 sie 13:58
Vax: Nie, przecież 5*7 = 35 = 2 mod 11, a my chcemy mieć 1. Zauważ, że 5*9 = 45 = 1 mod 11, więc
należy nasze równanie przemnożyć przez 9:
5x = 2 mod 11/*9
45x = 18 mod 11
x = 7 mod 11
1 sie 14:44
maniek: ale jak to chcemy mieć jeden?
5 * 7 = 3 * 11 + 2
5 * 9 = 4 * 11 + 1
to tak spełnia, czyli musze zawsze rozwiązywać dla ax = 1 mod b, tak? i to co otrzymamy
przemnażamy przez ta cala liczbe
45x = 18 mod 11 − to jeszcze rozumiem
x = 7 mod 11 − to skąd ? jest chyba inne niz przyklady wyzej
1 sie 14:51
Vax: Kolejno:
Pierwszy krok, zauważamy, że: 45 = 1 mod 11
Drugi: Mnożymy 45=1 mod 11 obustronnie przez x i dostajemy: 45x = x mod 11
Mamy równość 45x = 18 mod 11
Ale wiemy, że 45x = x mod 11
Więc możemy w równości 45x = 18 mod 11 wartość 45x zastąpić przez x, bo 45x = x mod 11
Więc x = 18 mod 11
Ale 18 = 7 mod 11
Więc możemy równości x = 18 mod 11 wartość 18 zastąpić przez 7:
x = 7 mod 11
Widzisz już o co chodzi?
1 sie 14:55
maniek: chyba już tak
, w końcu, dziekuje
w układzie równań z 29 lipc 03:10, tak samo? rozwiazujemy
ax = 1 mod b, dla kazdego przypadku?
a) 2 * 2 = 4 = 3 * 1 + 1 = 1 mod 3
b) 3 * 3 = 9 = 4 * 2 + 1 = 1 mod 4
c) 3 * 5 = 15 = 7 * 2 + 1 = 1 mod 7
o to chodziło ?
1 sie 15:02
Vax: Tak jest, dlatego w tamtym układzie mnożymy te równania przez 2,3,3, żeby we wszystkich 3
kongruencjach przy x mieć 1
1 sie 15:04
maniek: to został tylko do zrozumienia ten przykład b) 2000x = 3 mod 643
czy go da się zrobić tak jak wyżej opisałeś te kroki?
1 sie 15:16
maniek:
1 sie 15:52