בתשובה לצפריר כהן, 07/09/09 20:39
מחולל אלטרנטיבי 524207
1. שיהיה מהיר ככל האפשר.
2. שבקוד יהיה קצר ככל האפשר.
3. שבפלט לא יהיו שני מספרים זהים אחד אחרי השני.
מחולל אלטרנטיבי 524208
לגביי 3., אלא אם מ'ס האפשרויות קטן במיוחד, סמו סדרות בינריות וכדומה.
מחולל אלטרנטיבי 524213
(1) ו־(2) הן דרישות של יעילות. אני חושב שתסכים איתי שהקוד צריך קודם כל לעבוד היטב.

לגבי (3), אני חושב שהניסוח שלך פשטני מדי. באופן כללי היינו רוצים שרצף המספרים יהיה לכל מטרה מעשית כמו רצף מספרים אקראי אמיתי.

הנה רצף של ספרות (הקסדצימליות) אקראיות‏1 שקיבלתי מהמחשב שלי:

4de1 a457 d1ac f25c de18 22a3 6e41 69f0

הספרה 2 חזרה על עצמה. ואני מניח שאיך בכך פסול.

מה הבעיה בכך שמספר חוזר על עצמו?

1 לצורך העניין השתמשתי ב־‎/dev/random שהוא דרך לקבל ביטים אקראיים מ"מאגר האנטרופיה" של המערכת. ביטים (מספיק) אקראיים אפשר לקבל ממקורות כמו זמני הגישה לדיסק ותזמוני הקלדות המקלדת.
מחולל אלטרנטיבי 524219
יותר מכך - פלט שבו אין לפעמים חזרה על אותה ספרה הוא בבירור לא אקראי. בכלל, בפלט אקראי סביר לצפות לפעמים אפילו לחזרות ארוכות. או בקיצור: תגובה 522196.
מחולל אלטרנטיבי 524395
אחת החולשות שעזרו לפצח את האניגמה...
מחולל אלטרנטיבי 524223
מה דעתך על: 1 2 3 4 5 6 7 ... יותר יעיל, לא?
מחולל אלטרנטיבי 524289
1 0 1 0 1 0 ... יכול להיות יעיל אפילו יותר, ומקיים את דרישה 3 אפילו למקרה הבינארי!

חזרה לעמוד הראשי המאמר המלא

מערכת האייל הקורא אינה אחראית לתוכן תגובות שנכתבו בידי קוראים