Βρίσκοντας τους πρώτους αριθμούς μέσα από κίνηση
Οι πρώτοι αριθμοί βρίσκονται στον πυρήνα των μαθηματικών και της σύγχρονης κρυπτογραφίας. Κάθε φυσικός αριθμός μπορεί να αναλυθεί ως γινόμενο πρώτων, όμως η κατανομή τους παραμένει ένα από τα πιο αινιγματικά φαινόμενα στα μαθηματικά.
Παρά τη μελέτη αιώνων, οι πρώτοι αριθμοί εμφανίζονται ακανόνιστοι και δύσκολο να προβλεφθούν. Αυτή η φαινομενική τυχαιότητα έχει οδηγήσει σε ερωτήματα για το αν υπάρχει μια βαθύτερη δομή πίσω από αυτούς.
Σε αυτό το άρθρο, εξερευνούμε τους πρώτους αριθμούς όχι ως στατικά στοιχεία, αλλά ως ένα αναδυόμενο φαινόμενο που προκύπτει από περιοδική κίνηση και συγχρονισμό.
Μια Μηχανική Προσέγγιση στους Πρώτους Αριθμούς
Αντί να ελέγχουμε τους αριθμούς για διαιρεσιμότητα ή να ψάχνουμε πιθανούς παράγοντες, κατασκευάζουμε ένα απλό δυναμικό σύστημα:
- Ένα σύνολο ομόκεντρων κύκλων
- Όλοι περιστρέφονται με την ίδια γραμμική ταχύτητα
- Κάθε κύκλος ξεκινάει από το ίδιο σημείο αναφοράς
Ο μικρότερος κύκλος λειτουργεί σαν ρολόι. Κάθε φορά που ολοκληρώνει μια πλήρη περιστροφή, ένας μετρητής αυξάνεται κατά ένα. Οι μεγαλύτεροι κύκλοι ολοκληρώνουν τις περιστροφές τους πιο αργά, ανάλογα με την ακτίνα τους.
Σε συγκεκριμένες στιγμές, πολλοί κύκλοι φτάνουν ταυτόχρονα στο σημείο αναφοράς. Σε άλλες στιγμές, μόνο ο μικρότερος κύκλος το κάνει. Τότε συμβαίνει το εξής:
Κάθε φορά που μόνο ο πρώτος κύκλος ολοκληρώνει μια περιστροφή, ο μετρητής αντιστοιχεί σε έναν πρώτο αριθμό.
Χωρίς διαίρεση, δοκιμές παραγόντων ή αν ένας αριθμός «χωράει» μέσα σε άλλον. Το σύστημα δεν ξέρει καν τι είναι πρώτος αριθμός. Οι πρώτοι αριθμοί απλώς αναδύονται από τη συγχρονικότητα -ή την έλλειψή της- ανάμεσα σε περιοδικές κινήσεις.
Ένας Αλγόριθμος Χωρίς Αριθμητικούς Ελέγχους
Από αλγοριθμική σκοπιά, η διαδικασία είναι αξιοσημείωτα απλή:
Κυκλικός Αλγόριθμος Ανάδυσης Πρώτων (Cyclic Prime Emergence Algorithm)
- Ξεκινάμε με δύο ομόκεντρους κύκλους ακτίνας r και 2r.
- Τους περιστρέφουμε με σταθερή γραμμική ταχύτητα από το ίδιο σημείο εκκίνησης.
- Κάθε φορά που ο πρώτος κύκλος ολοκληρώνει μια περιστροφή:
- Αυξάνουμε έναν μετρητή.
- Αν κανένας άλλος κύκλος δεν ολοκληρώνει περιστροφή εκείνη τη στιγμή, η τιμή n του μετρητή είναι πρώτος αριθμός.
- Αν η τιμή του μετρητή n είναι πρώτος αριθμός, προσθέτουμε έναν νέο κύκλο ακτίνας nr.
Ο αλγόριθμος δεν βασίζεται στον αριθμητικό ορισμό του πρώτου αριθμού. Αντίθετα, η πρωτογενής ιδιότητα κωδικοποιείται έμμεσα στην περιοδικότητα και στις σχετικές αναλογίες.
Αυτά είναι τα τέσσερα πρώτα βήματα του αλγορίθμου:






