Python random modulis piedāvā dažādas funkcijas, lai ģenerētu nejaušus skaitļus dažādos formātos, sākot no veseliem skaitļiem līdz peldošā punkta skaitļiem un elementu at­la­sī­ša­nai no sa­rak­stiem.

Kas ir Python random modulis un kā to var izmantot?

Python random modulis random ir iebūvēta bib­lio­tē­ka, kas ļauj ģenerēt nejaušus skaitļus un veikt ne­jau­šī­bas balstītas ope­rā­ci­jas jūsu prog­ram­mās. Tas ietver dažādas funkcijas psei­donne­jau­šu skaitļu ģe­ne­rē­ša­nai, kurus var izmantot daudzās lie­to­jum­prog­ram­mās, sākot no si­mu­lā­ci­jas līdz spēļu izstrādei un krip­tog­rā­fis­kām uz­de­vu­miem.

Svarīga ne­jau­šī­bas moduļa īpašība ir tā spēja no­dro­ši­nāt rep­ro­du­cē­ja­mus re­zul­tā­tus. Nosakot sākuma vērtību vai sēklu, ne­jau­šī­bas ģe­ne­rē­ša­nas procesu var rep­ro­du­cēt. Tas ir izdevīgi tes­tē­ša­nai, ek­spe­ri­men­tiem un si­mu­lā­ci­jām, kurām ne­pie­cie­ša­mi kon­sek­ven­ti ne­jau­šī­bas dati.

Kādas funkcijas ir random modulī?

Python random modulis satur dažādas metodes nejaušu skaitļu ģe­ne­rē­ša­nai un apstrādei. Turp­mā­ka­jā tabulā sniegts pārskats par funkcijām un to īpašībām:

Funkcijas nosaukums Pa­skaid­ro­jums
seed(a=None, version=2) Nosaka sākotnējo vērtību (sēklu) nejaušā skaitļa ģe­ne­ra­to­ram
getstate() Atgriež nejaušā skaitļa ģe­ne­ra­to­ra pa­šrei­zē­jo stāvokli kā objektu
setstate(state) Atsāk nejaušu skaitļu ģe­ne­ra­to­ra stāvokli, iz­man­to­jot stāvokļa objektu
getrandbits(k) Atgriež veselu skaitli ar k bitiem
randrange(start, stop, step) Izveido nejaušu veselu skaitli no norādītā diapazona
randint(a, b) Atgriež nejaušu veselo skaitli no norādītā diapazona
choice(seq) Atgriež nejaušu elementu no dotās secības
choices(population, weights=None, *, cum_weights=None, k=1) Izveido sarakstu ar k nejauši iz­vē­lē­tiem ele­men­tiem no kopuma; iespējams norādīt var­bū­tī­bas
sample(k, population) Izveido sarakstu ar k nejauši iz­vē­lē­tiem ele­men­tiem no po­pu­lā­ci­jas, bez dub­li­kā­tiem
shuffle(x) Sakārto saraksta elementus nejaušā secībā
random() Atgriež nejaušu peldošā punkta skaitli starp 0 un 1
uniform(a, b) Atgriež nejaušu peldošā punkta skaitli no­rā­dī­ta­jā diapazonā, ieskaitot ro­bežvēr­tī­bas
triangular(low, high, mode) Izveido nejaušu peldošā punkta skaitli trīs­stūr­vei­da sadales diapazonā
betavariate(alpha, beta) Atgriež nejaušu peldošā punkta skaitli no beta sadales.
expovariate(lambd) Atgriež nejaušu peldošā punkta skaitli no ek­spo­nen­ciā­lās sadales.
gammavariate(alpha, beta) Izveido nejaušu peldošā punkta skaitli no gamma sadales.
gauss(mu, sigma) Atgriež nejaušu peldošā punkta skaitli no Gausa sadales.
lognormvariate(mu, sigma) Izveido nejaušu peldošā punkta skaitli no lo­ga­rit­mis­kā normālā sa­da­lī­ju­ma.
normalvariate(mu, sigma) Atgriež nejaušu peldošā punkta skaitli no normālā sa­da­lī­ju­ma.
vonmisesvariate(mu, kappa) Atgriež nejaušu peldošā punkta skaitli ar von Mises sa­da­lī­ju­mu vai cirkulāro normālo sa­da­lī­ju­mu
paretovariate(alpha) Atgriež nejaušu peldošā punkta skaitli ar Pareto sa­da­lī­ju­mu
weibullvariate(alpha, beta) Atgriež nejaušu peldošā punkta skaitli ar Veibula sa­da­lī­ju­mu

Kā iz­vē­lē­ties elementus no saraksta pēc ne­jau­šī­bas principa

Ja vēlaties iz­vē­lē­ties vairākus nejaušus elementus no saraksta, varat izmantot funkciju choices(seq, k=n) no Python random moduļa, kur n ir vēlamo nejaušo elementu skaits.

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

Šajā gadījumā mēs iz­man­to­jam funkciju choices(), lai izvēlētos trīs nejaušus elementus no my_list. Rezultāti tiek atgriezti kā trīs nejaušu elementu saraksts.

Kā sajaukt sarakstu

shuffle() funkcija sakārto Python saraksta elementus nejaušā secībā.

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

Jāatceras, ka shuffle() maina pašu sarakstu un neatgriež jaunu. Pēc shuffle() iz­man­to­ša­nas sā­kot­nē­jais saraksts būs nejaušā secībā.

Kā iestatīt sēklas vērtību

Kad iz­man­to­jat Python random moduļa random.seed(), lai iestatītu konkrētu sēklas vērtību, tas ini­cia­li­zē nejaušu skaitļu ģe­ne­ra­to­ru, lai radītu nejaušus skaitļus, iz­man­to­jot šo sēklu. Tāpēc, ja vēlāk atkārtoti ie­sta­tī­siet to pašu sēklas vērtību, jūsu lie­to­jum­prog­ram­mā tiks ģenerēta identiska nejaušu skaitļu secība.

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

Pēc sēklas vērtības ie­sta­tī­ša­nas tiek ģenerēti un izvadīti nejauši skaitļi. Sēklas at­ies­ta­tī­ša­na uz to pašu vērtību izraisa to pašu nejaušo skaitļu secības atkārtotu ģe­ne­rē­ša­nu. Šajā piemērā sēklas vērtība ir 42. Kamēr šī sēkla paliek nemainīga, nejaušos skaitļus var kon­sek­ven­ti atkārtot.

Go to Main Menu