random -modulet tilbyder en række funk­tio­ner til ge­ne­re­ring af til­fæl­di­ge tal i for­skel­li­ge formater, lige fra heltal til flydende tal til ud­væl­gel­se af elementer fra lister.

Hvad er Pythons random-modul, og hvad kan det bruges til?

random -modulet random er et indbygget bibliotek, der giver dig mulighed for at generere til­fæl­di­ge tal og udføre til­fæl­dig­heds­ba­se­re­de ope­ra­tio­ner i dine pro­gram­mer. Det in­de­hol­der for­skel­li­ge funk­tio­ner til ge­ne­re­ring af pseu­do­til­fæl­di­ge tal, der kan bruges i mange ap­pli­ka­tio­ner, fra si­mu­le­ring til spil­ud­vik­ling og kryp­to­gra­fi­ske opgaver.

Et vigtigt kendetegn ved til­fæl­dig­heds­mo­du­let er dets evne til at levere re­pro­du­cer­ba­re re­sul­ta­ter. Ved at fastlægge en start­vær­di eller seed kan processen med tilfældig ge­ne­re­ring re­pro­du­ce­res. Dette er en fordel ved test, eks­pe­ri­men­ter og si­mu­le­rin­ger, der kræver kon­si­sten­te til­fæl­di­ge data.

Hvad er funk­tio­ner­ne i random-modulet?

Python-modulet random in­de­hol­der for­skel­li­ge metoder til ge­ne­re­ring og be­hand­ling af til­fæl­di­ge tal. Følgende tabel giver et overblik over funk­tio­ner­ne og deres egen­ska­ber:

Funk­tio­nens navn For­kla­ring
seed(a=None, version=2) Definerer start­vær­di­en (seed) for til­fæl­dig­heds­ge­ne­ra­to­ren
getstate() Re­tur­ne­rer den aktuelle tilstand for tilfældig tal­ge­ne­ra­to­ren som et objekt
setstate(state) Nulstil­ler til­stan­den for til­fæl­dig­heds­ge­ne­ra­to­ren ved hjælp af et til­stands­ob­jekt
getrandbits(k) Re­tur­ne­rer et heltal med k bits
randrange(start, stop, step) Opretter et til­fæl­digt heltal fra det angivne interval
randint(a, b) Re­tur­ne­rer et til­fæl­digt heltal i det angivne interval
choice(seq) Re­tur­ne­rer et til­fæl­digt element fra den givne sekvens
choices(population, weights=None, *, cum_weights=None, k=1) Opretter en liste med k til­fæl­digt udvalgte elementer fra po­pu­la­tio­nen; det er valgfrit at angive sand­syn­lig­he­der­ne
sample(k, population) Opretter en liste med k til­fæl­digt udvalgte elementer fra po­pu­la­tio­nen, uden dubletter
shuffle(x) Blander ele­men­ter­ne i en liste i tilfældig ræk­ke­føl­ge.
random() Re­tur­ne­rer et til­fæl­digt flydende tal mellem 0 og 1
uniform(a, b) Re­tur­ne­rer et til­fæl­digt flydende tal i det angivne interval, inklusive græn­se­vær­di­er­ne
triangular(low, high, mode) Opretter et til­fæl­digt flydende tal i det tre­kan­te­de for­de­lings­in­ter­val.
betavariate(alpha, beta) Re­tur­ne­rer et til­fæl­digt flydende tal fra en be­ta­for­de­ling.
expovariate(lambd) Re­tur­ne­rer et til­fæl­digt flydende tal fra en eks­po­nen­ti­el fordeling.
gammavariate(alpha, beta) Opretter et til­fæl­digt flydende tal fra en gam­ma­for­de­ling.
gauss(mu, sigma) Re­tur­ne­rer et til­fæl­digt flydende tal fra en Gauss-fordeling.
lognormvariate(mu, sigma) Opretter et til­fæl­digt flydende tal fra en lo­ga­rit­misk nor­mal­for­de­ling.
normalvariate(mu, sigma) Re­tur­ne­rer et til­fæl­digt flydende tal fra en nor­mal­for­de­ling.
vonmisesvariate(mu, kappa) Re­tur­ne­rer et til­fæl­digt flydende tal med en von Mises-fordeling eller cirkulær nor­mal­for­de­ling
paretovariate(alpha) Re­tur­ne­rer et til­fæl­digt flydende tal med en Pareto-fordeling.
weibullvariate(alpha, beta) Re­tur­ne­rer et til­fæl­digt flydende tal med en Weibull-fordeling

Sådan vælges elementer til­fæl­digt fra en liste

Hvis du vil vælge flere til­fæl­di­ge elementer fra en liste, kan du bruge funk­tio­nen choices(seq, k=n) fra Python-modulet random, hvor n er antallet af ønskede til­fæl­di­ge elementer.

import random
# A list of elements
my_list = ['Apple', 'Banana', 'Orange', 'Strawberry', 'Cherry']
# Randomly selecting an element from the list
random_elements = random.choices(my_list, k=3)
print("Randomly selected elements:", random_elements)
python

I dette tilfælde bruger vi funk­tio­nen choices() til at vælge tre til­fæl­di­ge elementer ud af my_list. Re­sul­ta­ter­ne re­tur­ne­res som en liste med tre til­fæl­di­ge elementer.

Sådan blandes en liste

Funk­tio­nen shuffle() ar­ran­ge­rer Python-liste­e­le­men­ter i tilfældig ræk­ke­føl­ge.

import random
# A list of elements
my_list = ['Apple', 'Banana', 'Orange', 'Strawberry', 'Cherry']
# Shuffle the elements in the list
random.shuffle(my_list)
print("Shuffled list:", my_list) # Example Output: Shuffled list: ['Strawberry', 'Banana', 'Apple', 'Cherry', 'Orange']
python

Du skal huske, at shuffle() ændrer selve listen og ikke re­tur­ne­rer en ny. Efter brug af shuffle() vil den op­rin­de­li­ge liste være i tilfældig ræk­ke­føl­ge.

Sådan indstil­les en seed-værdi

Når du bruger random.seed() fra Python-modulet random til at indstille en bestemt seed-værdi, ini­ti­a­li­se­rer det til­fæl­dig­heds­ge­ne­ra­to­ren til at generere til­fæl­di­ge tal ved hjælp af denne seed. Hvis du senere indstil­ler den samme seed-værdi igen, vil det derfor resultere i, at der genereres en identisk sekvens af til­fæl­di­ge tal i din ap­pli­ka­tion.

import random
# Setting the seed value to 42
random.seed(42)
# Generating random numbers
print(random.random())  # Example output: 0.6394267984578837
print(random.random())  # Example output: 0.025010755222666936
# Resetting the seed value to 42
random.seed(42)
# Generating random numbers again
print(random.random())  # Example output: 0.6394267984578837 (identical to the previous value)
print(random.random())  # Example output: 0.025010755222666936 (identical to the previous value)
python

Når seed-værdien er indstil­let, genererer og udgiver den til­fæl­di­ge tal. Hvis seed-værdien nulstil­les til samme værdi, re­sul­te­rer det i, at den samme sekvens af til­fæl­di­ge tal pro­du­ce­res igen. I dette eksempel er seed-værdien 42. Så længe denne seed forbliver konstant, kan de til­fæl­di­ge tal repli­ke­res kon­se­kvent. 2788414172193c7dda5bc74734d880d9

Gå til ho­ved­me­nu­en