random --- menghasilkan bilangan acak

Modul ini mengimplementasikan generator bilangan acak-semu (PRNG). PRNG adalah LCG bergaya Yasmarang 32-bit; pada impor pertama ia mengambil satu seed 32-bit dari sumber perangkat keras yang sama yang digunakan os.urandom(), dan setiap bilangan berikutnya adalah fungsi deterministik dari seed tersebut.

Peringatan

Output tidak aman secara kriptografis -- algoritma ini dapat diprediksi dari urutan output yang pendek, dan seed awal hanya membawa 32 bit entropi. Untuk materi kunci, token sesi, garam kata sandi, atau penggunaan sensitif keamanan lainnya, panggil os.urandom() sebagai gantinya.

Catatan

Notasi berikut digunakan untuk interval:

  • () adalah tanda kurung interval terbuka dan tidak menyertakan titik akhirnya. Misalnya, (0, 1) berarti lebih besar dari 0 dan kurang dari 1. Dalam notasi himpunan: (0, 1) = {x | 0 < x < 1}.

  • [] adalah tanda kurung interval tertutup yang menyertakan semua titik batasnya. Misalnya, [0, 1] berarti lebih besar dari atau sama dengan 0 dan kurang dari atau sama dengan 1. Dalam notasi himpunan: [0, 1] = {x | 0 <= x <= 1}.

Fungsi untuk integer

random.getrandbits(n: int) int

Mengembalikan integer dengan n bit acak (0 <= n <= 32).

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

Mengembalikan integer acak dalam rentang [a, b].

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

Bentuk pertama mengembalikan integer acak dari rentang [0, stop). Bentuk kedua mengembalikan integer acak dari rentang [start, stop). Bentuk ketiga mengembalikan integer acak dari rentang [start, stop) dalam langkah-langkah step. Misalnya, memanggil randrange(1, 10, 2) akan mengembalikan bilangan ganjil antara 1 dan 9 inklusif.

Fungsi untuk float

random.random() float

Mengembalikan bilangan floating point acak dalam rentang [0.0, 1.0).

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

Mengembalikan bilangan floating point acak N sedemikian rupa sehingga a <= N <= b untuk a <= b, dan b <= N <= a untuk b < a.

Fungsi Lainnya

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

Menginisialisasi modul generator bilangan acak dengan seed n, yang harus berupa integer. Ketika tidak ada argumen (atau None) yang diteruskan, PRNG di-seed ulang dari sumber khusus-port yang sama yang digunakan os.urandom().

random.choice(sequence: Any) Any

Memilih dan mengembalikan satu item secara acak dari sequence (tuple, daftar, atau objek apa pun yang mendukung operasi subscript).