Kaip naudoti Python atsitiktinių skaičių modulį
Python random modulis siūlo įvairias funkcijas atsitiktinių skaičių generavimui įvairiais formatais, pradedant sveikaisiais skaičiais, baigiant slankiojo kablelio skaičiais ir elementų pasirinkimu iš sąrašų.
Kas yra Python atsitiktinių skaičių modulis ir kam jis gali būti naudojamas?
Python random modulis random yra įdiegta biblioteka, leidžianti generuoti atsitiktinius skaičius ir atlikti atsitiktinumo pagrįstas operacijas jūsų programose. Ji apima įvairias funkcijas, skirtas generuoti pseudorandomuosius skaičius, kurie gali būti naudojami daugelyje programų, nuo modeliavimo iki žaidimų kūrimo ir kriptografinių užduočių.
Svarbi atsitiktinio modulio savybė yra jo gebėjimas pateikti atkartojamus rezultatus. Nustačius pradinę vertę arba sėklą, atsitiktinio generavimo procesą galima atkartoti. Tai naudinga bandymams, eksperimentams ir modeliavimui, kuriuose reikalingi nuoseklūs atsitiktiniai duomenys.
Kokios yra atsitiktinio modulio funkcijos?
Python random modulis turi įvairius metodus, skirtus atsitiktinių skaičių generavimui ir apdorojimui. Toliau pateiktoje lentelėje pateikta funkcijų ir jų savybių apžvalga:
| Funkcijos pavadinimas | Paaiškinimas |
|---|---|
seed(a=None, version=2)
|
Apibrėžia atsitiktinių skaičių generatoriaus pradinę vertę (sėklą) |
getstate()
|
Grąžina atsitiktinių skaičių generatoriaus dabartinę būseną kaip objektą |
setstate(state)
|
Atkuria atsitiktinių skaičių generatoriaus būseną naudojant būsenos objektą |
getrandbits(k)
|
Grąžina sveiką skaičių su k bitais |
randrange(start, stop, step)
|
Sukuria atsitiktinį sveiką skaičių iš nurodyto intervalo. |
randint(a, b)
|
Grąžina atsitiktinį sveiką skaičių iš nurodyto intervalo |
choice(seq)
|
Grąžina atsitiktinį elementą iš nurodytos sekos |
choices(population, weights=None, *, cum_weights=None, k=1)
|
Sukuria sąrašą su k atsitiktinai atrinktais elementais iš populiacijos; galima nurodyti tikimybes. |
sample(k, population)
|
Sukuria sąrašą su k atsitiktinai atrinktais elementais iš populiacijos, be pasikartojimų |
shuffle(x)
|
Sąrašo elementus sumaišo atsitiktine tvarka. |
random()
|
Grąžina atsitiktinį skaičių su slankiuoju kableliu nuo 0 iki 1. |
uniform(a, b)
|
Grąžina atsitiktinį skaičių su slankiuoju kableliu nurodytame intervale, įskaitant ribines vertes. |
triangular(low, high, mode)
|
Sukuria atsitiktinį skaičių su slankiuoju kableliu trikampio pasiskirstymo intervale. |
betavariate(alpha, beta)
|
Grąžina atsitiktinį kintamojo skaičiaus skaičių iš beta pasiskirstymo. |
expovariate(lambd)
|
Grąžina atsitiktinį skaičių su slankiuoju kableliu iš eksponentinio pasiskirstymo. |
gammavariate(alpha, beta)
|
Sukuria atsitiktinį kintamojo tikslumo skaičių iš gama pasiskirstymo. |
gauss(mu, sigma)
|
Grąžina atsitiktinį skaičių su slankiuoju kableliu iš Gauso pasiskirstymo. |
lognormvariate(mu, sigma)
|
Sukuria atsitiktinį kintamojo taško skaičių iš logaritminio normaliojo pasiskirstymo. |
normalvariate(mu, sigma)
|
Grąžina atsitiktinį slankiojo kablelio skaičių iš normaliojo pasiskirstymo. |
vonmisesvariate(mu, kappa)
|
Grąžina atsitiktinį skaičių su von Mises pasiskirstymu arba apskritiniu normaliniu pasiskirstymu. |
paretovariate(alpha)
|
Grąžina atsitiktinį skaičių su Pareto pasiskirstymu. |
weibullvariate(alpha, beta)
|
Grąžina atsitiktinį kintamojo tikslumo skaičių su Weibull pasiskirstymu. |
Kaip atsitiktinai pasirinkti elementus iš sąrašo
Jei norite iš sąrašo atrinkti kelis atsitiktinius elementus, galite naudoti Python atsitiktinių skaičių modulio funkciją choices(seq, k=n), kur n yra norimų atsitiktinių elementų skaičius.
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Šiuo atveju naudojame funkciją choices(), kad atrinktume tris atsitiktinius elementus iš my_list. Rezultatai grąžinami kaip trijų atsitiktinių elementų sąrašas.
Kaip sumaišyti sąrašą
Funkcija shuffle() išdėsto Python sąrašo elementus atsitiktine tvarka.
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']pythonReikėtų nepamiršti, kad shuffle() keičia patį sąrašą ir negrąžina naujo. Po shuffle() naudojimo pradinis sąrašas bus atsitiktine tvarka.
Kaip nustatyti pradinę vertę
Kai naudojate Python random modulio funkciją random.seed(), kad nustatytumėte konkretų sėklos vertę, ji inicijuoja atsitiktinių skaičių generatorių, kad šis generuotų atsitiktinius skaičius naudodamas šią sėklą. Todėl, jei vėliau vėl nustatysite tą pačią sėklos vertę, jūsų programoje bus generuojama identiška atsitiktinių skaičių seka.
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)pythonNustačius pradinę vertę, generuojami ir išvedami atsitiktiniai skaičiai. Nustačius tą pačią pradinę vertę, vėl generuojama ta pati atsitiktinių skaičių seka. Šiame pavyzdyje pradinė vertė yra 42. Kol ši pradinė vertė išlieka pastovi, atsitiktiniai skaičiai gali būti nuosekliai atkartojami.