ΕΥΡΕΣΗ ΜΕΓΙΣΤΟΥ ΚΟΙΝΟΥ ΔΙΑΙΡΕΤΗ

Σχετικά έγγραφα
Εισαγωγή στους Αλγόριθμους

Υπολογιστικά & Διακριτά Μαθηματικά

Υπολογιστικά & Διακριτά Μαθηματικά

Κρυπτογραφία. Έλεγχος πρώτων αριθών-παραγοντοποίηση. Διαφάνειες: Άρης Παγουρτζής Πέτρος Ποτίκας

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

4.2 ΕΥΚΛΕΙΔΕΙΑ ΔΙΑΙΡΕΣΗ

Εύρεση ν-στού πρώτου αριθμού

Τι είναι τα πολλαπλάσια ;

Σειρά Προβλημάτων 5 Λύσεις

Πολλαπλασιασμός: αλγόριθμος

2.1 Διαιρετότητα, ισοϋπόλοιποι αριθμοί. q Z, a = b q + r.

Ο μαθητής που έχει μελετήσει το κεφάλαιο της θεωρίας αριθμών θα πρέπει να είναι σε θέση:

ΠΟΛΛΑΠΛΑΣΙΑΣΜΟΣ (συνέχεια)

Υπολογιστικά & Διακριτά Μαθηματικά

ΚΕΦΑΛΑΙΟ 2 Ο ΕΞΙΣΩΣΕΙΣ-ΑΝΙΣΩΣΕΙΣ

Οι Φυσικοί Αριθμοί. Παρατήρηση: Δεν στρογγυλοποιούνται αριθμοί τηλεφώνων, Α.Φ.Μ., κωδικοί αριθμοί κλπ. Πρόσθεση Φυσικών αριθμών

Υπολογισμός της δύναμης z=x b modn

Οι φυσικοί αριθμοί. Παράδειγμα

Σύστημα αρίθμησης. Τρόπος αναπαράστασης αριθμών Κάθε σύστημα αρίθμησης έχει μία βάση R

Κεφάλαιο 1 Εισαγωγή. Περιεχόμενα. 1.1 Αλγόριθμοι και Δομές Δεδομένων

Μορφές αποδείξεων. Μαθηματικά Πληροφορικής 2ο Μάθημα. Μορφές αποδείξεων (συνέχεια) Εξαντλητική μέθοδος

Μορφές αποδείξεων Υπάρχουν πολλά είδη αποδείξεων. Εδώ θα δούμε τα πιο κοινά: Εξαντλητική μέθοδος ή μέθοδος επισκόπησης. Οταν το πρόβλημα έχει πεπερασμ

ΑΝΙΣΟΤΗΤΕΣ. Αν α-β>0 τότε α>β «Αν η διαφορά είναι θετικός αριθμός τότε ο πρώτος αριθμός δηλαδή το α είναι μεγαλύτερος από τον δεύτερο δηλαδή το β»

4.4 ΜΕΓΙΣΤΟΣ ΚΟΙΝΟΣ ΔΙΑΙΡΕΤΗΣ - ΕΛΑΧΙΣΤΟ ΚΟΙΝΟ ΠΟΛΛΑΠΛΑΣΙΟ

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. Κρυπτογραφία. Θεωρία αριθμών Αλγεβρικές δομές. Χρήστος Ξενάκης

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία

Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία

Ανισώσεις Α Βαθμού -Εφαρμογές στις Ανισώσεις

Διακριτά Μαθηματικά Εισαγωγή Αλγόριθμοι ακεραίων, πολυπλοκότητα, στοιχεία θεωρίας αριθμών

Αλγεβρικές Δομές και Αριθμοθεωρία

Μ. Μαυρονικόλας. μπορούμε να πολλαπλασιασουμε (1,0,1,-1) με τον FFT πίνακα ή να εφαρμόζουμε τον

ΘΕΩΡΙΑ ΑΡΙΘΜΩΝ Ασκησεις - Φυλλαδιο 3

τον αριθμητή 8 την κλασματική γραμμή τον παρανομαστή

ΠΑΡΑΓΡΑΦΟΣ 1. 2 ΠΡΟΣΘΕΣΗ ΑΦΑΙΡΕΣΗ ΚΑΙ ΠΟΛΛΑΠΛΑΣΙΑΣΜΟΣ ΦΥΣΙΚΩΝ ΑΡΙΘΜΩΝ

