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

Σχετικά έγγραφα
Θεμελιώδη Θέματα Επιστήμης Υπολογιστών

Εισαγωγή στην Επιστήμη των Υπολογιστών

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

Θεµελιώδη Θέµατα. 5ο εξάµηνο ΣΕΜΦΕ. Αλγοριθµικές τεχνικές, αριθµητικοί υπολογισµοί. 3η ενότητα:

Webster s 50 χρόνια πριν: ανύπαρκτος όρος Oxford s, 1971: «erroneous refashioning of algorism: calculation with Arabic numerals»

Επιτυχίες της Αλγοριθμικής. Εισαγωγή στην Επιστήμη των Υπολογιστών. Περιεχόμενα. Εισαγωγή. Εισαγωγή. Κεντρικό ερώτημα Επιστήμης Υπολογιστών

Εισαγωγή στην Επιστήμη των Υπολογιστών

Εισαγωγή στην Επιστήμη των Υπολογιστών

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

Θεωρία Υπολογισµού Theory of Computation

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

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

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

Ορισµός. Εστω συναρτήσεις: f : N R και g : N R. η f(n) είναι fi( g(n) ) αν υπάρχουν σταθερές C 1, C 2 και n 0, τέτοιες ώστε:

Κρυπτοσύστημα RSA (Rivest, Shamir, Adlemann, 1977) Υπολογιστική Θεωρία Αριθμών και Κρυπτογραφία

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

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

* * * ( ) mod p = (a p 1. 2 ) mod p.

Κρυπτογραφία Δημοσίου Κλειδιού

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

Αλγόριθμοι. Κεφάλαιο Αλγόριθμοι και Πολυπλοκότητα Τι είναι αλγόριθμος

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

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

Στοιχεία Αλγορίθµων και Πολυπλοκότητας

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

