random — satunnaislukujen luominen

Tämä moduuli toteuttaa pseudosatunnaislukugeneraattorin (PRNG). PRNG on 32-bittinen Yasmarang-tyylinen LCG; ensimmäisellä tuonnilla se hakee yhden 32-bittisen siemenluvun samasta laitteistolähteestä, jota os.urandom() käyttää, ja jokainen seuraava luku on tuon siemenluvun deterministinen funktio.

Varoitus

Tuloste ei ole kryptografisesti turvallinen – algoritmi on ennustettavissa lyhyestä tulostesarjasta, ja alkuperäinen siemenluku sisältää vain 32 bittiä entropiaa. Avainmateriaalia, istuntotunnuksia, salasanasaltteja tai mitä tahansa muuta turvallisuuskriittistä käyttöä varten kutsu sen sijaan os.urandom().

Muista

Väleille käytetään seuraavaa merkintätapaa:

  • () ovat avoimen välin sulkeita eivätkä sisällä päätepisteitään. Esimerkiksi (0, 1) tarkoittaa suurempaa kuin 0 ja pienempää kuin 1. Joukkomerkinnällä: (0, 1) = {x | 0 < x < 1}.

  • [] ovat suljetun välin sulkeita, jotka sisältävät kaikki rajapisteensä. Esimerkiksi [0, 1] tarkoittaa suurempaa tai yhtä suurta kuin 0 ja pienempää tai yhtä suurta kuin 1. Joukkomerkinnällä: [0, 1] = {x | 0 <= x <= 1}.

Kokonaislukufunktiot

random.getrandbits(n: int) int

Palauttaa kokonaisluvun, jossa on n satunnaista bittiä (0 <= n <= 32).

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

Palauttaa satunnaisen kokonaisluvun väliltä [a, b].

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

Ensimmäinen muoto palauttaa satunnaisen kokonaisluvun väliltä [0, stop). Toinen muoto palauttaa satunnaisen kokonaisluvun väliltä [start, stop). Kolmas muoto palauttaa satunnaisen kokonaisluvun väliltä [start, stop) askelin step. Esimerkiksi randrange(1, 10, 2)-kutsu palauttaa parittomia lukuja väliltä 1-9 päätepisteet mukaan lukien.

Liukulukufunktiot

random.random() float

Palauttaa satunnaisen liukuluvun väliltä [0.0, 1.0).

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

Palauttaa satunnaisen liukuluvun N siten, että a <= N <= b, kun a <= b, ja b <= N <= a, kun b < a.

Muut funktiot

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

Alustaa satunnaislukugeneraattorimoduulin siemenluvulla n, jonka tulee olla kokonaisluku. Kun argumenttia (tai None) ei välitetä, PRNG siemennetään uudelleen samasta porttikohtaisesta lähteestä, jota os.urandom() käyttää.

random.choice(sequence: Any) Any

Valitsee ja palauttaa yhden alkion satunnaisesti sekvenssistä sequence (monikko, lista tai mikä tahansa objekti, joka tukee indeksointioperaatiota).