m mod
Transkrypt
m mod
Jednoznaczność dzielenia TWIERDZENIE: M Niech m i n całkowite, n 6= 0. Wtedy istnieje dokładnie jedna para liczb całkowitych k i ℓ taka że m = n · k + ℓ oraz 0 ¬ ℓ < |n| Terminologia: m — dzielna n — dzielnik k — iloraz ℓ — reszta Sytuacja dla m 0 i n > 0: k n }| z ) n }| {z R n }| {z ℓ }| {z { - m 0 Na przykład: 13 = 5 · 2 + 3 oraz 0 ¬ 3 < 5 Wykład 2, 14 X 2008, str. 2 Jednoznaczność dzielenia TWIERDZENIE: M Niech m i n całkowite, n 6= 0. Wtedy istnieje dokładnie jedna para liczb całkowitych k i ℓ taka że m = n · k + ℓ oraz 0 ¬ ℓ < |n| Terminologia: m — dzielna n — dzielnik k — iloraz ℓ — reszta Sytuacja dla m ¬ 0 i n > 0: k ℓ z }| { z n }| ) {z n }| R {z n }| q {z n }| m Na przykład: −13 = 5 · (−3) + 2 oraz 0 ¬ 2 < 5 { 0 Ostrzeżenie komputerowe Na liczbach ujemnych dzielenie komputerowe czasem odchodzi od tego wzorca. Testowy program w C: #include<stdio.h> void iloraz_reszta (int m, int n) { printf("%3i = (%2i)*(%2i) + (%2i)\n", m, n, m/n, m%n); } main() { int m, n; m = 13; n = 5; iloraz_reszta(m,n); m = -13; n = 5; iloraz_reszta(m,n); m = 13; n = -5; iloraz_reszta(m,n); m = -13; n = -5; iloraz_reszta(m,n); } Wykład 2, 14 X 2008, str. 4 Ostrzeżenie komputerowe Na liczbach ujemnych dzielenie komputerowe czasem odchodzi od tego wzorca. Mój komputer: 13 -13 13 -13 = = = = ( 5)*( 2) ( 5)*(-2) (-5)*(-2) (-5)*( 2) Arytmetyka z twierdzenia: + + + + ( 3) (-3) ( 3) (-3) −13 −13 −13 −13 = = = = (−5) ∗ (−2) (−5) ∗ (−3) (−5) ∗ (−2) (−5) ∗ (−3) + + + + (−3) (−2) (−3) (−2) W języku C na moim komputerze znak reszty jest taki sam jak znak dzielnej a iloraz jest do tego dostosowany. Pozycyjne systemy liczbowe TWIERDZENIE: M Niech n i m naturalne, m 2. Wtedy istnieje dokładnie jeden rozkład liczby n na sumę potęg m ze współczynnikami n = a0 + a1 · m + a2 · m2 + . . . + ak · mk takimi, że 0 ¬ ai < m dla i ∈ {0, 1, . . . , k} . Dowód: Indukcja ze względu na n. Przyp. n = 0: oczywisty. Przyp. n > 0: Z twierdzenia o jednoznaczności dzielenia istnieje dokładnie jedna para liczb (c1 , a0 ), takich że n = a0 + c1 · m i 0 ¬ a0 < m . Przy tym c1 < n, więc stosuje się założenie indukcyjne: c1 = a1 + a2 · m + . . . + ak · mk−1 i 0 ¬ ai < m dla wszystkich i. Wobec tego: n = a0 + c1 · m = a0 + (a1 + a2 · m + . . . + ak · mk−1 ) · m = a0 + a1 · m + a2 · m2 + . . . + ak · mk Wykład 2, 14 X 2008, str. 6 Pozycyjne systemy liczbowe TWIERDZENIE: M Niech n i m naturalne, m 2. Wtedy istnieje dokładnie jeden rozkład liczby n na sumę potęg m ze współczynnikami n = a0 + a1 · m + a2 · m2 + . . . + ak · mk takimi, że 0 ¬ ai < m dla i ∈ {0, 1, . . . , k} . Zapis liczby w układzie pozycyjnym: m — podstawa układu; a0 , a1 , a2 , . . . ak — cyfry Za co kochamy układy pozycyjne? Przykład układu niepozycyjnego: liczby rzymskie. Zadanie: wykonać proste mnożenie XXXIV × XVI ???? Pozycyjne systemy liczbowe Dla ludzi – system dziesiętny: 156 = 1 · 102 + 5 · 10 + 6 Dla komputerów – system binarny (dwójkowy): 156 = 1 · 27 + 0 · 26 + 0 · 25 + 1 · 24 + 1 · 23 + 1 · 22 + 0 · 2 + 0 Albo system heksadecymalny (szesnastkowy): 156 = 9 · 16 + 12 = 9 · 16 + C Dodatkowe cyfry dla układu szesnastkowego: 10 = A 11 = B 12 = C 13 = D 14 = E 15 = F Wykład 2, 14 X 2008, str. 8 Pozycyjne systemy liczbowe System szesnastkowy stosuje się m. in. do opisywania kolorów. Trzy kolejne cyfry szesnastkowe oznaczają ilości składowych kolorów podstawowych czerwonego (red) zielonego (green) niebieskiego (blue) w danej barwie. Barw jest więc 163 = 4096. 000 080 0F0 008 088 0F8 00F 08F 0FF 800 880 8F0 808 888 8F8 80F 88F 8FF F00 F80 F08 F88 F0F F8F FF0 FF8 FFF Zapis jednej cyfry szesnastkowej zajmuje 4 bity; więc zapis jednego koloru zajmuje 3 · 4 = 12 bitów. Stosuje się również większą głębię barw, po dwie cyfry szesnastkowe na kolor podstawowy — to wymaga poświęcenia 24 bitów na barwę i daje ok. 224 ≈ 17 mln różnych barw. Arytmetyka reszt (arytmetyka modulo n) Niech n 2. DEFINICJA: (relacja modulo n) M Dwie liczby całkowite p i q są równe modulo n jeśli równe są reszty z ich dzielenia przez n: def p ≡n q ⇐⇒ p mod n = q mod n Fakt: M p ≡n q ⇐⇒ p − q jest podzielne przez n. Fakt: M Relacja ≡n jest relacją równoważności na Z; t.zn. jest • zwrotna: p ≡n p • symetryczna: jeśli p ≡n q to q ≡n p • przechodnia: jeśli p ≡n q i q ≡n r to p ≡n r Relacja równoważności pozwala podzielić zbiór Z na klasy abstrakcji: do każdej klasy wchodzą liczby o tej samej reszcie z dzielenia przez n. Wykład 2, 14 X 2008, str. 10 Arytmetyka reszt (arytmetyka modulo n) ......................... ............. 3 ...................... ........ ...... . . . . . ..... .. .... .4 2...... . . . . ... . ... ... ... .. ... ... ... ... .... .. .5. 1 .. .. ... ... ... . ... .. ... . ... ... .... ... . ..... . . 6......... ....0 ....... .......... . . . . . . . . ............................................ 7 8 Sklejamy liczby całkowite: n − 1 = −1 n=0 n+1=1 ··· 9 Inaczej: każdą liczbę m zastępujemy przez m mod n — resztę z dzielenia m przez n Arytmetyka liczb całkowitych na komputerze jest arytmetyką reszt (patrz niżej). Arytmetyka reszt (arytmetyka modulo n) Sklejenie „modulo” jest rozdzielne względem dodawania, odejmowania i mnożenia liczb całkowitych: • (m + k) mod n = (m mod n + k mod n) mod n (13 + 4) mod 8 = (13 mod 8 + 4 mod 8) mod 8 = (5 + 4) mod 8 = 9 mod 8 = 1 • (m − k) mod n = (m mod n − k mod n) mod n (13 − 26) mod 8 = (13 mod 8 − 26 mod 8) mod 8 = (5 − 2) mod 8 = 3 mod 8 = 3 • (m · k) mod n = (m mod n · k mod n) mod n (13 · 26) mod 8 = (13 mod 8 · 26 mod 8) mod 8 = (5 · 2) mod 8 = 10 mod 8 = 2 Wykład 2, 14 X 2008, str. 12 .................... ............... 3 ........................ ........ ...... . . . . . ..... ... .... −4 2....... . . . . . ... ... ... ... ... ... ... ... ... .. . . ... −3 1 ... . ... . ... . ... .. . ... ... ... ... .... . . ..... .... ..... −2 .....0 . ........ . . . . . ... ............ ........................................... −1 dodatnie ujemne Arytmetyka komputerowa arytmetyka 3-bitowa, czyli modulo 23 = 8 Arytmetyka liczb całkowitych w języku C w moim komputerze jest czterobajtowa; to znaczy modulo (28 )4 = 28·4 = 232 . Dlatego wg niego 65536 · 65535 = −65536 bo 65536 = 216 (216 · (216 − 1)) mod 232 = (232 − 216 ) mod 232 = −216 mod 232 Ustalanie podzielności przy pomocy arytmetyki reszt TWIERDZENIE: M Reszta z dzielenia liczby m ∈ N przez 9 jest równa reszcie z dzielenia sumy cyfr liczby m przez 9. Dowód: Niech m0 , m1 , . . . , mp będą cyframi dziesiętnymi liczby m; t.zn.: m = m0 + m1 · 10 + m2 · 102 + . . . + mp · 10p Ponieważ 10 mod 9 = 1, więc m mod 9 = (m0 + m1 · 10 + m2 · 102 + . . . + mp · 10p ) mod 9 = (m0 + m1 · 1 + m2 · 12 + . . . + mp · 1p ) mod 9 = (m0 + m1 + m2 + . . . + mp ) mod 9 Wniosek: M Liczba m ∈ N dzieli się przez 9 bez reszty wtedy i tylko wtedy, gdy jej suma cyfr dzieli się przez 9 bez reszty: 9 | m ≡ 9 | (m0 + m1 + m2 + . . . + mp ) Wykład 2, 14 X 2008, str. 14 Ustalanie podzielności przy pomocy arytmetyki reszt Oznaczenie: n | m — n dzieli m (lub: m dzieli się przez n bez reszty) Wniosek: M 2 | n ⇐⇒ liczba złożona z ostatniej cyfry n dzieli się przez 2 4 | n ⇐⇒ liczba złożona z ostatnich dwóch cyfr n dzieli się przez 4 5 | n ⇐⇒ ostatnią cyfrą liczby n jest 0 lub 5 3 | n ⇐⇒ suma cyfr liczby n dzieli się przez 3 9 | n ⇐⇒ suma cyfr liczby n dzieli się przez 9 11 | n ⇐⇒ naprzemienna suma cyfr liczby n dzieli się przez 11 Przykład: M Czy 11 | 1234567890? 11 | 1234567890 ⇐⇒ 11 | (−1 + 2 − 3 + 4 − 5 + 6 − 7 + 8 − 9 + 0) ⇐⇒ 11 | (−5) ⇐⇒ false Liczby pierwsze, względnie pierwsze, NWD DEFINICJA: M Liczba naturalna p 2 jest pierwsza, jeśli dla dowolnej n 1 z n | p wynika, że n = 1 lub n = p . Przykład: M Kolejne liczby pierwsze: 2 3 5 7 11 13 17 19 23 29 31 37 41 ... Wykład 2, 14 X 2008, str. 16 Liczby pierwsze, względnie pierwsze, NWD DEFINICJA: M Liczba naturalna p 1 jest największym wspólnym dzielnikiem liczb całkowitych m i n, jeśli • p | m i p | n, • z q | m i q | n wynika, że q | p . Oznaczenie: p = NWD(m, n) Przykład: M NWD(12, 18) = 6 NWD(75, 90) = 15 NWD(21, 110) = 1 Liczby pierwsze, względnie pierwsze, NWD DEFINICJA: M Liczby naturalne m i n są względnie pierwsze, jeśli NWD(m, n) = 1 . Przykład: MNWD(12, 18) = 6 — więc 12 i 18 nie są względnie pierwsze NWD(75, 90) = 15 — więc 75 i 90 nie są względnie pierwsze NWD(21, 110) = 1 — więc 21 i 110 są względnie pierwsze TWIERDZENIE: M Jeśli m i n są względnie pierwsze i m | (n · k) to m | k . Przykład: M Ponieważ NWD(9, 5) = 1 i 9 ∤ 11 to 9 ∤ 55 . Wykład 2, 14 X 2008, str. 18 Liczby pierwsze, względnie pierwsze, NWD TWIERDZENIE: (jednoznaczność rozkładu na czynniki pierwsze) M Dowolną liczbę naturalną m > 1 można jednoznacznie przedstawić w postaci iloczynu m = p1 · p2 · . . . · pn gdzie p1 ¬ p2 ¬ . . . ¬ pn i liczby p1 ,p2 ,. . . ,pn są pierwsze. Przykład: M 180 = 2 · 2 · 3 · 3 · 5 1530 = 2 · 3 · 3 · 5 · 17 TWIERDZENIE: M NWD(m, n) jest iloczynem liczb pierwszych występujących zarówno w rozkładzie na czynniki pierwsze liczby m jak liczby n. Przykład: M NWD(180, 1530) = 2 · 3 · 3 · 5 = 90 Wyznaczanie NWD — algorytm Euklidesa 1. NWD(n, 0) = n 2. jeśli n > m to NWD(n, m) = NWD(m, n mod m) 3. jeśli n < m to NWD(n, m) = NWD(m, n) Przykład: M NWD(504, 2940) 3 = NWD(2940, 504) 2 = NWD(504, 2940 mod 504) = NWD(504, 420) 2 = NWD(420, 504 mod 420) = NWD(420, 84) 2 = NWD(84, 420 mod 84) = NWD(84, 0) 1 = 84 Wykład 2, 14 X 2008, str. 20 Chińskie twierdzenie o resztach TWIERDZENIE: (o wyznaczaniu liczby jeśli znane są reszty — Sun Tzu, III w.n.e.) M Niech p1 , p2 , . . . , pn będą liczbami parami względnie pierwszymi (czyli każda z każdą). Dla każdej n-tki liczb 0 ¬ q1 < p 1 0 ¬ q2 < p 2 ... 0 ¬ qn < p n istnieje liczba całkowita q taka, że q mod p1 = q1 q mod p2 = q2 ... q mod pn = qn Wszystkie takie liczby są równoważne modulo q1 · q2 · . . . · qn . Chińskie twierdzenie o resztach Przykład: (Qin Jiushao, Dziewięć działów sztuki liczbowej, 1247) M Złodzieje ukradli ryż z trzech beczek. Początkowo było tyle samo ryżu w każdej beczce, nie więcej niż 3000 ho, ale nie wiadomo po ile. • w beczce I pozostało 1 ho, a złodziej czerpał z niej czerpakiem mieszczącym 11 ho, • w beczce II pozostało 11 ho, a złodziej czerpał z niej chodakiem mieszczącym 17 ho, • w beczce III pozostało 1 ho, a złodziej czerpał z niej miseczką mieszczącą 13 ho. Ile ryżu było początkowo w każdej beczce? Było q ho, gdzie q mod 11 = 1 więc q ∈ {1, 12, 23, . . . , 1 + 11 · i . . .} q mod 17 = 11 więc q ∈ {11, 28, 45, . . . , 11 + 17 · i . . .} q mod 13 = 1 więc q ∈ {1, 14, 27, . . . , 1 + 13 · i . . .} Pierwszą wspólną liczbą w tych ciągach jest 2289 — to jest rozwiązanie.