Γεννήτρια τυχαίων αριθμών: Διαφορά μεταξύ των αναθεωρήσεων

Περιεχόμενο που διαγράφηκε Περιεχόμενο που προστέθηκε
Διάσωση 1 πηγών και υποβολή 0 για αρχειοθέτηση.) #IABot (v2.0
μ Bot: Replace deprecated <source> tag and "enclose" parameter.
Γραμμή 2:
Μια '''γεννήτρια τυχαίων αριθμών''' είναι μια [[Υπολογιστής|υπολογιστική]] ή μηχανική συσκευή που έχει σχεδιαστεί για να παράγει μια ακολουθία αριθμών ή συμβόλων που δεν ακολουθούν κάποιο μοτίβο, δηλαδή εμφανίζονται [[Τυχαίο συμβάν|τυχαία]].
 
Οι πολλές εφαρμογές της τυχαιότητας έχουν οδηγήσει στην ανάπτυξη πολλών διαφορετικών μεθόδων για την παραγωγή τυχαίων δεδομένων. Πολλές από αυτές υπάρχουν από τους αρχαίους χρόνους, όπως τα [[ζάρια]], το [[Ρίξιμο Νομίσματος|ρίξιμο ενός νομίσματος]], το [[ανακάτεμα]] της [[Τράπουλα|τράπουλαςτράπουλα]]ς και πολλές άλλες τεχνικές. Λόγω της μηχανικής φύσεως αυτών των τεχνικών, η δημιουργία μεγάλων ακολουθιών πραγματικά τυχαίων αριθμών (κάτι σημαντικό για την στατιστική) απαιτεί πολλή εργασία και χρόνο. Έτσι, τα αποτελέσματα πολλές φορές συλλέγονταν και διανέμονταν ως [[Πίνακας τυχαίων αριθμών|πίνακες τυχαίων αριθμών]]. Σήμερα, μετά την έλευση των υπολογιστικών γεννητριών τυχαίων αριθμών, ένας αυξανόμενος αριθμός των κυβερνητικών λαχείων και τυχερών παιχνιδιών χρησιμοποιούν ΓΤΑ αντί για τις πιο παραδοσιακές μεθόδους. Για παράδειγμα, σήμερα χρησιμοποιούνται ΓΤΑ για να καθορίσουν τα αποτελέσματα στους σύγχρονους [[Κουλοχέρης|κουλοχέρηδες]]. <ref>{{cite web
| title = Introduction to Slot Machines
| url = http://slotsvariations.com/slot-machine.htm
Γραμμή 40:
{{Main|Υλική γεννήτρια τυχαίων αριθμών}}
 
Οι παλαιότερες μέθοδοι για την παραγωγή τυχαίων αριθμών - [[ζάρια]], [[Ρίξιμο νομίσματος|ρίξιμο ενός νομίσματος]], τροχοί [[Ρουλέτα|ρουλέταςρουλέτα]]ς - χρησιμοποιούνται ακόμα και σήμερα, κυρίως μόνο στα παιχνίδια και τα τυχερά παιχνίδια, διότι είναι πολύ αργές για τις περισσότερες εφαρμογές της στατιστικής και κρυπτογραφίας.
 
Μια υλική γεννήτρια τυχαίων αριθμών μπορεί να βασίζεται σε ένα τυχαίο ατομικό ή υποατομικό φυσικό φαινόμενο του οποίου η απροβλεπτικότητα μπορεί να αποδοθεί στους νόμους της [[Κβαντική μηχανική|κβαντικής μηχανικής]]. Πηγές [[Εντροπία|εντροπίαςεντροπία]]ς περιλαμβάνουν [[Ραδιενεργός ισορροπία|ραδιενεργό διάσπαση]], [[Johnson–Nyquist noise|θερμικό θόρυβο]], [[Πυροβολισμός|θόρυβο πυροβολισμού]], και τον [[Ραδιόφωνο|θόρυβο ραδιοφώνου]]. Ωστόσο, τα φυσικά φαινόμενα και τα εργαλεία που χρησιμοποιούνται για τη μέτρησή τους διαθέτουν γενικά ασυμμετρίες και συστηματικές αποκλίσεις που κάνουν τα αποτελέσματά τους να μην είναι ομοιόμορφα τυχαία. Μία [[Συνάρτηση παραγωγής|συνάρτηση τυχαίας απαγωγής]], όπως μια [[Συνάρτηση κατατεμαχισμού|κρυπτογραφική συνάρτηση κατακερματισμού]], μπορεί να χρησιμοποιηθεί για να προσεγγίσει μια ομοιόμορφη κατανομή των δυαδικών ψηφίων από μία μη-ομοιόμορφα τυχαία πηγή, αν και σε χαμηλότερο ρυθμό δυαδικών ψηφίων.
 
Το 2010, ο Κάντερ et al. από το Πανεπιστήμιο του Μπαρ-Ιλάν, δημιούργησε μία φυσική γεννήτρια τυχαίων δυαδικών ψηφίων που λειτουργεί σε ποσοστό 300 gigabits ανά δευτερόλεπτο, τη γρηγορότερη που έχει μέχρι στιγμής δημιουργηθεί.<ref>Kanter, Ido; Aviad, Yaara; Reidler, Igor; Cohen, Elad; Rosenbluh, Michael. An optical ultrafast random bit generator. Nature Photonics, Volume 4, Issue 1, pp. 58–61 (2010).</ref>
Διάφοροι τρόποι συλλογής αυτής της πληροφορίας έχουν επινοηθεί. Για παράδειγμα, η ιστοσελίδα [[Random.org]] διακυμάνσεις στο πλάτος του ατμοσφαιρικού θορύβου που παράγεται από ένα κανονικό ραδιόφωνο. Μερικές τεχνικές που σχετίζονται με την ασφάλεια λογισμικού ηλεκτρονικών υπολογιστών απαιτούν από τον χρήστη να κάνει μια σειρά από κινήσεις του ποντικιού ή κτύπημα πλήκτρων ώστε να δημιουργηθεί επαρκής εντροπία που απαιτείται για τη δημιουργία τυχαίων κλειδιών ή να αρχικοποιήσει γεννήτριες ψευδοτυχαίων αριθμών. <ref>{{cite web
| last = TrueCrypt Foundation
| title = TrueCrypt Beginner's Tutorial, Part 3
Γραμμή 53:
=== Υπολογιστικές μεθόδοι ===
 
Οι γεννήτριες ψευδοτυχαίων αριθμών (PRNGs) είναι [[Αλγόριθμος|αλγόριθμοι]] που μπορούν να δημιουργήσουν αυτόματα μεγάλες σειρές αριθμών με καλές ιδιότητες τυχαιότητας, όμως η σειρά σε κάποιο σημείο αναγκάζεται να επαναληφθεί. Η σειρά των τιμών που παράγονται από τέτοιους αλγόριθμους καθορίζονται γενικά από ένα αρχικό αριθμό από ονομάζεται '''κλειδί''' ή '''σπόρος'''. Ένας από τους πιο γνωστούς αλγόριθμους είναι η [[linear congruential generator|γραμμική συμβατική γεννήτρια]], η οποία χρησιμοποιεί την επανάληψη
:<math>X_{n+1} = (a X_n + b)\, \textrm{mod}\, m</math>
για να παράγει αριθμούς. Ο μέγιστος αριθμός των αριθμών του τύπου μπορεί να παράγει είναι o συντελεστής m . Για την αποφυγή ορισμένων μη τυχαίων ιδιοτήτων της γραμμικής συμβατικής γεννήτριας, αρκετές τέτοιες γεννήτριες με ελαφρώς διαφορετικές τιμές του συντελεστή πολλαπλασιασμού A μπορούν να χρησιμοποιηθούν παράλληλα με μια "κύρια" γεννήτρια τυχαίων αριθμών να επιλέγει μεταξύ των πολλών διαφορετικών γεννητριών.{{Citation needed|date=December 2013}}
Γραμμή 65:
Ένα παράδειγμα μιας απλής γεννήτριας ψευδοτυχαίων αριθμών είναι η μέθοδος multiply-with-carry του George Marsaglia. Είναι υπολογιστικά γρήγορη και έχει καλές (αν και όχι κρυπτογραφικά ισχυρές) ιδιότητες:<ref>{{cite web | last = Marsaglia | first = George | title = sci.stat.math | date = 1999-01-12 | work = | url = http://groups.google.com/group/sci.crypt/browse_thread/thread/ca8682a4658a124d/ | accessdate = 2010-02-10 | archiveurl = https://web.archive.org/web/20110605092008/http://groups.google.com/group/sci.crypt/browse_thread/thread/ca8682a4658a124d/ | archivedate = 2011-06-05 | url-status = dead }}</ref>
 
<sourcesyntaxhighlight lang="csharp">
m_w = <επέλεξε-αρχικοποιητή>; /* δεν πρέπει να είναι μηδέν, ούτε 0x464fffff */
m_z = <επέλεξε-αρχικοποιητή>; /* δεν πρέπει να είναι μηδέν, ούτε 0x9068ffff */
Γραμμή 75:
return (m_z << 16) + m_w; /* 32-bit αποτέλεσμα*/
}
</syntaxhighlight>
</source>
 
=== Παραγωγή από [[κατανομή πιθανότητας]] ===
 
Υπάρχουν μερικές μέθοδοι που μπορούν να δημιουργήσουν έναν τυχαίο αριθμό με βάση μια [[συνάρτηση πυκνότητας πιθανότητας]]. Αυτές οι μέθοδοι περιλαμβάνουν το μετασχηματισμό με κάποιο τρόπο ενός ομοιόμορφα τυχαίου αριθμού. Εξαιτίας αυτού, αυτές οι μέθοδοι λειτουργούν εξίσου καλά στην παραγωγή ψευδοτυχαίων και αληθινά τυχαίων αριθμών. Μία μέθοδος, που ονομάζεται η μέθοδος αναστροφής, περιλαμβάνει την ενσωμάτωση επάνω σε μια περιοχή μεγαλύτερη ή ίση με τον τυχαίο αριθμό (η οποία θα πρέπει να παράγεται μεταξύ 0 και 1 για σωστές κατανομές). Μία δεύτερη μέθοδος, που ονομάζεται μέθοδος αποδοχής-απόρριψης, περιλαμβάνει την επιλογή μιας τιμής x και y και ελέγχει αν η συνάρτηση του x είναι μεγαλύτερη από την τιμή y. Αν είναι, τότε η τιμή x είναι αποδεκτή. Διαφορετικά, η τιμή του x απορρίπτεται και ο αλγόριθμος προσπαθεί ξανά.<ref>{{cite web | last = The MathWorks | first = | title = Common generation methods | date = | work = | url = http://www.mathworks.de/help/toolbox/stats/br5k9hi-1.html | accessdate = 2011-10-13 }}{{Dead link|date=Σεπτέμβριος 2019 }}</ref><!-- [http://www.mathworks.com/access/helpdesk/help/toolbox/stats/bqttfc1.html#bqt8l8g]--><ref>{{ cite web | last = The Numerical Algorithms Group | first = | title = G05 – Random Number Generators | date = | work = NAG Library Manual, Mark 23 | url = http://www.nag.co.uk/numeric/fl/nagdoc_fl23/pdf/G05/g05intro.pdf | accessdate = 2012-02-09 }}</ref>
 
=== Παραγωγή από ανθρώπους ===