Βασικές Διαφορές από το Κόσκινο του Ερατοσθένη
Σε καθαρά μαθηματικό επίπεδο, ο Κυκλικός Αλγόριθμος Ανάδυσης αποτελεί μια γεωμετρική αναδιατύπωση του Κοσκίνου του Ερατοσθένη, καθώς και οι δύο μέθοδοι βασίζονται στον εντοπισμό των πολλαπλασίων των πρώτων αριθμών. Ωστόσο, η αλγοριθμική τους υλοποίηση έχει μερικές θεμελιώδεις αλλαγές:
- Μηδενικές Διαιρέσεις:
Η πρωτότητα δεν προσδιορίζεται μέσω αριθμητικής διαίρεσης (π.χ. n mod d), αλλά μέσω γεωμετρικής «συντονιστικής» συμπεριφοράς (resonance) και ευθυγράμμισης φάσης. - Άπειρη Ροή (Streaming):
Σε αντίθεση με τη στατική, «παρτίδα-παρτίδα» λειτουργία του κοσκίνου του Ερατοσθένη, εδώ έχουμε μια αυξητική (incremental) διαδικασία. Δεν απαιτείται προκαθορισμένο άνω όριο, και οι πρώτοι αριθμοί προκύπτουν συνεχώς καθώς εξελίσσεται η προσομοίωση. - Εγγενής Παραλληλισμός χωρίς Ανάγκη Μνήμης: Η μετατόπιση από τους στατικούς πίνακες μνήμης (RAM) σε αυτόνομες, περιοδικές οντότητες επιτρέπει στον αλγόριθμο να εκτελεστεί πλήρως παράλληλα σε ψηφιακή λογική (FPGA), καταργώντας τα στενά όρια των hardware lookups.
Δείτε περισσότερα στο άρθρο Από τους Κύκλους στη Σιλικόνη: Υλοποίηση του Αλγορίθμου Κυκλικής ανάδυσης Πρώτων Αριθμών σε FPGA
Σχέση με τα Incremental (Segmented) Κόσκινα
Παρότι τα incremental κόσκινα επιτρέπουν την παραγωγή πρώτων αριθμών χωρίς προκαθορισμένο όριο N, βασίζονται στη σειριακή επεξεργασία τμημάτων μνήμης (segments) και απαιτούν τη διατήρηση μιας δυναμικής λίστας των ήδη ανακαλυφθέντων πρώτων. Αντίθετα, ο Κυκλικός Αλγόριθμος Ανάδυσης καταργεί πλήρως την ανάγκη για buffers μνήμης, indexing και υπολογισμό διευθύνσεων. Η πληροφορία του παρελθόντος δεν αποθηκεύεται, αλλά ενσωματώνεται εγγενώς στη δυναμική κατάσταση και τη φάση των αυτόνομων κύκλων, μετατρέποντας το πρόβλημα από αναζήτηση στη μνήμη σε μια συνεχή ροή στον χρόνο.
Περιοδικότητα, Όχι Κύκλοι
Είναι σημαντικό να τονίσουμε ότι οι ίδιοι οι κύκλοι δεν είναι απαραίτητοι.
Το φαινόμενο βασίζεται στην περιοδική κίνηση -όχι στη γεωμετρία καθαυτή. Οι κύκλοι απλώς προσφέρουν τον πιο διαισθητικό και συμμετρικό τρόπο για τον ανθρώπινο νου να οπτικοποιήσει την περιοδικότητα. Οποιοδήποτε σύστημα ικανό να παράγει σταθερές, επαναλαμβανόμενες περιόδους θα μπορούσε, θεωρητικά, να αντικαταστήσει τους κύκλους.
Σημασία έχουν οι σχετικές περίοδοι και ο συγχρονισμός -ή η απουσία του. Με αυτή την έννοια, οι πρώτοι αριθμοί εμφανίζονται όχι ως καθαρά αριθμητικά αντικείμενα αλλά ως συνέπειες του χρονισμού.
Μια Σύνδεση με το π
Οι κύκλοι αναδεικνύουν κάτι ακόμα: τον αριθμό π.
Κάθε περιστροφή εμπεριέχει εκ των πραγμάτων το π, συνδέοντας τους πρώτους αριθμούς με την περιοδικότητα μέσω της γεωμετρίας, με έναν άμεσο και οπτικό τρόπο. Αυτό αντανακλά το διάσημο αποτέλεσμα του Euler, όπου ένα άπειρο γινόμενο πάνω σε πρώτους αριθμούς αποκαλύπτει απροσδόκητα το π. Εδώ, αυτή η σύνδεση γίνεται χειροπιαστή.
Οι πρώτοι αριθμοί δεν είναι πια αφηρημένα σύμβολα -είναι κινήσεις, περιστροφές και ρυθμοί.
Από τον Αλγόριθμο στο Φαινόμενο
Όσο περισσότερο λειτουργεί το σύστημα, τόσο λιγότερο μοιάζει με αλγόριθμο και τόσο περισσότερο με φυσική διαδικασία. Δεν παρακολουθούμε έναν υπολογισμό, παρακολουθούμε ένα φαινόμενο να ξεδιπλώνεται. Δεν υπάρχει προκαθορισμένο σημείο τερματισμού. Η διαδικασία μπορεί να συνεχιστεί επ’ αόριστον, περιοριζόμενη μόνο από τον χρόνο και τους πόρους.
Αυτή η οπτική δεν αντικαθιστά τον κλασικό ορισμό των πρώτων αριθμών. Αντίθετα, τον συμπληρώνει -αποκαλύπτοντας ότι κάτω από τη διαιρεσιμότητα κρύβεται μια βαθύτερη δομή βασισμένη στην περιοδικότητα και την ανάδυση.
Δοκιμάστε το Μόνοι σας
Μια υλοποίηση ανοιχτού κώδικα αυτού του συστήματος είναι διαθέσιμη, μαζί με μια διαδραστική εφαρμογή που χρησιμοποιείται για τις οπτικοποιήσεις.
Μπορείτε να βρείτε τον πηγαίο κώδικα στο Github: PrimesWithCircle ή να κατεβάσετε απευθείας την εφαρμογή από εδώ.
Η εφαρμογή τρέχει σε Windows 10 ή 11. Απλώς αποσυμπιέστε το αρχείο ZIP και εκτελέστε το PrimesWithCircles.exe από τον φάκελο.
Μπορείτε επίσης να παρακολουθήσετε μία παρουσίαση του αλγόριθμου και εδώ:


