random — יצירת מספרים אקראיים¶
מודול זה מממש מחולל מספרים פסאודו-אקראיים (PRNG). ה-PRNG הוא LCG בסגנון Yasmarang ברוחב 32 ביט; ביבוא הראשון הוא שואב seed אחד ברוחב 32 ביט מאותו מקור חומרה שבו משתמשת os.urandom(), וכל מספר עוקב הוא פונקציה דטרמיניסטית של אותו seed.
אזהרה
הפלט אינו מאובטח קריפטוגרפית – האלגוריתם ניתן לחיזוי מתוך רצף פלט קצר, וה-seed ההתחלתי נושא רק 32 ביט של אנטרופיה. עבור חומר מפתחות, אסימוני הפעלה, מלחי סיסמאות, או כל שימוש רגיש-אבטחה אחר, קראו ל-os.urandom() במקום זאת.
הערה
הסימון הבא משמש עבור מרווחים:
() הם סוגריים של מרווח פתוח ואינם כוללים את נקודות הקצה שלהם. לדוגמה, (0, 1) משמעו גדול מ-0 וקטן מ-1. בסימון קבוצות: (0, 1) = {x | 0 < x < 1}.
[] הם סוגריים של מרווח סגור הכוללים את כל נקודות הגבול שלהם. לדוגמה, [0, 1] משמעו גדול או שווה ל-0 וקטן או שווה ל-1. בסימון קבוצות: [0, 1] = {x | 0 <= x <= 1}.
פונקציות עבור מספרים שלמים¶
- random.randrange(start: int, stop: int | None = None, step: int = 1) int¶
הצורה הראשונה מחזירה מספר שלם אקראי מהטווח [0, stop). הצורה השנייה מחזירה מספר שלם אקראי מהטווח [start, stop). הצורה השלישית מחזירה מספר שלם אקראי מהטווח [start, stop) בצעדים של step. לדוגמה, קריאה ל-
randrange(1, 10, 2)תחזיר מספרים אי-זוגיים בין 1 ל-9 כולל.
פונקציות עבור מספרים ממשיים¶
פונקציות אחרות¶
- random.seed(n: int | None = None, /) None¶
מאתחלת את מודול מחולל המספרים האקראיים עם ה-seed n, שצריך להיות מספר שלם. כאשר לא מועבר ארגומנט (או
None), ה-PRNG מקבל seed מחדש מאותו מקור ייחודי-לפורט שבו משתמשתos.urandom().
- random.choice(sequence: Any) Any¶
בוחרת ומחזירה פריט אחד באקראי מתוך sequence (tuple, רשימה או כל אובייקט התומך בפעולת התחתית).