Διαίρει-και-Βασίλευε. Διαίρει-και-Βασίλευε. MergeSort. MergeSort. Πρόβλημα Ταξινόμησης: Είσοδος : ακολουθία n αριθμών (α 1

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

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

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

Διαίρει-και-Βασίλευε. Αλγόριθµοι & Πολυπλοκότητα (Χειµώνας 2011) Διαίρει-και-Βασίλευε 2

ιαίρει-και-βασίλευε ημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο

Αναδρομικές Σχέσεις «ιαίρει-και-βασίλευε»

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

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

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

(Γραμμικές) Αναδρομικές Σχέσεις

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

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

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

Πρόβληµα 2 (15 µονάδες)

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

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

(Γραμμικές) Αναδρομικές Σχέσεις

Πρόβληµα 2 (12 µονάδες)

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

Ασυμπτωτικός Συμβολισμός

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

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

Εθνικό Μετσόβιο Πολυτεχνείο

ΑΛΓΟΡΙΘΜΟΙ & ΣΤΟΙΧΕΙΑ ΠΟΛΥΠΛΟΚΟΤΗΤΑΣ

Αλγόριθμοι και Πολυπλοκότητα

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

οµές εδοµένων 3 ο Εξάµηνο Τµήµα Πανεπιστήµιο Πληροφορικής Ιωαννίνων ΟΜΕΣ Ε ΟΜΕΝΩΝ

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

Αλγόριθµοι και Πολυπλοκότητα

Σχεδίαση και Ανάλυση Αλγορίθμων

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

Στοιχεία Θεωρίας Αριθμών

Εισαγωγή στην Ανάλυση Αλγορίθμων (2-3)

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

Διακριτά Μαθηματικά [Rosen, κεφ. 3] Γιάννης Εμίρης Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ Οκτώβριος 2018

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

1η Σειρά Γραπτών Ασκήσεων

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

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

(Γραμμικές) Αναδρομικές Σχέσεις

Ορθότητα Χωρική αποδοτικότητα. Βελτιστότητα. Θεωρητική ανάλυση Εμπειρική ανάλυση. Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ -4ο εξάμηνο 1

Αλγόριθµοι και Πολυπλοκότητα

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

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

Θεωρια Αριθµων Προβληµατα

ΑΣΥΜΠΤΩΤΙΚΗ ΑΝΑΛΥΣΗ & ΠΡΟΣΘΕΣΗ

Ασυμπτωτικός Συμβολισμός

ΑΣΥΜΜΕΤΡΗ ΚΡΥΠΤΟΓΡΑΦΙΑ Lab 3

Κρυπτογραφία Δημόσιου Κλειδιού II Αλγόριθμος RSA

Αλγόριθμοι και Πολυπλοκότητα

Δυναμικός Προγραμματισμός

Αλγόριθμοι και Πολυπλοκότητα

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

Κρυπτογραφία. Κεφάλαιο 4 Αλγόριθμοι Δημοσίου Κλειδιού (ή ασύμμετροι αλγόριθμοι)

Αναδρομή (Recursion) Πώς να λύσουμε ένα πρόβλημα κάνοντας λίγη δουλειά και ανάγοντας το υπόλοιπο να λυθεί με τον ίδιο τρόπο.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΘΕΩΡΗΤΙΚΗ ΑΣΚΗΣΗ 1 ΛΥΣΕΙΣ Ανάλυση Πολυπλοκότητας

1 Ανάλυση αλγορίθµων. 2 Συµβολισµοί O, Ω και Θ. 3 Αναδροµικές εξισώσεις

Εισαγωγή στους Αλγόριθμους. Παύλος Εφραιμίδης, Λέκτορας

Μαθηµατικά για Πληροφορική

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

Δυναμικός Προγραμματισμός

Αναδρομή Ανάλυση Αλγορίθμων

Δομές Δεδομένων & Αλγόριθμοι

ΠΛΕ075: Προηγμένη Σχεδίαση Αλγορίθμων και Δομών Δεδομένων. Λουκάς Γεωργιάδης

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

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Αρχές Ανάλυσης Αλγορίθµων Κεφάλαιο 2. Ε. Μαρκάκης Επικ. Καθηγητής

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

Κρυπτογραφία. Θεωρία Αριθμών 2/4/2014. Θεωρία Αριθμών

Εισαγωγή στην Ανάλυση Αλγορίθμων

Κεφάλαιο 5 Ανάλυση Αλγορίθμων

- ΟΡΙΟ - ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΗΣ ΕΝΟΤΗΤΑ 6: ΜΗ ΠΕΠΕΡΑΣΜΕΝΟ ΟΡΙΟ ΣΤΟ

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

Ανάλυση αλγορίθμων. Χρόνος εκτέλεσης: Αναμενόμενη περίπτωση. - απαιτεί γνώση της κατανομής εισόδου

ΥΠΟΛΟΓΙΣΤΙΚΗ ΚΡΥΠΤΟΓΡΑΦΙΑ

Transcript:

Θεμελιώδη Θέματα Επιστήμης Υπολογιστών 5ο εξάμηνοσεμφε 2η ενότητα: Αλγοριθμικές τεχνικές, αριθμητικοί υπολογισμοί Διδάσκοντες Θεωρία: Στάθης Ζάχος, Άρης Παγουρτζής Εργαστήριο: Δώρα Σούλιου Βοηθός διδασκαλίας: Θανάσης Λιανέας http://www.corelab.ece.ntua.gr/courses/focs 1

Αλγόριθμος Webster s 50 χρόνια πριν: ανύπαρκτος όρος Oxford s, 1971: «erroneous refashioning of algorism: calculation with Arabic numerals» Abu Jaffar Mohammed Ibn Musa Al-Khowarizmi, μ.χ. 9 ος αι.,يمزراوخلا ىسوم نب دمحم Παραδείγματα: Ευκλείδειος αλγόριθμος (Ευκλείδης, 3 ος αι. π.χ.) για εύρεση ΜΚΔ Αριθμοί Fibonacci (Leonardo Pisano Filius Bonacci, 13 ος αι. μ.χ.) Τρίγωνο Pascal (Yang Hui, 13 ος αι. μ.χ.) 2

Αλγόριθμος (συν.) Πρωταρχική έννοια. Μέθοδος επίλυσης προβλήματος δοσμένη ως πεπερασμένο σύνολο κανόνων (ενεργειών, διεργασιών) που επενεργούν σε δεδομένα (data). Πεπερασμένη εκτέλεση (finiteness). Κάθε κανόνας ορίζεται επακριβώς και η αντίστοιχη διεργασία είναι συγκεκριμένη (definiteness). Δέχεται μηδέν ή περισσότερα μεγέθη εισόδου (input). Δίνει τουλάχιστον ένα μέγεθος ως αποτέλεσμα (output). Μηχανιστικά αποτελεσματικός, εκτέλεση με μολύβι και χαρτί (effectiveness). 3

Η ιδέα του Ευκλείδη για εύρεση ΜΚΔ δύο φυσικών αριθμών if a>b then GCD(a,b):= GCD(a mod b, b) else GCD(a,b):= GCD(a, b mod a) // a mod b = το υπόλοιπο της διαίρεσης a div b Ο Ευκλείδειος αλγόριθμος είναι ο καλύτερος γνωστός αλγόριθμος για ΜΚΔ! Ανοιχτό ερώτημα: είναι βέλτιστος; 4

Παράδειγμα εκτέλεσης του Ευκλείδειου αλγόριθμου ΜΚΔ των 172 και 54 = ΜΚΔ των 10 54 = ΜΚΔ των 10 4 = ΜΚΔ των 2 4 = ΜΚΔ των 2 0 ΜΚΔ = =22 5

Αριθμοί Fibonacci 0, 1, 1, 2, 3, 5, 8, 13, 21, F n = F n-1 + F n-2 Πρόβλημα: δίνεται n, υπολόγισε τον F n Αναδρομή (recursion), επανάληψη (iteration), Πόσο γρήγορα μπορεί να υπολογιστεί ο F n ; O(1.618 n ), O(n), O(log n) 6

Τρίγωνο Pascal (Yang Hui) 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 Διωνυμικοί συντελεστές / συνδυασμοί: (a+b) 4 = a 4 + 4a 3 b + 6a 2 b 2 + 4ab 3 + b 4 7

Αλγοριθμικές τεχνικές Επανάληψη (Iteration) Αναδρομή (Recursion) Επαγωγή (Induction) 8

Πύργοι Ανόι (Hanoi Towers) πηγή: wikipedia 9

Πύργοι Ανόι (Hanoi Towers) πηγή: wikipedia 10

Πύργοι Ανόι (Hanoi Towers): αναδρομή 11

Πύργοι Ανόι (Hanoi Towers): επανάληψη Επανάλαβε (μέχρι να επιτευχθεί η μετακίνηση): Μετακίνησε κατά τη θετική φορά τον μικρότερο δίσκο Κάνε την μοναδική επιτρεπτή κίνηση που δεν αφορά τον μικρότερο δίσκο 12

Treesort με χρήση Binary Search Tree 13

Δίκτυα Ταξινόμησης (Sorting Networks) Συγκριτής Δίκτυο ταξινόμησης 4 εισόδων 14

Four Color Theorem (1852-1977) Πόσα χρώματα απαιτούνται για τον χρωματισμό όλων των χωρών, ώστε χώρες που συνορεύουν (με γραμμή για σύνορο) να έχουν διαφορετικό χρώμα; 15

Four Color Theorem (1852-1977) Πόσα χρώματα απαιτούνται για τον χρωματισμό όλων των χωρών, ώστε χώρες που συνορεύουν (με γραμμή για σύνορο) να έχουν διαφορετικό χρώμα; 16

Four Color Theorem (1852-1977) Πόσα χρώματα απαιτούνται για τον χρωματισμό όλων των χωρών, ώστε χώρες που συνορεύουν (με γραμμή για σύνορο) να έχουν διαφορετικό χρώμα; Appel - Haken (απόδειξη με πρόγραμμα!) 17

Μαθηματικοί συμβολισμοί (i) 18

Μαθηματικοί συμβολισμοί (ii) 19

Μαθηματικοί συμβολισμοί (iii) 20

Μαθηματικοί συμβολισμοί: ιδιότητες Συχνά γράφουμε (καταχρηστικά) g(n)=o(f(n)) αντί για g(n) Є O(f(n)) Θ(f) = O(f) Ω(f) p(n) = Θ(n k ), για κάθε πολυώνυμο p Ο(poly) = U O(n k ) (για όλα τα k Є N) 21

Μαθηματικοί συμβολισμοί: ιδιότητες log*n: πόσες φορές πρέπει να λογαριθμήσουμε το n για να φτάσουμε κάτω από το 1 (αντίστροφη υπερεκθετικής) A: Ackermann. α: αντίστροφη της Α. 22

Εύρεση Μέγιστου Κοινού Διαιρέτη (gcd) Δεν είναι έξυπνο να το αναγάγουμε στο πρόβλημα εύρεσης πρώτων παραγόντων γιατί αυτό δεν λύνεται αποδοτικά. Απλός αλγόριθμος: χρόνος O(min(α,b)) Αλγόριθμος με αφαιρέσεις: χρόνος O(max(α,b)) Αλγόριθμος του Ευκλείδη: χρόνος O(log(α+b)) 23

Εύρεση ΜΚΔ (gcd) με αναδρομή Αλγόριθμος με αφαιρέσεις: O(max(α,b)) if a=b then GCD(a,b):=a else if a>b then GCD(a,b):= GCD(a-b, b) else GCD(a,b):= GCD(a, b-a) Αλγόριθμος του Ευκλείδη: O(log(α+b)) if a=0 or b=0 then GCD(a,b):=a+b else if a>b then GCD(a,b):= GCD(a mod b, b) else GCD(a,b):= GCD(a, b mod a) 24

Πολυπλοκότητα Ευκλείδειου Αλγορίθμου O(log max(a,b)): σε κάθε 2 επαναλήψεις ο μεγαλύτερος αριθμός υποδιπλασιάζεται (γιατί;) Ω(log max(a,b)): για ζεύγη διαδοχικών αριθμών Fibonacci F k-1, F k, χρειάζεται k επαναλήψεις, και k log F k, αφού F k φ k / 5, φ = (1+ 5)/2 (φ ηχρυσή τομή). Άρα η πολυπλοκότητα του Ευκλείδειου είναι Θ(log max(a,b)) = Θ(log (a+b)) 25

Επεκτεταμένος Ευκλείδειος Αλγόριθμος Εκφράζει τον gcd(a,b) σαν γραμμικό συνδυασμό των a και b Επιτρέπει την εύρεση πολλαπλασιαστικού αντιστρόφου στην αριθμητική modulo n: αν gcd(a,n)=1 τότε Ext. Euclid δίνει κ,λ: κα+λn=1 Ποιος είναι ο αντίστροφος του α (mod n); Άσκηση: σχεδιάστε και υλοποιήστε τον επεκτεταμένο Ευκλείδειο αλγόριθμο 26

Ύψωση σε δύναμη power(a, n) result := 1; for i := 1 to n do result := result*a; return result Πολυπλοκότητα: O(n) εκθετική! (γιατί;) 27

... με επαναλαμβανόμενο τετραγωνισμό (Gauss) fastpower(a, n) result := 1; while n>0 do { if odd(n) then result:=result*a; n := n div 2; a := a*a } return result Ιδέα: a 13 = a 1. 2 3 +1. 2 2 +0. 2 1 +1. 2 0 Πολυπλοκότητα: O(log n) - πολυωνυμική 28

Αριθμοί Fibonacci 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55,... F 0 = 0, F 1 = 1 F n = F n-1 + F n-2, n >=2 Πρόβλημα: Δίνεται n, να υπολογιστεί το F n Πόσο γρήγορο μπορεί να είναι το πρόγραμμά μας; 29

Αριθμοί Fibonacci αναδρομικός αλγόριθμος F(n) if (n<2) then return n else return F(n-1)+F(n-2); Πολυπλοκότητα: T(n) = T(n-1) + T(n-2) + c, δηλ. η T(n) ορίζεται όπως η F(n) (συν μια σταθερά), οπότε: Τ(n) > F(n) = Ω(1.618 n ) 30

Αριθμοί Fibonacci καλύτερος αλγόριθμος F(n) a:=0; b:=1; for i:=2 to n do c:=b; b:=a+b; a:=c; return b; Πολυπλοκότητα: O(n) 31

Αριθμοί Fibonacci ακόμα καλύτερος αλγόριθμος Μπορούμε να γράψουμε τον υπολογισμό σε μορφή πινάκων: Από αυτό συμπεραίνουμε: Και ο αριθμός των αριθμητικών πράξεων μειώνεται σε O(log n). 32

Χρόνος εκτέλεσης αλγορίθμων Θεωρήστε 4 προγράμματα με αριθμό βημάτων O(2 n ), O(n 2 ), O(n), και O(logn) που το καθένα χρειάζεται 1 δευτερόλεπτο για να υπολογίσει το F(100). Πόσα δευτερόλεπτα θα χρειαστούν για να υπολογίσουν το F(n); F(100) F(101) F(110) F(200) c. 2 n c. n 2 c. n c. logn 1 1 1 1 2 1.02 1.01 1.002 1024 1.21 1.1 1.02?????? 4 2 1.15 33

Προβλήματα πρώτων αριθμών Primality testing: Δίνεται ακέραιος n. Είναι πρώτος; Σχετικά εύκολο. Ανήκει στο P όπως έδειξαν πρόσφατα (2002) προπτυχιακοί Ινδοί φοιτητές. Factoring (παραγοντοποίηση): Δίνεται ακέραιος n. Να βρεθούν οι πρώτοι παράγοντες του. Δεν ξέρουμε αν είναι εύκολο ή δύσκολο. Πιστεύουμε ότι δεν είναι στο P, αλλά ούτε ότι είναι τόσο δύσκολο όσο τα NP-complete προβλήματα. Για κβαντικούς υπολογιστές (που δεν έχουμε ακόμα καταφέρει να κατασκευάσουμε) ανήκει στο P. 34

Factoring και κρυπτογραφία (i) RSA: κρυπτογραφικό σχήμα δημοσίου κλειδιού. ΓιαναστείλειηA (Alice) στον B (Bob) ένα μήνυμα m: O B διαλέγει 2 μεγάλους πρώτους αριθμούς p και q, υπολογίζει το γινόμενο n = pq, και διαλέγει ακέραιο e σχετικά πρώτο με το φ(n) =(p-1)(q-1). Ο Β στέλνει στην Α τα n και e [δημόσιο κλειδί του Β] H Α στέλνει στον Β την τιμή c = m e (mod n) (κρυπτογράφημα). ΟΒυπολογίζειτοm: m = c d (mod n), όπου d = e -1 (mod φ(n)) [πολλαπλασιαστικός αντίστροφος του e modulo φ(n), ιδιωτικό κλειδί του Β] 35

Factoring και κρυπτογραφία (ii) Παράδειγμα συστήματος RSA: p=11, q=17, n=187, e=21, d=61, m=42, c=9 ΗασφάλειατουRSA στηρίζεται στην (εκτιμώμενη) δυσκολία του factoring Για την υλοποίηση του RSA χρησιμοποιούνται, μεταξύ άλλων: primality testing, ο αλγόριθμος επαναλαμβανόμενου τετραγωνισμού και ο επεκτεταμένος Ευκλείδειος αλγόριθμος 36

Συμπεράσματα Πολλά σύγχρονα συστήματα στηρίζονται στην ταχύτητα υπολογισμών που επιτυγχάνεται μέσω αποδοτικών αλγορίθμων Η υπολογιστική δυσκολία ορισμένων προβλημάτων (π.χ. factoring) μπορεί να είναι επιθυμητή (κρυπτογραφία) Τα μαθηματικά είναι πάντα επίκαιρα! 37