Υπολογιστικά & Διακριτά Μαθηματικά Ενότητα 11: Αριθμητική υπολοίπων-δυνάμεις Στεφανίδης Γεώργιος
Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Μακεδονίας» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3
Αριθμητική υπολοίπων Θεώρημα 6 (Αρχή της αριθμητικής υπολοίπων) Έστω a 1, a 2 και μια από τις πράξεις +, ή. Τότε η πράξη αυτή μεταφέρεται με την αναγωγή modulo n από το στο σύνολο n, δηλαδή a 1 a 2 mod n = (a 1 mod n) (a 2 mod n) mod n. όπου οι πράξεις μεταξύ των κλάσεων γίνονται πράξεις μεταξύ των φυσικών αντιπροσώπων τους. Ακέραιοι ( ) Ακέραιοι mod n ( n ) a 1, a 2 αναγωγή mod n (a 1 mod n), (a 2 mod n) a 1 a 2 αναγωγή mod n (a 1 mod n) (a 2 mod n) mod n = a 1 a 2 mod n 4
Παράδειγμα [1] Παράδειγμα 4 Ας υπολογίσουμε το άθροισμα και το γινόμενο των κλάσεων [37] και [27] στο 7. Επειδή 37 = 5 7 + 2 και 27 = 3 7 + 6, έχουμε 37 2 (mod 7) και 27 6 (mod 7) οπότε 37 + 27 8 1 (mod 7). και 37 27 12 5 (mod 7) Συνεπώς [37] + 7 [27] = [1] και [37] 7 [27] = [5]. Στο ίδιο αποτέλεσμα μπορούμε να καταλήξουμε αν κάνουμε τις πράξεις απευθείας στο 7 : Είναι 37 mod 7 = 2 και 27 mod 7 = 6, οπότε [37] + 7 [27] = [2] + 7 [6] = [2 + 6] = [8] = [1], γιατί 8 mod 7 = 1 και [37] 7 [27] = [2] 7 [6] = [2 6] = [12] = [5], γιατί 12 mod 7 = 5. 5
Θεώρημα 7 Η δομή ( n, + n ) είναι μια πεπερασμένη ομάδα τάξης n. Το ουδέτερο (μηδενικό) στοιχείο υπάρχει και είναι το [0] n Κάθε στοιχείο [a] n έχει αντίθετο το [ a] n Αν θεωρήσουμε τώρα το σύνολο n * = {[a] n : gcd(a, n) = 1} για το οποίο είναι n* = (n), όπου είναι η γνωστή συνάρτηση του Euler, τότε ισχύει το ακόλουθο 6
Θεώρημα 8 [1] Η δομή ( n*, ) είναι μια πεπερασμένη ομάδα τάξης (n). Η συνάρτηση (n) του Euler υποδηλώνει το πλήθος των ακεραίων x, με 1 x n, οι οποίοι είναι σχετικά πρώτοι με τον n, δηλ. είναι gcd(x, n) = 1. Η συνάρτηση αυτή έχει τις ακόλουθες ιδιότητες: Αν p είναι πρώτος και k, τότε (p k ) = p k 1 (p 1). Αν n = pq, όπου p και q είναι πρώτοι, τότε (n) = (p) (q) = (p 1)(q 1). Έστω n και Π.χ. η παραγοντοποίηση του n σε πρώτους. Τότε 1 1 2 4 (45) 45 1 1 45 3 2 4 24 3 5 3 5 r 1 ( n) n (1 ) p i 1 i 7
Θεώρημα 8 [2] Θα συμφωνήσουμε ότι όταν δουλεύουμε με τις ομάδες ( n, + n ) και ( n *, n ) θα ακολουθούμε συχνά τη βολική πρακτική του να συμβολίζουμε τις πράξεις απλά ως + και, παραλείποντας την αναφορά στο modulus n, και τις κλάσεις ισοδυναμίας με τους φυσικούς αντιπροσώπους τους. Επίσης, οι ισοδυναμίες modulo n μπορούν να ερμηνευτούν και ως εξισώσεις στο n. Η δομή ( n, +, ) είναι, σύμφωνα με όσα έχουμε μέχρι τώρα αναφέρει, αντιμεταθετικός δακτύλιος με μοναδιαίο στοιχείο και μπορούμε να αναφερόμαστε σ αυτόν ως τον δακτύλιο n. 8
Παράδειγμα [2] Ο δακτύλιος 8, ή αριθμητική modulo 8. + 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 0 1 2 3 4 5 6 7 0 0 0 0 0 0 0 0 0 1 1 2 3 4 5 6 7 0 1 0 1 2 3 4 5 6 7 2 2 3 4 5 6 7 0 1 2 0 2 4 6 0 2 4 6 3 3 4 5 6 7 0 1 2 3 0 3 6 1 4 7 2 5 4 4 5 6 7 0 1 2 3 4 0 4 0 4 0 4 0 4 5 5 6 7 0 1 2 3 4 5 0 5 2 7 4 1 6 3 6 6 7 0 1 2 3 4 5 6 0 6 4 2 0 6 4 2 7 7 0 1 2 3 4 5 6 7 0 7 6 5 4 3 2 1 a 0 1 2 3 4 5 6 7 a 0 7 6 5 4 3 2 1 a 1-1 - 3-5 - 7 9
Δυνάμεις [1] Η δομή (G 0, ) λέγεται υποομάδα μιας ομάδας (G, ) όταν G 0 G και η ίδια είναι ομάδα. Αν μάλιστα G 0 G, τότε λέγεται γνήσια υποομάδα. Θεώρημα 9 Αν (G, ) είναι μια ομάδα και G 0 ένα μη κενό πεπερασμένο υποσύνολο του G, η δομή (G 0, ) είναι μια υποομάδα της (G, ), αν και μόνον αν το G 0 είναι κλειστό ως προς την πράξη. Παράδειγμα: ( 6, +) + 0 1 2 3 4 5 0 0 1 2 3 4 5 1 1 2 3 4 5 0 2 2 3 4 5 0 1 3 3 4 5 0 1 2 4 4 5 0 1 2 3 5 5 0 1 2 3 4 Μια υποομάδα της 6 είναι το υποσύνολο {0, 2, 4}, αφού εύκολα διαπιστώνουμε από τον πίνακα ότι είναι κλειστό ως προς την πρόσθεση. 10
Δυνάμεις [2] Είναι χρήσιμο τώρα να ορίσουμε σε μια πεπερασμένη ομάδα την «ύψωση σε δύναμη» ή «εκθετοποίηση», ως επανειλημμένη εφαρμογή της πράξης, με k a α α α,α (0) = e και a ( k) = (a ) (k), όπου k. και με προφανείς τους ακόλουθους κανόνες: k 1. a (n) a (m) = a (n+m) 2. (a (n) ) (m) = a (nm), όπου n, m. Εδώ ο συμβολισμός προσομοιάζει αυτού που θα χρησιμοποιούσαμε εάν η πράξη είναι πολλαπλασιασμός, με e = 1 και a = a 1. Οποτεδήποτε η πράξη είναι πρόσθεση, αν k, a (k) σημαίνει α α α ka και a ( k) σημαίνει ενώ α (0) σημαίνει 0. k α ( α) ( α) k( a) k 11
Δυνάμεις [3] Να σημειωθεί ότι nα είναι συντομογραφία και δεν θα πρέπει να θεωρηθεί ως το γινόμενο του n με το α G. Επίσης, στην περίπτωση του προσθετικού συμβολισμού οι προφανείς κανόνες που αναφέραμε παραπάνω γράφονται 1. na + ma = (n + m)a 2. m(na) = (mn)a Έτσι, στην ομάδα n έχουμε, α (k) = ka mod n, και στην ομάδα n * έχουμε, α (k) = a k mod n. Παραδείγματος χάρη, αν θεωρήσουμε α = 2 στην ομάδα 6, η ακολουθία α (1), α (2), α (3), είναι 2, 4, 0, 2, 4, 0, και στην ομάδα 7*, θα είναι 2, 4, 1, 2, 4, 1,. 12
Δυνάμεις [4] Αν τώρα (G, ) είναι πεπερασμένη ομάδα και α G, τότε το σύνολο α = {α (k) : k } όλων των δυνάμεων του α ορίζει μια υποομάδα της G που λέγεται ότι είναι η υποομάδα που παράγεται από το α και συμβολίζεται με ( α, ) ή απλά με α. Λέμε επίσης ότι το α παράγει την υποομάδα α ή ότι το α είναι ένας γεννήτορας της α. Παραδείγματος χάρη, στην ομάδα 6 έχουμε 0 = {0} 1 = {0, 1, 2, 3, 4, 5} 2 = {0, 2, 4} και στην ομάδα 7 * παρόμοια, έχουμε 1 = {1} 2 = {1, 2, 4} 3 = {1, 2, 3, 4, 5, 6}. Η τάξη ενός στοιχείου α G, συμβολικά ord(α), ορίζεται ως ο μικρότερος θετικός ακέραιο t για τον οποίο είναι, α (t ) = e, όπου e είναι το ουδέτερο στοιχείο της ομάδας (G, ) ord(α) min{n 1 : α (n) = e}. 13
Δυνάμεις [5] Κάθε άλλος ακέραιος s με α (s) = e θα είναι ένα πολλαπλάσιο του t. Για την τάξη ενός στοιχείου ισχύει το ακόλουθο: Θεώρημα: Αν (G, ) είναι μια πεπερασμένη ομάδα και a G, τότε ord(α) = α. Πόρισμα: Η ακολουθία των «δυνάμεων» του στοιχείου a : a (1), a (2),, είναι περιοδική με περίοδο t = ord(a), που σημαίνει ότι α (k) = α (m), αν και μόνο αν k m (mod t). Με βάση το παραπάνω πόρισμα είναι συνεπές να ορίσουμε a (0) = e a (k) = a (k mod t ), όπου t = ord(a), k. 14
Επίλυση γραμμικών ισοτιμιών[1] Θέλουμε να λύσουμε την ισοτιμία ax b (mod n), a > 0, n > 0 (1) Υποθέτουμε ότι είναι δεδομένα τα a, b και n και ζητάμε τις τιμές του x, modulo n, οι οποίες ικανοποιούν την (1). Έστω α η υποομάδα της ομάδας n που δημιουργείται από το a. Επειδή α {a (x) : x > 0} = {ax mod n : x > 0} η εξίσωση (1) έχει λύση, αν και μόνον αν b α. Ένας ακριβής χαρακτηρισμός του συνόλου α δίνεται από το ακόλουθο θεώρημα: 15
Επίλυση γραμμικών ισοτιμιών[2] Θεώρημα 1. Αν a και n είναι θετικοί ακέραιοι και d = gcd(a, n), τότε α = d = {0, d, 2d,, ((n/d) 1)d} (2) στο n και α = n/d. Πόρισμα 1. Η εξίσωση ax b (mod n) έχει μία τουλάχιστο λύση, αν και μόνον αν d b, με d = gcd(a, n). Θεώρημα 2. Έστω d = gcd(a, n) = ax + ny για κάποιους ακέραιους x, y. Αν d b, τότε μια λύση x 0 της εξίσωσης ax b (mod n) δίνεται από τον τύπο x 0 = x (b/d) mod n. 16
Επίλυση γραμμικών ισοτιμιών[3] Ένα πιο γενικό θεώρημα από το παραπάνω, είναι το ακόλουθο Θεώρημα 3. Έστω ότι η ισοτιμία ax b (mod n) είναι τέτοια, ώστε d b, όπου d = gcd(a, n) και μια λύση της είναι ο ακέραιος x 0. Τότε η εξίσωση αυτή έχει ακριβώς d διακεκριμένες λύσεις modulo n, οι οποίες δίνονται από τον τύπο x k = x 0 + k(n/d), k = 0, 1,..., d 1. Ο παρακάτω αλγόριθμος επιστρέφει όλες τις λύσεις της ισοτιμίας ax b (mod n) για οποιουσδήποτε θετικούς ακέραιους a, n και ακέραιο b στην είσοδο. Αλγόριθμος ΛυτηςModΓραμμικηΕξισωση(a, b, n) 1. (d, x, y ) EuclidExt(a, n) // EuclidExt = ο διευρυμένος Ευκλείδειος αλγόριθμος 2. if d b 3. then x 0 x (b/d) mod n 4. for k 0 to d 1 5. εμφάνισε (x 0 + kn/d) mod n 6. else εμφάνισε αδύνατη 17
Παράδειγμα [3] Ας λύσουμε την εξίσωση (ισοτιμία) 34x 60 (mod 98). Είναι a = 34, b = 60 και n = 98. Τότε 1. Με τον διευρυμένο Ευκλείδειο Αλγόριθμο βρίσκουμε (d, x', y') = (2, 23, 8) 2. d b (γιατί 2 60) 3. μια λύση είναι, x 0 = x (b/d) mod n = 23(60/2) mod 98 = 690 mod 98 = 94 ( 690 = 98 ( 8) + 94) 4. k = 0, 1: x k = (x 0 + kn/d) mod n 5. x 0 = 94 mod 98 = 94 x 1 = (94 + 98/2) mod 98 = 143 mod 98 = 45. 18
Υπολογισμός αντίστροφου Ιδιαίτερο ενδιαφέρον έχουν και τα ακόλουθα πορίσματα. Πόρισμα 2. Για οποιονδήποτε ακέραιο n > 1, αν gcd(a, n) = 1, τότε η ισοτιμία ax b (mod n) έχει μοναδική λύση, modulo n. Αν τώρα b = 1, τότε ο x που ψάχνουμε να βρούμε ως λύση της ax 1 (mod n), είναι ένας πολλαπλασιαστικός αντίστροφος του a, modulo n. Πόρισμα 3. Για οποιονδήποτε ακέραιο n > 1, αν gcd(a, n) = 1, τότε η εξίσωση ax 1 (mod n) έχει μία μόνο λύση, modulo n. Διαφορετικά, είναι αδύνατη. Αν λοιπόν gcd(a, n) = 1, τότε μία λύση της εξίσωσης ax 1 (mod n) είναι ο ακέραιος x που επιστρέφει ο διευρυμένος Ευκλείδειος αλγόριθμος, διότι από την εξίσωση gcd(a, n) = 1 = ax + ny προκύπτει ότι ax 1 (mod n). Αυτό σημαίνει ότι μπορούμε να υπολογίσουμε τον αντίστροφο x = a -1 mod n αρκετά αποδοτικά χρησιμοποιώντας τον διευρυμένο Ευκλείδειο αλγόριθμο: Αλγόριθμος Υπολογισμός Αντίστροφου Είσοδος: a n 1. Χρησιμοποίησε τον Διευρυμένο Ευκλείδειο Αλγόριθμο προς εύρεση των ακεραίων x και y τέτοιων, ώστε ax + ny = d, όπου d = gcd(a, n) 2. Αν d > 1, τότε δεν υπάρχει ο a -1 mod n. Διαφορετικά επέστρεψε x. 19
Παράδειγμα [4] Ας βρούμε το αντίστροφο στοιχείο του [18] στο 31. Πρέπει να βρούμε την κλάση ισοδυναμίας [x] για την οποία είναι [18][x] = 1, (στο 31 ) ή ισοδύναμα, να λύσουμε την ισοτιμία 18x 1 (mod 31), (στο ). (1) Επειδή gcd(18, 31) = 1, αυτή η ισοτιμία έχει λύση και υπάρχει μόνο μία κλάση ισοτιμίας των λύσεων modulo 31. Η (1) γράφεται 18x = 1 + k 31, k, ή 18x + 31y = 1, y = k. οπότε μπορούμε να εφαρμόσουμε τον διευρυμένο Ευκλείδειο αλγόριθμο προκειμένου να βρούμε τον ακέραιο x (και τον y). Εφαρμόζουμε λοιπόν τον διευρυμένο Ευκλείδειο αλγόριθμο χρησιμοποιώντας τις γνωστές σχέσεις r i+1 = r i 1 r i q i, με r 0 = 31, r 1 = 18, s i+1 = s i 1 s i q i, με s 0 = 1, s 1 = 0, t i+1 = t i 1 t i q i, με t 0 = 0, t 1 = 1 και βρίσκουμε 20
Παράδειγμα [5] Είναι, i 0 1 2 3 4 5 6 r i 31 18 13 5 3 2 1 0 q i 1 1 2 1 1 2 s i 1 0 1 1 3 4 7 18 t i 0 1 1 2 5 7 12 31 gcd(18, 31) = gcd(31, 18) = 1 31s + 18t = 1 και από τον πίνακα έχουμε ότι [x] 1 = [ 12] = [19]. Επαλήθευση: 18 19 = 342 = 31 11 + 1 18 19 1 (mod 31). 21
Τέλος Ενότητας