מחולל מספרים פסאודו-אקראיים


כל מה שרצית לדעת על מחולל מספרים פסאודו-אקראיים:
מחולל מספרים פסאודו אקראיים (בקיצור PRNG), הוא אלגוריתם במחשב המייצר סדרת מספרים או אלמנטים המדמים בקירוב תכונות של רצף אקראי שנוצר באמצעות מחולל מספרים אקראיים אמיתי.
לאמיתו של דבר, רצף פסאודו-אקראי אינו אקראי היות שהוא נוצר בשיטה דטרמיניסטית מתוך קבוצה קטנה יחסית של אלמנטים הנקראת גרעין (seed) או מצב התחלתי (initial state) ובהינתן מידע זה ניתן לשחזור מדויק, מסיבה זו מכונה "פסאודו" דהיינו "מדומה".
באמצעות אלגוריתמים המיוחדים לכך, ניתן לייצר רצפים פסאודו אקראיים, הקרובים מאוד באיכותם לרצפים שנוצרו באמצעות מחולל אמיתי, באופן שקשה מאוד מבחינה סטטיסטית חישובית להבדיל ביניהם.
מחוללים פסאודו אקראיים משחקים תפקיד חשוב בסימולציה לצורך מדעי, הימורים, משחקי מחשב וקריפטוגרפיה.
בין משפחות האלגוריתמים הנפוצים כיום נמנים גרסאות של Linear Congruential Generators בקיצור LCG המחולל הנפוץ ביותר המבוסס על אריתמטיקה מודולרית.
משפחת מחוללי Lagged Fibonacci generator בקיצור LFG המבוסס על סדרת פיבונאצ'י וכן Linear Feedback Shift Generator בקיצור LFS שהוא אוגר הזזה-החזרה המיושם בחומרה בדרך כלל ונפוץ בגרסאות מסוימות של צופני זרם.
כמו כן קיימים מחוללים אקראיים חדשים כמו Blum Blum Shub (בקיצור BBS) המבוסס על אריתמטיקה מודולרית וכן Fortuna, Mersene Twister ו-Multiply-with-carry של ג'ורג' מרסגליה הידוע גם בשל פיתוח סוללת Diehard (שמרן) – אוסף של מבחנים סטטיסטיים שונים לבדיקת אקראיות.
אלגוריתם פסאודו אקראי מקבל כקלט קבוצה קטנה של מספרים אקראיים הנקראת גרעין התחלתי ומפיק פלט של סדרת מספרים פסאודו אקראיים בהתפלגות אחידה באורך הרצוי באמצעות פונקציה אקראית כלשהי.
תפקיד המחולל הוא למעשה "למתוח" את הקלט לאורך הרצוי תוך שמירה על רמת אקראיותו במידת האפשר.
הגרעין ההתחלתי צריך להיות ממקור אקראי ולא ערך קבוע, שאם לא כן תוצאת המחולל תחזור על עצמה בדיוק.
מקור אקראי יכול להיות כל אמצעי פיזי בדוק שניתן להפיק ממנו מספרים אקראיים כמו מחולל אקראי או בדרך קלה יותר, ניצול אנטרופיה זולה הזמינה בכל מערכת הפעלה כגון: מספר מילי שניות שחלפו מאז הפעלת המחשב, נתוני ניהול זיכרון, אפיקי קלט/פלט, יומני תיעוד, הקשות מקלדת, קוארדינטות העכבר או כל אירוע אקראי אחר.
לחיזוק האקראיות לעתים מעבירים את הפלט הפונקציה בפונקציית גיבוב או פונקציות הצפנה.
את הפלט האקראי יש לבדוק בזהירות באמצעות מבחנים סטטיסטיים ידועים, בהתאם לרמת האקראיות הנדרשת.
רוברט קוביו פרסם פעם מאמר שכותרתו "יצירת מספרים אקראיים חשובה מדי מכדי להותירה בידי הגורל".
וכמו שהתבדח פעם ג'ון פון נוימן: "עצם המחשבה להשתמש בשיטות אריתמטיות ליצירת מספרים אקראיים היא בגדר חטא".
דונלד קנות' כתב בספרו (The Art of Computer Programming) "אין לייצר מספרים אקראיים באמצעות אלגוריתם שנבחר באקראי".

נלקח מויקיפדיה

הגדרות נוספות הקשורות למחולל מספרים פסאודו-אקראיים:
אלגוריתמים
אקראיות