random — willekeurige getallen genereren

Deze module implementeert een pseudo-willekeurige-getallengenerator (PRNG). De PRNG is een 32-bits LCG in Yasmarang-stijl; bij de eerste import trekt deze één 32-bits seed uit dezelfde hardwarebron die os.urandom() gebruikt, en elk volgend getal is een deterministische functie van die seed.

Waarschuwing

De uitvoer is niet cryptografisch veilig – het algoritme is voorspelbaar op basis van een korte uitvoerreeks, en de initiële seed bevat slechts 32 bits aan entropie. Voor sleutelmateriaal, sessietokens, password salts of enig ander beveiligingsgevoelig gebruik dient u in plaats daarvan os.urandom() aan te roepen.

Notitie

De volgende notatie wordt gebruikt voor intervallen:

  • () zijn haakjes voor een open interval en bevatten hun eindpunten niet. Bijvoorbeeld, (0, 1) betekent groter dan 0 en kleiner dan 1. In verzamelingsnotatie: (0, 1) = {x | 0 < x < 1}.

  • [] zijn haakjes voor een gesloten interval die al hun grenspunten bevatten. Bijvoorbeeld, [0, 1] betekent groter dan of gelijk aan 0 en kleiner dan of gelijk aan 1. In verzamelingsnotatie: [0, 1] = {x | 0 <= x <= 1}.

Functies voor gehele getallen

random.getrandbits(n: int) int

Geeft een geheel getal terug met n willekeurige bits (0 <= n <= 32).

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

Geeft een willekeurig geheel getal terug in het bereik [a, b].

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

De eerste vorm geeft een willekeurig geheel getal terug uit het bereik [0, stop). De tweede vorm geeft een willekeurig geheel getal terug uit het bereik [start, stop). De derde vorm geeft een willekeurig geheel getal terug uit het bereik [start, stop) in stappen van step. Het aanroepen van randrange(1, 10, 2) geeft bijvoorbeeld oneven getallen terug tussen 1 en 9 inclusief.

Functies voor floats

random.random() float

Geeft een willekeurig drijvendekommagetal terug in het bereik [0.0, 1.0).

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

Geeft een willekeurig drijvendekommagetal N terug zodanig dat a <= N <= b voor a <= b, en b <= N <= a voor b < a.

Overige functies

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

Initialiseer de willekeurige-getallengeneratormodule met de seed n, die een geheel getal moet zijn. Wanneer geen argument (of None) wordt meegegeven, wordt de PRNG opnieuw geseed vanuit dezelfde port-specifieke bron die os.urandom() gebruikt.

random.choice(sequence: Any) Any

Kiest en geeft willekeurig één item terug uit sequence (tuple, lijst of een object dat de subscript-operatie ondersteunt).