גם הגרלה מהירה וגם לא לחזור על ערכים? לא פשוט.
אם באמת יש לך זכרון גדול אז אפשר להקצות מערך, נקרא לו מערך היחידה שמקיים A = i ולעשות עליו פרמוטציה ב-O(n) ויש לך RANDOM GENERATOR שבקריאה ה-iית מחזיר לך את המספר בתא ה-iי.אני יכול לחשוב על מספר רעיונות שקשורות לחבורות ציקליות מעל שדות גלואה GF(p) אבל בעקרון זה גם לא הכי רנדומלי שיש וגם השדה שלך הוא לא בהכרח Zp. מה שכן, נסה לבדוק את הנוסחא הזאת:
כלומר תבחר p ראשוני ו-X0 סתם מספר בטווח.
(אני אבדוק את זה בעצמי שנייה)
אם לא חשוב לך שלא יהיו חזרות, אז אפשר להשתמש בנוסחא למחולל מספרים כמו ב-C.