ΑΛΓΕΒΡΑ Α ΓΥΜΝΑΣΙΟΥ ΘΕΤΙΚΟΙ ΚΑΙ ΑΡΝΗΤΙΚΟΙ ΑΡΙΘΜΟΙ ΕΠΙΜΕΛΕΙΑ : ΧΑΛΑΤΖΙΑΝ ΠΑΥΛΟΣ

Ενότητα 4. Επίλυση μαθηματικών προβλημάτων με το ΒΥΟΒ

Όταν οι αριθμοί είναι ομόσημοι Βάζουμε το κοινό πρόσημο και προσθέτουμε

Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία

Αναδρομικοί Αλγόριθμοι

Σημειωματάριο μαθήματος 1ης Νοε. 2017

ΑΛΓΟΡΙΘΜΟΙ Άνοιξη I. ΜΗΛΗΣ

ΜΑΘΗΜΑΤΙΚΑ Α ΓΥΜΝΑΣΙΟΥ

Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία

Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία

Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία

Αριθμοθεωρητικοί Αλγόριθμοι

Αριθµοθεωρητικοί Αλγόριθµοι και το. To Κρυπτοσύστηµα RSA

ΠΟΛΥΩΝΥΜΑ. Λυμένα Παραδείγματα

Ασκήσεις1 Πολυώνυμα. x x c. με το. b. Να βρεθούν όλες οι τιμές των a, Να βρεθεί ο μκδ και το εκπ τους

Μαθηματικά. Ενότητα 2: Δεκαδικοί αριθμοί, κλάσματα, δυνάμεις, ρίζες και ποσοστά. Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Α.2.1 Η ΕΝΝΟΙΑ ΤΟΥ ΚΛΑΣΜΑΤΟΣ

F 5 = (F n, F n+1 ) = 1.

