De Python random -module biedt u een ver­schei­den­heid aan functies voor het genereren van wil­le­keu­ri­ge getallen in ver­schil­len­de formaten, variërend van gehele getallen tot drijvende-kom­ma­ge­tal­len tot het se­lec­te­ren van elementen uit lijsten.

Wat is de random-module van Python en waarvoor kan deze worden gebruikt?

De Python random -module random is een in­ge­bouw­de bi­bli­o­theek waarmee u wil­le­keu­ri­ge getallen kunt genereren en op willekeur ge­ba­seer­de be­wer­kin­gen kunt uitvoeren in uw programma’s. Deze bevat ver­schil­len­de functies voor het genereren van pseudo-wil­le­keu­ri­ge getallen die in veel toe­pas­sin­gen kunnen worden gebruikt, van simulatie tot game-ont­wik­ke­ling en cryp­to­gra­fi­sche taken.

Een be­lang­rijk kenmerk van de random-module is dat deze re­pro­du­ceer­ba­re re­sul­ta­ten oplevert. Door een start­waar­de of seed vast te stellen, kan het proces van wil­le­keu­ri­ge generatie worden ge­re­pro­du­ceerd. Dit is gunstig voor tests, ex­pe­ri­men­ten en si­mu­la­ties waarvoor con­sis­ten­te wil­le­keu­ri­ge gegevens nodig zijn.

Wat zijn de functies in de random-module?

De Python-module random bevat ver­schil­len­de methoden voor het genereren en verwerken van wil­le­keu­ri­ge getallen. De volgende tabel geeft een overzicht van de functies en hun ei­gen­schap­pen:

Naam van de functie Uitleg
seed(a=None, version=2) De­fi­ni­eert de be­gin­waar­de (seed) voor de random number generator
getstate() Geeft de huidige status van de random number generator weer als een object
setstate(state) Reset de status van de random number generator met behulp van een sta­tus­ob­ject
getrandbits(k) Geeft een geheel getal met k bits terug
randrange(start, stop, step) Maakt een wil­le­keu­rig geheel getal uit het opgegeven bereik
randint(a, b) Geeft een wil­le­keu­rig geheel getal terug binnen het opgegeven bereik
choice(seq) Geeft een wil­le­keu­rig element uit de opgegeven reeks terug
choices(population, weights=None, *, cum_weights=None, k=1) Maakt een lijst met k wil­le­keu­rig ge­se­lec­teer­de elementen uit de populatie; optioneel om de waar­schijn­lijk­he­den te spe­ci­fi­ce­ren
sample(k, population) Maakt een lijst met k wil­le­keu­rig ge­se­lec­teer­de elementen uit de populatie, zonder du­pli­ca­ten
shuffle(x) Schudt de elementen in een lijst in wil­le­keu­ri­ge volgorde
random() Geeft een wil­le­keu­rig drijvende-kom­ma­ge­tal tussen 0 en 1 terug
uniform(a, b) Geeft een wil­le­keu­rig drijvende-kom­ma­ge­tal terug binnen het opgegeven bereik, inclusief de grens­waar­den
triangular(low, high, mode) Maakt een wil­le­keu­rig drijvende-kom­ma­ge­tal in het drie­hoe­ki­ge dis­tri­bu­tie­be­reik
betavariate(alpha, beta) Geeft een wil­le­keu­rig drijvende-kom­ma­ge­tal terug uit een bè­ta­ver­de­ling.
expovariate(lambd) Geeft een wil­le­keu­rig drijvende-kom­ma­ge­tal terug uit een ex­po­nen­ti­ë­le verdeling.
gammavariate(alpha, beta) Maakt een wil­le­keu­rig drijvende-kom­ma­ge­tal uit een gam­ma­ver­de­ling.
gauss(mu, sigma) Geeft een wil­le­keu­rig drijvende-kom­ma­ge­tal terug uit een Gauss-verdeling.
lognormvariate(mu, sigma) Maakt een wil­le­keu­rig drijvende-kom­ma­ge­tal op basis van een lo­ga­rit­mi­sche normale verdeling.
normalvariate(mu, sigma) Geeft een wil­le­keu­rig drijvende-kom­ma­ge­tal terug uit een normale verdeling.
vonmisesvariate(mu, kappa) Geeft een wil­le­keu­rig drijvende-kom­ma­ge­tal terug met een von Mises-verdeling of cir­cu­lai­re normale verdeling.
paretovariate(alpha) Geeft een wil­le­keu­rig drijvende-kom­ma­ge­tal met een Pareto-verdeling terug
weibullvariate(alpha, beta) Geeft een wil­le­keu­rig drijvende-kom­ma­ge­tal terug met een Weibull-verdeling

Hoe elementen wil­le­keu­rig uit een lijst se­lec­te­ren

Als u meerdere wil­le­keu­ri­ge elementen uit een lijst wilt se­lec­te­ren, kunt u de functie choices(seq, k=n) uit de Python-module random gebruiken, waarbij n het aantal gewenste wil­le­keu­ri­ge elementen is.

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

In dit geval gebruiken we de functie choices() om drie wil­le­keu­ri­ge elementen uit my_list te se­lec­te­ren. De re­sul­ta­ten worden te­rug­ge­ge­ven als een lijst met drie wil­le­keu­ri­ge elementen.

Hoe een lijst schudden

De functie shuffle() rang­schikt Python-lij­st­ele­men­ten in wil­le­keu­ri­ge volgorde.

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

Houd er rekening mee dat shuffle() de lijst zelf wijzigt en geen nieuwe lijst re­tour­neert. Na gebruik van shuffle() staat de oor­spron­ke­lij­ke lijst in wil­le­keu­ri­ge volgorde.

Hoe een start­waar­de instellen

Wanneer u random.seed() uit de Python random-module gebruikt om een spe­ci­fie­ke seed-waarde in te stellen, ini­ti­a­li­seert dit de random number generator om wil­le­keu­ri­ge getallen te genereren met behulp van deze seed. Als u later opnieuw dezelfde seed-waarde instelt, zal dit ertoe leiden dat er een identieke reeks wil­le­keu­ri­ge getallen wordt ge­ge­ne­reerd in uw ap­pli­ca­tie.

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

Nadat de seed­waar­de is ingesteld, genereert en pro­du­ceert het wil­le­keu­ri­ge getallen. Als de seed opnieuw op dezelfde waarde wordt ingesteld, wordt dezelfde reeks wil­le­keu­ri­ge getallen opnieuw ge­pro­du­ceerd. In dit voorbeeld is de seed­waar­de 42. Zolang deze seed constant blijft, kunnen de wil­le­keu­ri­ge getallen con­sis­tent worden ge­re­pli­ceerd.

Ga naar hoofdmenu