|
||||
|
||||
מהו מבחינתך מחולל מספרים אקראיים טוב? אילו תכונות צריכות להיות לו? |
|
||||
|
||||
1. שיהיה מהיר ככל האפשר. 2. שבקוד יהיה קצר ככל האפשר. 3. שבפלט לא יהיו שני מספרים זהים אחד אחרי השני. |
|
||||
|
||||
לגביי 3., אלא אם מ'ס האפשרויות קטן במיוחד, סמו סדרות בינריות וכדומה. |
|
||||
|
||||
(1) ו־(2) הן דרישות של יעילות. אני חושב שתסכים איתי שהקוד צריך קודם כל לעבוד היטב. לגבי (3), אני חושב שהניסוח שלך פשטני מדי. באופן כללי היינו רוצים שרצף המספרים יהיה לכל מטרה מעשית כמו רצף מספרים אקראי אמיתי. הנה רצף של ספרות (הקסדצימליות) אקראיות1 שקיבלתי מהמחשב שלי: 4de1 a457 d1ac f25c de18 22a3 6e41 69f0 הספרה 2 חזרה על עצמה. ואני מניח שאיך בכך פסול.מה הבעיה בכך שמספר חוזר על עצמו? 1 לצורך העניין השתמשתי ב־/dev/random שהוא דרך לקבל ביטים אקראיים מ"מאגר האנטרופיה" של המערכת. ביטים (מספיק) אקראיים אפשר לקבל ממקורות כמו זמני הגישה לדיסק ותזמוני הקלדות המקלדת. |
|
||||
|
||||
יותר מכך - פלט שבו אין לפעמים חזרה על אותה ספרה הוא בבירור לא אקראי. בכלל, בפלט אקראי סביר לצפות לפעמים אפילו לחזרות ארוכות. או בקיצור: תגובה 522196. |
|
||||
|
||||
אחת החולשות שעזרו לפצח את האניגמה... |
|
||||
|
||||
מה דעתך על: 1 2 3 4 5 6 7 ... יותר יעיל, לא? |
|
||||
|
||||
1 0 1 0 1 0 ... יכול להיות יעיל אפילו יותר, ומקיים את דרישה 3 אפילו למקרה הבינארי! |
חזרה לעמוד הראשי | המאמר המלא |
מערכת האייל הקורא אינה אחראית לתוכן תגובות שנכתבו בידי קוראים | |
RSS מאמרים | כתבו למערכת | אודות האתר | טרם התעדכנת | ארכיון | חיפוש | עזרה | תנאי שימוש | © כל הזכויות שמורות |