Naključna števila lahko ustvarite s funkcijami random(), uniform(), randange() in randint() v modulu random standardne knjižnice Python.
Modul random je vključen v standardno knjižnico, zato dodatna namestitev ni potrebna. Seveda ga morate uvoziti.
Tu so na voljo naslednje informacije.
random.random()(Število s plavajočo vejico med 0,0 in 1,0)random.uniform()(poljubno območje števil s plavajočo vejico)- Generiranje naključnih števil, ki sledijo normalni porazdelitvi, Gaussovi porazdelitvi itd.
random.randrange()(Celoštevilsko število s poljubnim obsegom in korakom)random.randint()(Celoštevilsko število v poljubnem območju)- Ustvarjanje seznama z naključnimi številkami kot elementi
- Seznam naključnih števil s plavajočo vejico
- Seznam celih naključnih števil
- Inicializacija generatorja naključnih števil (določitev semena naključnih števil)
V naslednjem članku si oglejte, kako naključno izločiti ali razvrstiti elemente seznama.
- Povezani članki:Izbira naključnih elementov s seznama v Pythonu z uporabo funkcij choice(), sample(), choices()
- random.random() (Število s plavajočo vejico med 0,0 in 1,0)
- random.uniform() (poljubno območje števil s plavajočo vejico)
- Generiranje naključnih števil, ki sledijo normalni porazdelitvi, Gaussovi porazdelitvi itd.
- random.randrange() (Celoštevilsko število s poljubnim obsegom in korakom)
- random.randint() (Celoštevilsko število v poljubnem območju)
- Ustvarjanje seznama z naključnimi številkami kot elementi
- Inicializacija generatorja naključnih števil (določitev semena naključnih števil)
random.random() (Število s plavajočo vejico med 0,0 in 1,0)
Funkcija random() modula random ustvari naključno število s plavajočo vejico tipa float, ki je med 0,0 in 1,0.
import random
print(random.random())
# 0.4496839011176701
random.uniform() (poljubno območje števil s plavajočo vejico)
uniform(a, b)Funkcije tega naključnega modula generirajo naključna števila s spremenljivo vejico tipa float v katerem koli od naslednjih razponov
a <= n <= bb <= n <= a
import random
print(random.uniform(100, 200))
# 175.26585048238275
Argumenta sta lahko večja ali manjša; če sta enaka, seveda vrneta le to vrednost. Vrnjena vrednost je vedno float.
print(random.uniform(100, -100))
# -27.82338731501028
print(random.uniform(100, 100))
# 100.0
Argument je lahko naveden tudi kot float.
print(random.uniform(1.234, 5.637))
# 2.606743596829249
Ali je vrednost b vključena v območje, je odvisno od naslednjega zaokroževanja, kot je dokumentirano.a + (b-a) * random.random()
Ali je vrednost končne točke b v območju ali ne, je odvisno od zaokroževanja s plavajočo vejico v naslednji enačbi
a + (b-a) * random()
random.uniform() — Generate pseudo-random numbers — Python 3.10.2 Documentation
Generiranje naključnih števil, ki sledijo normalni porazdelitvi, Gaussovi porazdelitvi itd.
Zgornji funkciji random() in uniform() generirata enakomerno porazdeljena naključna števila, obstajajo pa tudi funkcije za generiranje števil s plavajočo vejico, ki sledijo naslednji porazdelitvi.
- porazdelitev beta:
random.betavariate() - eksponentna porazdelitev:
random.expovariate() - porazdelitev gama:
random.gammavariate() - Gaussova porazdelitev:
random.gauss() - lognormalna porazdelitev:
random.lognormvariate() - normalna porazdelitev:
random.normalvariate() - Von Misesova porazdelitev:
random.vonmisesvariate() - Paretova porazdelitev:
random.paretovariate() - Weibullova porazdelitev:
random.weibullvariate()
Parametri vsake distribucije so določeni z argumenti. Za podrobnosti glejte uradno dokumentacijo.
random.randrange() (Celoštevilsko število s poljubnim obsegom in korakom)
randrange(start, stop, step)
Funkcija tega naključnega modula vrne naključno izbran element izmed naslednjih elementov.range(start, stop, step)
Tako kot pri range() lahko argumenta start in step izpustite. Če sta izpuščena, sta start=0 in korak=1.
import random
print(list(range(10)))
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(random.randrange(10))
# 5
Argument korak lahko nastavite tako, da se ustvari sodo ali liho naključno celo število ali naključno celo število, ki je večkratnik treh.
Če je na primer začetna vrednost liha in korak = 2, lahko naključno dobimo samo liha cela števila v območju.
print(list(range(10, 20, 2)))
# [10, 12, 14, 16, 18]
print(random.randrange(10, 20, 2))
# 18
random.randint() (Celoštevilsko število v poljubnem območju)
randint(a, b)
Funkcija tega naključnega modula vrne naslednje naključno celo število int.a <= n <= brandrange(a, b + 1)Enakovredno temu; upoštevajte, da je v območje vključena tudi vrednost b.
print(random.randint(50, 100))
# print(random.randrange(50, 101))
# 74
Ustvarjanje seznama z naključnimi številkami kot elementi
V tem razdelku bomo razložili, kako z modulom random standardne knjižnice ustvariti seznam z naključnimi števili kot elementi.
Seznam naključnih števil s plavajočo vejico
Če želite ustvariti seznam, katerega elementi so naključna števila s plavajočo vejico, združite funkciji random() in uniform() z zapisom za razumevanje seznama.
import random
print([random.random() for i in range(5)])
# [0.5518201298350598, 0.3476911314933616, 0.8463426180468342, 0.8949046353303931, 0.40822657702632625]
V zgornjem primeru je uporabljena funkcija range(), vendar so za želeno število elementov možni tudi seznami in tuple. Za več podrobnosti o razumevanju seznamov glejte naslednji članek.
- Povezani članki:Uporaba zapisa za razumevanje seznamov v Pythonu
Seznam celoštevilskih naključnih števil int
Pri generiranju seznama, katerega elementi so celoštevilska naključna števila, lahko kombinacija zgornjih funkcij randange() in randint() z zapisom za razumevanje seznama povzroči podvajanje vrednosti.
print([random.randint(0, 10) for i in range(5)])
# [8, 5, 7, 10, 7]
Če želite ustvariti naključno zaporedje celih števil brez podvajanja, izločite elemente funkcije range() s poljubnim razponom z uporabo funkcije random.sample().
print(random.sample(range(10), k=5))
# [6, 4, 3, 7, 5]
print(random.sample(range(100, 200, 10), k=5))
# [130, 190, 140, 150, 170]
Za več informacij o funkciji random.sample() glejte naslednji članek.
- Povezani članki:Izbira naključnih elementov s seznama v Pythonu z uporabo funkcij choice(), sample(), choices()
Inicializacija generatorja naključnih števil (določitev semena naključnih števil)
S podajanjem poljubnega celega števila funkciji seed() modula random lahko določite seme naključnega števila in inicializirate generator naključnih števil.
Po inicializaciji z istim semenom se naključna vrednost vedno ustvari na enak način.
random.seed(0)
print(random.random())
# 0.8444218515250481
print(random.random())
# 0.7579544029403025
random.seed(0)
print(random.random())
# 0.8444218515250481
print(random.random())
# 0.7579544029403025


