Αλγόριθμος Ευκλείδη
ΜεσαίοΕισαγωγή στον Αλγόριθμο Ευκλείδη
Ο Αλγόριθμος του Ευκλείδη είναι μία από τις αρχαιότερες και πιο κομψές μεθόδους υπολογισμού του Μέγιστου Κοινού Διαιρέτη (ΜΚΔ) δύο ακεραίων. Παρουσιάστηκε στα «Στοιχεία» του Ευκλείδη (~300 π.Χ.).
Βασική Ιδέα
Ο αλγόριθμος βασίζεται στην εξής θεμελιώδη ιδιότητα:
Λήμμα: Για ακεραίους :
όπου είναι το υπόλοιπο της διαίρεσης του με το .
Απόδειξη: Αν (Ευκλείδεια διαίρεση), τότε κάθε κοινός διαιρέτης των διαιρεί και το , και αντίστροφα.
Ο Αλγόριθμος
Είσοδος: Δύο μη αρνητικοί ακέραιοι (όχι και οι δύο μηδέν)
Έξοδος:
Βήματα:
- Αν , επέστρεψε
- Αλλιώς, υπολόγισε
- Επανέλαβε με
Ψευδοκώδικας:
Συνάρτηση ΜΚΔ(a, b):
Όσο b ≠ 0:
r ← a mod b
a ← b
b ← r
Επέστρεψε aΠαράδειγμα Εκτέλεσης
Να βρεθεί ο :
| Βήμα | |||
|---|---|---|---|
| 1 | 252 | 105 | 42 |
| 2 | 105 | 42 | 21 |
| 3 | 42 | 21 | 0 |
| 4 | 21 | 0 | - |
Άρα .
Επεκτεταμένος Αλγόριθμος Ευκλείδη
Ο επεκτεταμένος αλγόριθμος βρίσκει, εκτός από τον ΜΚΔ, και ακεραίους τέτοιους ώστε:
Αυτή είναι η Ταυτότητα του Bézout.
Θεώρημα (Bézout): Για ακεραίους (όχι και οι δύο μηδέν), υπάρχουν ακέραιοι ώστε:
Ο Επεκτεταμένος Αλγόριθμος
Μέθοδος αντίστροφης αντικατάστασης:
- Εκτέλεσε τον απλό αλγόριθμο, κρατώντας όλα τα βήματα
- Ξεκίνα από το τελευταίο μη μηδενικό υπόλοιπο (= ΜΚΔ)
- Εκφράζοντάς το ως γραμμικό συνδυασμό, αντικατέστησε αντίστροφα
Εφαρμογές
1. Εύρεση Αντιστρόφου modulo
Αν , από την ταυτότητα Bézout:
Άρα , δηλαδή .
2. Επίλυση Γραμμικών Διοφαντικών Εξισώσεων
Η εξίσωση έχει ακέραιες λύσεις αν και μόνο αν .
3. Απλοποίηση Κλασμάτων
Το κλάσμα απλοποιείται διαιρώντας με .
Πολυπλοκότητα
Ο αλγόριθμος Ευκλείδη είναι πολύ αποδοτικός:
- Χειρότερη περίπτωση: Διαδοχικοί αριθμοί Fibonacci
- Πλήθος βημάτων:
Θεώρημα Lamé: Ο αριθμός βημάτων δεν υπερβαίνει το πενταπλάσιο του πλήθους ψηφίων του μικρότερου αριθμού.
Βασικοί Τύποι
Παραδείγματα
Παράδειγμα 1: Να βρεθεί ο με τον αλγόριθμο Ευκλείδη.
Λύση:
Άρα .
Παράδειγμα 2: Να βρεθούν ώστε .
Λύση:
Από τον αλγόριθμο Ευκλείδη:
Αντίστροφη αντικατάσταση:
Άρα .
Επαλήθευση: ✓
Παράδειγμα 3: Να βρεθεί το .
Λύση:
Εφαρμόζουμε τον επεκτεταμένο αλγόριθμο για :
Αντίστροφα:
Άρα