Python random -moduuli tarjoaa sinulle erilaisia toi­min­to­ja sa­tun­nais­lu­ku­jen ge­ne­roi­mi­seen eri muodoissa, ko­ko­nais­lu­vuis­ta liu­ku­lu­kui­siin ja listojen ele­ment­tien valintaan.

Mikä on Pythonin random-moduuli ja mihin sitä voidaan käyttää?

Python random -moduuli random on si­sään­ra­ken­net­tu kirjasto, jonka avulla voit luoda sa­tun­nais­lu­ku­ja ja suorittaa sa­tun­nais­lu­ku­ja käyttäviä ope­raa­tioi­ta oh­jel­mis­sa­si. Se sisältää erilaisia funk­tioi­ta pseu­do­to­del­lis­ten sa­tun­nais­lu­ku­jen luomiseen, joita voidaan käyttää monissa so­vel­luk­sis­sa si­mu­loin­nis­ta pelien ke­hit­tä­mi­seen ja sa­laus­teh­tä­viin.

Sa­tun­nais­mo­duu­lin tärkeä omi­nai­suus on sen kyky tuottaa tois­tet­ta­via tuloksia. Aset­ta­mal­la aloi­tusar­von tai siemenen sa­tun­nai­sen ge­ne­roin­nin prosessi voidaan toistaa. Tämä on hyö­dyl­lis­tä tes­tauk­ses­sa, kokeissa ja si­mu­loin­neis­sa, joissa tarvitaan yh­den­mu­kais­ta sa­tun­nais­ta dataa.

Mitkä ovat sa­tun­nais­mo­duu­lin toiminnot?

Pythonin random-moduuli sisältää erilaisia me­ne­tel­miä sa­tun­nais­lu­ku­jen tuot­ta­mi­seen ja kä­sit­te­lyyn. Seuraava taulukko sisältää yleis­kat­sauk­sen toi­min­nois­ta ja niiden omi­nai­suuk­sis­ta:

Toiminnon nimi Selitys
seed(a=None, version=2) Määrittää sa­tun­nais­lu­ku­ge­ne­raat­to­rin alkuarvon (siemenen)
getstate() Palauttaa sa­tun­nais­lu­ku­ge­ne­raat­to­rin nykyisen tilan objektina
setstate(state) Nollaa sa­tun­nais­lu­ku­ge­ne­raat­to­rin tilan ti­laob­jek­tin avulla
getrandbits(k) Palauttaa k-bittisen ko­ko­nais­lu­vun
randrange(start, stop, step) Luo sa­tun­nai­sen ko­ko­nais­lu­vun mää­ri­te­tys­tä alueesta
randint(a, b) Palauttaa sa­tun­nai­sen ko­ko­nais­lu­vun mää­ri­tel­lyl­tä alueelta
choice(seq) Palauttaa sa­tun­nai­sen elementin annetusta se­kvens­sis­tä
choices(population, weights=None, *, cum_weights=None, k=1) Luo luettelon, jossa on k sa­tun­nai­ses­ti valittua ele­ment­tiä po­pu­laa­tios­ta; to­den­nä­köi­syyk­sien mää­rit­tä­mi­nen on va­lin­nais­ta
sample(k, population) Luo luettelon, jossa on k sa­tun­nai­ses­ti valittua ele­ment­tiä po­pu­laa­tios­ta, ilman kak­sois­kap­pa­lei­ta
shuffle(x) Sekoita luettelon elementit sa­tun­nai­ses­sa jär­jes­tyk­ses­sä.
random() Palauttaa sa­tun­nai­sen liu­ku­lu­vun välillä 0 ja 1.
uniform(a, b) Palauttaa sa­tun­nai­sen liu­ku­lu­vun mää­ri­tel­lyl­lä alueella, mukaan lukien raja-arvot
triangular(low, high, mode) Luo sa­tun­nai­sen liu­ku­lu­vun kol­mio­mai­ses­sa ja­kau­mas­sa.
betavariate(alpha, beta) Palauttaa sa­tun­nai­sen liu­ku­lu­vun beta-ja­kau­mas­ta.
expovariate(lambd) Palauttaa sa­tun­nai­sen liu­ku­lu­vun eks­po­nen­ti­aa­li­ses­ta ja­kau­mas­ta.
gammavariate(alpha, beta) Luo sa­tun­nai­sen liu­ku­lu­vun gam­ma­ja­kau­mas­ta.
gauss(mu, sigma) Palauttaa sa­tun­nai­sen liu­ku­lu­vun Gaussin ja­kau­mas­ta.
lognormvariate(mu, sigma) Luo sa­tun­nai­sen liu­ku­lu­vun lo­ga­rit­mi­ses­ta nor­maa­li­ja­kau­mas­ta.
normalvariate(mu, sigma) Palauttaa sa­tun­nai­sen liu­ku­lu­vun nor­maa­li­ja­kau­mas­ta.
vonmisesvariate(mu, kappa) Palauttaa sa­tun­nai­sen liu­ku­lu­vun von Misesin jakauman tai pyöreän nor­maa­li­ja­kau­man pe­rus­teel­la.
paretovariate(alpha) Palauttaa sa­tun­nai­sen liu­ku­lu­vun Pareto-ja­kau­mas­ta.
weibullvariate(alpha, beta) Palauttaa sa­tun­nai­sen liu­ku­lu­vun, joka noudattaa Weibull-jakaumaa.

Kuinka valita ele­ment­te­jä sa­tun­nai­ses­ti luet­te­los­ta

Jos haluat valita useita sa­tun­nai­sia ele­ment­te­jä luet­te­los­ta, voit käyttää Pythonin random-moduulin funktiota choices(seq, k=n), jossa n on ha­lut­tu­jen sa­tun­nais­ten ele­ment­tien lukumäärä.

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

Tässä ta­pauk­ses­sa käytämme funktiota choices() va­li­tak­sem­me kolme sa­tun­nais­ta ele­ment­tiä my_list:stä. Tulokset pa­lau­te­taan kolmen sa­tun­nai­sen elementin luet­te­lo­na.

Kuinka sekoittaa lista

shuffle() -funktio järjestää Python-listan elementit sa­tun­nai­ses­sa jär­jes­tyk­ses­sä.

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

On syytä muistaa, että shuffle() muuttaa itse luetteloa eikä palauta uutta luetteloa. Käytön jälkeen shuffle() al­ku­pe­räi­nen luettelo on sa­tun­nai­ses­sa jär­jes­tyk­ses­sä.

Kuinka asettaa sie­me­nar­vo

Kun käytät Pythonin random-moduulin random.seed() tietyn sie­me­nar­von aset­ta­mi­seen, se alustaa sa­tun­nais­lu­ku­ge­ne­raat­to­rin tuot­ta­maan sa­tun­nais­lu­ku­ja tämän sie­me­nar­von avulla. Jos siis asetat myöhemmin saman sie­me­nar­von uudelleen, so­vel­luk­ses­sa­si syntyy ident­ti­nen sa­tun­nais­lu­ku­jo­no.

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

Kun alkuluku on asetettu, se tuottaa ja tulostaa sa­tun­nais­lu­ku­ja. Alkuluvun pa­laut­ta­mi­nen samaan arvoon tuottaa saman sa­tun­nais­lu­kusar­jan uudelleen. Tässä esi­mer­kis­sä alkuluku on 42. Niin kauan kuin tämä alkuluku pysyy vakiona, sa­tun­nais­lu­ku­ja voidaan toistaa joh­don­mu­kai­ses­ti.

Siirry pää­va­lik­koon