random — generera slumptal

Denna modul implementerar en pseudoslumptalsgenerator (PRNG). PRNG:n är en 32-bitars LCG i Yasmarang-stil; vid första importen hämtar den ett 32-bitars frö från samma hårdvarukälla som os.urandom() använder, och varje efterföljande tal är en deterministisk funktion av det fröet.

Varning

Utdatan är inte kryptografiskt säker – algoritmen är förutsägbar utifrån en kort utdatasekvens, och det initiala fröet bär endast 32 bitars entropi. För nyckelmaterial, sessionstoken, lösenordssalter eller annan säkerhetskänslig användning, anropa os.urandom() i stället.

Anteckning

Följande notation används för intervall:

  • () är öppna intervallparenteser och inkluderar inte sina ändpunkter. Till exempel betyder (0, 1) större än 0 och mindre än 1. I mängdnotation: (0, 1) = {x | 0 < x < 1}.

  • [] är slutna intervallparenteser som inkluderar alla sina gränspunkter. Till exempel betyder [0, 1] större än eller lika med 0 och mindre än eller lika med 1. I mängdnotation: [0, 1] = {x | 0 <= x <= 1}.

Funktioner för heltal

random.getrandbits(n: int) int

Returnera ett heltal med n slumpmässiga bitar (0 <= n <= 32).

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

Returnera ett slumpmässigt heltal i intervallet [a, b].

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

Den första formen returnerar ett slumpmässigt heltal från intervallet [0, stop). Den andra formen returnerar ett slumpmässigt heltal från intervallet [start, stop). Den tredje formen returnerar ett slumpmässigt heltal från intervallet [start, stop) i steg om step. Att till exempel anropa randrange(1, 10, 2) returnerar udda tal mellan 1 och 9 inklusive.

Funktioner för flyttal

random.random() float

Returnera ett slumpmässigt flyttal i intervallet [0.0, 1.0).

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

Returnera ett slumpmässigt flyttal N sådant att a <= N <= b för a <= b, och b <= N <= a för b < a.

Övriga funktioner

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

Initiera slumptalsgeneratormodulen med fröet n, som ska vara ett heltal. När inget argument (eller None) skickas in återfrösås PRNG:n från samma portspecifika källa som os.urandom() använder.

random.choice(sequence: Any) Any

Väljer och returnerar ett objekt slumpmässigt från sequence (tupel, lista eller valfritt objekt som stöder indexeringsoperationen).