KΕΦΑΛΑΙΟ 1 ΧΡΗΣΙΜΕΣ ΜΑΘΗΜΑΤΙΚΕΣ ΕΝΝΟΙΕΣ. { 1,2,3,..., n,...

Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία

1 ο ΦΥΛΛΑΔΙΟ ΑΣΚΗΣΕΩΝ - ΑΛΓΟΡΙΘΜΟΙ

Πολλαπλασιασμός και Διαίρεση Ακεραίων

Μεθοδολογία Επίλυσης Προβλημάτων ============================================================================ Π. Κυράνας - Κ.

Διατάξεις με επανάληψη: Με πόσους τρόπους μπορώ να διατάξω r από n αντικείμενα όταν επιτρέπονται επαναληπτικές εμφανίσεις των αντικειμένων; Στην αρχή

Πράξεις με πραγματικούς αριθμούς (επαναλήψεις - συμπληρώσεις )

Αλγόριθμοι Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 1 η

Οδύσσεια Τα απίθανα... τριτάκια! Tετάρτη τάξη ΜΑΘΗΜΑΤΙΚΑ Δ ΤΑΞΗ Συμπεράσματα Ενοτήτων

2. Να γράψετε έναν αριθμό που είναι μεγαλύτερος από το 3,456 και μικρότερος από το 3,457.

ΜΑΘΗΜΑΤΙΚΑ Α ΓΥΜΝΑΣΙΟΥ ΑΝΔΡΕΣΑΚΗΣ ΔΗΜΗΤΡΗΣ ΦΥΛΛΑ ΕΡΓΑΣΙΑΣ ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ ΕΝΟΤΗΤΑ Α.1.2. ΠΡΑΞΕΙΣ ΦΥΣΙΚΩΝ ΑΡΙΘΜΩΝ ΚΑΙ ΙΔΙΟΤΗΤΕΣ ΟΝΟΜΑΤΕΠΩΝΥΜΟ

Αλγόριθμοι Χαμηλού Επιπέδου

Δυαδικό Σύστημα Αρίθμησης

11. Ποιες είναι οι άμεσες συνέπειες της διαίρεσης;

ΜΑΘΗΜΑΤΙΚΑ Α ΓΥΜΝΑΣΙΟΥ

Υπολογιστικά & Διακριτά Μαθηματικά

Κεφάλαιο 10: Πολλαπλάσια και διαιρέτες

Στοιχεία Θεωρίας Αριθμών & Εφαρμογές στην Κρυπτογραφία

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 1 η

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ

bca = e. H 1j = G 2 H 5j = {f G j : f(0) = 1}

ιαιρετότητα Στοιχεία Θεωρίας Αριθµών «Ο Αλγόριθµος της ιαίρεσης» Αριθµητική Υπολοίπων 0 r < d και a = d q +r

Χαρακτήρες διαιρετότητας ΜΚΔ ΕΚΠ Ανάλυση αριθμού σε γινόμενο πρώτων παραγόντων

2.1 ΠΡΑΞΕΙΣ ΚΑΙ ΟΙ ΙΔΙΟΤΗΤΕΣ ΤΟΥΣ

Γ ε ν ι κ ό Λ ύ κ ε ι ο Ε λ ε υ θ ε ρ ο ύ π ο λ η ς. Α λ γ ό ρ ι θ μ ο ι

Αριθμητική Ανάλυση & Εφαρμογές

Ασκήσεις και δραστηριότητες

4.2 ΔΙΑΙΡΕΣΗ ΠΟΛΥΩΝΥΜΩΝ

ΕΥΚΛΕΙ ΕΙΑ ΙΑΙΡΕΣΗ ΙΑΙΡΕΤΟΤΗΤΑ

Τμήμα Τεχνολόγων Γεωπόνων - Φλώρινα

Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία

Εφαρμοσμένη Κρυπτογραφία Ι

Α Γυμνασίου, Μέρο Α : Αριθμητική Άλγεβρα, Κεφάλαιο 2 - Κλάσματα

Θεμελιώδη Θέματα Επιστήμης Υπολογιστών

Κρυπτογραφία. Κωνσταντίνου Ελισάβετ

Εισαγωγή στους Αλγόριθμους

Διαιρετότητα Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία. Ακέραια διαίρεση. Διαιρετότητα. ΜΚΔ: χρήσιμες ιδιότητες

Στόχοι ΑΠΣ για τα μαθηματικά της Ε τάξης

a n = 3 n a n+1 = 3 a n, a 0 = 1

ΚΥΠΡΙΑΚΗ ΜΑΘΗΜΑΤΙΚΗ ΕΤΑΙΡΕΙΑ ΠΑΓΚΥΠΡΙΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΔΕΚΕΜΒΡΙΟΣ 2017

Α. ΔΙΑΤΑΞΗ ΠΡΑΓΜΑΤΙΚΩΝ ΑΡΙΘΜΩΝ

Μαθηματικά Γ Γυμνασίου

Επιμέλεια διαφανειών: Δ. Φωτάκης Τροποποιήσεις-προσθήκες: Α. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Α Γυμνασίου, Μέρο Α, Άλγεβρα, Κεφάλαιο 7, Θετικοί και Αρνητικοί Αριθμοί, Α.7.8. Δυνάμει ρητών αριθμών με εκθέτη φυσικό, Α.7.9. Δυνάμει ρητών αριθμών

ΛΥΣΕΙΣ ΤΩΝ ΑΣΚΗΣΕΩΝ ΕΠΑΝΑΛΗΨΗΣ ΓΙΑ ΤΙΣ ΓΙΟΡΤΕΣ (ΑΡΙΘΜΗΤΙΚΗ)

Transcript:

ΕΥΡΕΣΗ ΜΕΓΙΣΤΟΥ ΚΟΙΝΟΥ ΔΙΑΙΡΕΤΗ

Το πρόβλημα: Δεδομένα: δύο ακέραιοι a και b Ζητούμενο: ο μέγιστος ακέραιος που διαιρεί και τους δύο δοσμένους αριθμούς, γνωστός ως Μέγιστος Κοινός Διαιρέτης τους (Greatest Common Divisor GCD)

Έστω a=27 και b=9 Οι διαιρέτες του 27 είναι: 1,3,9,27 Οι διαιρέτες του 9 είναι: 1,3,9 Ο μεγαλύτερος διαιρέτης κοινός και στις 2 λίστες είναι ο 9 Επομένως, ο μέγιστος κοινός διαιρέτης (GCD) των αριθμών 27 και 9 είναι ο 9

Ένας συστηματικός τρόπος για να υπολογίζουμε το μέγιστο κοινό διαιρέτη δύο αριθμών είναι να αναλύσουμε τους δύο αριθμούς σε γινόμενο πρώτων παραγόντων και να πολλαπλασιάσουμε τους κοινούς τους παράγοντες ώστε να πάρουμε το μέγιστο κοινό διαιρέτη τους Έστω a=1035 και b=759 1035=3 2 *5*23 759=3*11*23 Μέγιστος κοινός διαιρέτης των 1035 και 759 είναι ο 3*23=69

Ένας συστηματικός τρόπος για να υπολογίζουμε το μέγιστο κοινό διαιρέτη δύο αριθμών είναι να αναλύσουμε τους δύο αριθμούς σε γινόμενο πρώτων παραγόντων και να πολλαπλασιάσουμε τους κοινούς τους παράγοντες ώστε να πάρουμε το μέγιστο κοινό διαιρέτη τους Έστω a=1035 και b=759 1035=3 2 *5*23 759=3*11*23 Μέγιστος κοινός διαιρέτης των 1035 και 759 είναι ο 3*23=69 ΔΕΝ γνωρίζουμε τρόπο για να το κάνουμε αποδοτικά!!!!!!

Αποδοτικότερος τρόπος;;;;;;;; ΑΛΓΟΡΙΘΜΟΣ ΤΟΥ ΕΥΚΛΕΙΔΗ Ανακαλύφθηκε από τον Έλληνα μαθηματικό περισσότερο από 2000 χρόνια πριν

Ο ΑΛΓΟΡΙΘΜΟΣ ΤΟΥ ΕΥΚΛΕΙΔΗ ΓΙΑ ΤΗΝ ΕΥΡΕΣΗ ΤΟΥ ΜΕΓΙΣΤΟΥ ΚΟΙΝΟΥ ΔΙΑΙΡΕΤΗ a mod b σημαίνει: το υπόλοιπο που αφήνει η διαίρεση του a με το b Π.χ., 5 mod 3=2, 6 mod 3=0 κ.ο.κ.

Ο ΑΛΓΟΡΙΘΜΟΣ ΤΟΥ ΕΥΚΛΕΙΔΗ ΓΙΑ ΤΗΝ ΕΥΡΕΣΗ ΤΟΥ ΜΕΓΙΣΤΟΥ ΚΟΙΝΟΥ ΔΙΑΙΡΕΤΗ Παραδείγματα εκτέλεσης του αλγορίθμου: GCD(18,9)=GCD(9,0) GCD(18,9)=9 GCD(37,11)=GCD(11,4) GCD(4,3)=GCD(3,1)=GCD(1,0) GCD(37,11)=1

Ο ΑΛΓΟΡΙΘΜΟΣ ΤΟΥ ΕΥΚΛΕΙΔΗ ΓΙΑ ΤΗΝ ΕΥΡΕΣΗ ΤΟΥ ΜΕΓΙΣΤΟΥ ΚΟΙΝΟΥ ΔΙΑΙΡΕΤΗ Αριθμοί όπως οι 37 και 11, που έχουν ΜΚΔ το 1 λέγονται σχετικά πρώτοι μεταξύ τους. Παραδείγματα εκτέλεσης του αλγορίθμου: GCD(18,9)=GCD(9,0) GCD(18,9)=9 GCD(37,11)=GCD(11,4) GCD(4,3)=GCD(3,1)=GCD(1,0) GCD(37,11)=1

Ο ΑΛΓΟΡΙΘΜΟΣ ΤΟΥ ΕΥΚΛΕΙΔΗ ΓΙΑ ΤΗΝ ΕΥΡΕΣΗ ΤΟΥ ΜΕΓΙΣΤΟΥ ΚΟΙΝΟΥ ΔΙΑΙΡΕΤΗ GCD(18,9)=GCD(9,0) GCD(18,9)=9 GCD(37,11)=GCD(11,4) GCD(4,3)=GCD(3,1)=GCD(1,0) GCD(37,11)=1 *

Αλγόριθμος Ευκλείδη: ορθότητα Ο αλγόριθμος υλοποιεί ακριβώς τον παρακάτω κανόνα: Αν x και y θετικοί ακέραιοι με x y, τότε gcd(x,y) = gcd(x mod y,y) Γιατί ισχύει αυτό; Αρκεί να δείξουμε ότι gcd(x, y)=gcd(x-y, y) από όπου προκύπτει και ο παραπάνω κανόνας αφαιρώντας συνεχώς τον y από τον x Αν ένας αριθμός διαιρεί τους x και y τότε διαιρεί και τον x-y Κάθε ακέραιος a που διαιρεί και τον x(=ka) και τον y(=ma) διαιρεί επίσης και τον x-y(=ka-ma=(k-m)a), επομένως gcd(x,y)=gcd(x-y,y). Αντίστροφα, αν ένας αριθμός διαιρεί τους x-y και y τότε διαιρεί και τον x Όμοια, κάθε ακέραιος a που διαιρεί και τον x-y(=ka) και τον y(=ma) διαιρεί επίσης και τον x(=(m+k)a) και τον y(=ma). Επομένως gcd(x,y)=gcd(x-y,y)

Αλγόριθμος Ευκλείδη: χρόνος εκτέλεσης Για να υπολογίσουμε το χρόνο εκτέλεσης του αλγορίθμου, πρέπει να δούμε πόσο γρήγορα μειώνονται οι αριθμοί (a,b) σε κάθε αναδρομική κλήση Σε κάθε γύρο, οι αριθμοί (a,b) γίνονται (b,a mod b): η σειρά τους αλλάζει, και ο μεγαλύτερος από αυτούς, δηλ. ο a, μειώνεται σε a mod b Αυτή είναι μια σημαντική μείωση

Αλγόριθμος Ευκλείδη: χρόνος εκτέλεσης Πόσο μικρότεροι γίνονται οι αριθμοί σε κάθε γύρο; Αν a b τότε a mod b<a/2 Απόδειξη Ισχύει είτε b a/2 είτε b>a/2 b a a b

Αλγόριθμος Ευκλείδη: χρόνος εκτέλεσης Πόσο μικρότεροι γίνονται οι αριθμοί σε κάθε γύρο; Αν a b τότε a mod b<a/2 Απόδειξη Ισχύει είτε b a/2 είτε b>a/2 b a Αν b a/2 τότε a mod b < b a/2

Αλγόριθμος Ευκλείδη: χρόνος εκτέλεσης Πόσο μικρότεροι γίνονται οι αριθμοί σε κάθε γύρο; Αν a b τότε a mod b<a/2 Απόδειξη Ισχύει είτε b a/2 είτε b>a/2 b a Αν b>a/2 τότε a mod b=α-b<a/2

Αλγόριθμος Ευκλείδη: χρόνος εκτέλεσης Αυτό σημαίνει ότι μετά από δύο διαδοχικούς γύρους, και οι δύο αριθμοί, a και b, είναι τουλάχιστον μισοί σε τιμή δηλ., το μήκος του καθενός μειώνεται τουλάχιστον κατά 1 bit Αν αρχικά είναι n-bit ακέραιοι, τότε η βασική περίπτωση επιτυγχάνεται μετά από 2n αναδρομικές κλήσεις Και επειδή κάθε κλήση απαιτεί μία διαίρεση που απαιτεί τετραγωνικό χρόνο, ο συνολικός χρόνος εκτέλεσης είναι O(n 3 )

Αλγόριθμος Ευκλείδη: χρόνος εκτέλεσης Αρχικά: gcd(a,b) Βήμα 1: gcd(b,a mod b) Βήμα 2: gcd(a mod b, b mod (a mod b)) Έστω ότι οι αριθμοί a και b έχουν αρχικά n bits ο καθένας Σε 2 βήματα, ο πρώτος αριθμός (το ίδιο ισχύει και για το δεύτερο) έχει μειωθεί στο μισό Μείωση στο μισό = έχει 1 bit λιγότερο Για να τερματίσει ο αλγόριθμος πρέπει ο δεύτερος αριθμός να γίνει 0 να χάσει n bits «κόβω» 1 bit σε 2 βήματα «κόβω» n bits σε πόσα βήματα; Σε 2*n βήματα, δηλ. σε πλήθος βημάτων της τάξης του n (ή O(n) βήματα) Μετά από 2 διαδοχικά βήματα μειώνω τον a σε a mod b, κάνοντας μία διαίρεση που κοστίζει της τάξης του n 2 βήματα (ή Ο(n 2 ) βήματα) Οπότε, συνολικά απαιτούνται: O(n) * Ο(n 2 ) = Ο(n 3 ) βήματα