random — rastgele sayılar üret

Bu modül, bir sözde-rastgele sayı üreteci (PRNG) uygular. PRNG, 32-bit Yasmarang tarzı bir LCG’dir; ilk içe aktarımda, os.urandom() ile aynı donanım kaynağından tek bir 32-bit tohum (seed) çeker ve sonraki her sayı, o tohumun belirleyici (deterministik) bir fonksiyonudur.

Uyarı

Çıktı kriptografik olarak güvenli değildir – algoritma kısa bir çıktı dizisinden tahmin edilebilir ve başlangıç tohumu yalnızca 32 bit entropi taşır. Anahtar malzemesi, oturum belirteçleri, parola tuzları (salt) veya güvenlik açısından hassas herhangi bir kullanım için bunun yerine os.urandom() çağırın.

Not

Aralıklar için aşağıdaki gösterim kullanılır:

  • () açık aralık parantezleridir ve uç noktalarını içermez. Örneğin, (0, 1) 0’dan büyük ve 1’den küçük anlamına gelir. Küme gösteriminde: (0, 1) = {x | 0 < x < 1}.

  • [] tüm limit noktalarını içeren kapalı aralık parantezleridir. Örneğin, [0, 1] 0’dan büyük veya eşit ve 1’den küçük veya eşit anlamına gelir. Küme gösteriminde: [0, 1] = {x | 0 <= x <= 1}.

Tamsayılar için fonksiyonlar

random.getrandbits(n: int) int

n rastgele bite sahip bir tamsayı döndürür (0 <= n <= 32).

random.randint(a: int, b: int) int

[a, b] aralığında rastgele bir tamsayı döndürür.

random.randrange(start: int, stop: int | None = None, step: int = 1) int

İlk biçim [0, stop) aralığından rastgele bir tamsayı döndürür. İkinci biçim [start, stop) aralığından rastgele bir tamsayı döndürür. Üçüncü biçim, [start, stop) aralığından step adımlarla rastgele bir tamsayı döndürür. Örneğin, randrange(1, 10, 2) çağrısı 1 ile 9 dahil arasındaki tek sayıları döndürür.

Kayan noktalı sayılar için fonksiyonlar

random.random() float

[0.0, 1.0) aralığında rastgele bir kayan noktalı sayı döndürür.

random.uniform(a: float, b: float) float

a <= b için a <= N <= b ve b < a için b <= N <= a olacak şekilde rastgele bir kayan noktalı sayı N döndürür.

Diğer Fonksiyonlar

random.seed(n: int | None = None, /) None

Rastgele sayı üreteci modülünü, bir tamsayı olması gereken n tohumu (seed) ile başlatır. Hiçbir argüman (veya None) geçirilmediğinde, PRNG, os.urandom() ile aynı bağlantı noktasına özgü kaynaktan yeniden tohumlanır.

random.choice(sequence: Any) Any

sequence (demet, liste veya alt simge işlemini destekleyen herhangi bir nesne) içinden rastgele bir öğe seçer ve döndürür.