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).