Gjenerimi i numrave dhjetorë të rastësishëm dhe numrave të plotë në Python, duke përfshirë random(), randrange() dhe randint()

biznes

Numrat e rastësishëm mund të gjenerohen duke përdorur funksionet random(), uniform(), randange() dhe randint() në modulin e rastësishëm të bibliotekës standarde Python.

Moduli i rastësishëm përfshihet në bibliotekën standarde, kështu që nuk kërkohet instalim shtesë. Sigurisht, ju duhet ta importoni atë.

Informacioni i mëposhtëm jepet këtu.

  • random.random()(Numri i pikës lundruese midis 0.0 dhe 1.0)
  • random.uniform()(Çdo varg numrash me pikë lundruese)
  • Gjeneroni numra të rastësishëm që ndjekin një shpërndarje normale, shpërndarje Gaussian, etj.
  • random.randrange()(Numri i plotë i diapazonit dhe hapit arbitrar)
  • random.randint()(Një numër i plotë në çdo varg)
  • Gjenerimi i një liste me numra të rastësishëm si elementë
    • Lista e numrave të rastësishëm me pikë lundruese
    • Lista e numrave të rastësishëm me numra të plotë
  • Inicializoni gjeneratorin e numrave të rastësishëm (rregulloni farën e numrave të rastësishëm)

Shihni artikullin vijues se si të nxirrni ose renditni rastësisht elementët e një liste.

random.random()(Numri i pikës lundruese midis 0.0 dhe 1.0)

Funksioni random() i modulit të rastësishëm gjeneron një numër të rastësishëm me pikë lundruese të tipit float që është midis 0.0 dhe 1.0.

import random

print(random.random())
# 0.4496839011176701

random.uniform()(Çdo varg numrash me pikë lundruese)

uniform(a, b)Funksionet e këtij moduli të rastësishëm gjenerojnë numra të rastësishëm të tipit float të numrave me pikë lundruese në cilindo nga vargjet e mëposhtme

  • a <= n <= b
  • b <= n <= a
import random

print(random.uniform(100, 200))
# 175.26585048238275

Të dy argumentet mund të jenë ose më të mëdhenj ose më të vegjël; nëse ato janë të barabarta, ato natyrisht do ta kthejnë vetëm atë vlerë. Vlera e kthimit është gjithmonë një notim.

print(random.uniform(100, -100))
# -27.82338731501028

print(random.uniform(100, 100))
# 100.0

Argumenti mund të specifikohet gjithashtu si një float.

print(random.uniform(1.234, 5.637))
# 2.606743596829249

Nëse vlera e b përfshihet në interval varet nga rrumbullakimi i mëposhtëm, siç dokumentohet.
a + (b-a) * random.random()

Nëse vlera e pikës fundore b është në interval apo jo, varet nga rrumbullakimi i pikës lundruese në ekuacionin vijues
a + (b-a) * random()
random.uniform() — Generate pseudo-random numbers — Python 3.10.2 Documentation

Gjeneroni numra të rastësishëm që ndjekin një shpërndarje normale, shpërndarje Gaussian, etj.

Funksionet random() dhe uniform() më sipër gjenerojnë numra të rastësishëm të shpërndarë në mënyrë uniforme, por ka edhe funksione për të gjeneruar numra me pikë lundruese që ndjekin shpërndarjen e mëposhtme.

  • shpërndarja beta:random.betavariate()
  • shpërndarja eksponenciale:random.expovariate()
  • shpërndarja e gama:random.gammavariate()
  • Shpërndarja Gaussian:random.gauss()
  • shpërndarje lognormale:random.lognormvariate()
  • shpërndarje normale:random.normalvariate()
  • Shpërndarja e Von Mises:random.vonmisesvariate()
  • Shpërndarja Pareto:random.paretovariate()
  • Shpërndarja Weibull:random.weibullvariate()

Parametrat e secilës shpërndarje specifikohen me argumente. Shikoni dokumentacionin zyrtar për detaje.

random.randrange()(Numri i plotë i diapazonit dhe hapit arbitrar)

randrange(start, stop, step)
Funksioni i këtij moduli të rastësishëm kthen një element të zgjedhur rastësisht nga elementët e mëposhtëm.
range(start, stop, step)

Ashtu si me range(), argumentet start dhe step mund të hiqen. Nëse ato hiqen, start=0 dhe hap=1.

import random

print(list(range(10)))
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

print(random.randrange(10))
# 5

Hapi i argumentit mund të vendoset për të gjeneruar një numër të plotë të rastësishëm çift ose tek, ose një numër të plotë të rastësishëm që është shumëfish i treshit.

Për shembull, nëse fillimi është çift dhe hapi=2, vetëm numrat çift të plotë në interval mund të merren rastësisht.

print(list(range(10, 20, 2)))
# [10, 12, 14, 16, 18]

print(random.randrange(10, 20, 2))
# 18

random.randint()(Një numër i plotë në çdo varg)

randint(a, b)
Funksioni i këtij moduli të rastësishëm kthen numrin e plotë të rastësishëm të mëposhtëm.
a <= n <= b
randrange(a, b + 1)Ekuivalente me këtë; vini re se vlera e b përfshihet gjithashtu në interval.

print(random.randint(50, 100))
# print(random.randrange(50, 101))
# 74

Gjenerimi i një liste me numra të rastësishëm si elementë

Në këtë seksion, ne do të shpjegojmë se si të përdorim modulin e rastësishëm të bibliotekës standarde për të gjeneruar një listë me numra të rastit si elementë.

Lista e numrave të rastit me nota me pikë lundruese

Për të gjeneruar një listë, elementët e së cilës janë numra të rastësishëm me pikë lundruese, kombinoni funksionet random() dhe uniform() me shënimin e kuptimit të listës.

import random

print([random.random() for i in range(5)])
# [0.5518201298350598, 0.3476911314933616, 0.8463426180468342, 0.8949046353303931, 0.40822657702632625]

Në shembullin e mësipërm, përdoret range(), por listat dhe tuplet janë gjithashtu të mundshme për numrin e dëshiruar të elementeve. Për më shumë detaje mbi kuptimin e listës, ju lutemi referojuni artikullit vijues.

Lista e numrave të plotë të rastit

Kur krijoni një listë, elementët e së cilës janë numra të rastësishëm me numra të plotë, kombinimi i renditjes së mësipërme () dhe randint () me shënimin e kuptimit të listës mund të rezultojë në vlera të dyfishta.

print([random.randint(0, 10) for i in range(5)])
# [8, 5, 7, 10, 7]

Nëse dëshironi të bëni një sekuencë të rastësishme të numrave të plotë pa dyfishim, nxirrni elementet e range() me një diapazon arbitrar duke përdorur 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]

Për më shumë informacion rreth random.sample(), ju lutemi referojuni artikullit të mëposhtëm.

Inicializoni gjeneratorin e numrave të rastësishëm (rregulloni farën e numrave të rastësishëm)

Duke i dhënë një numër të plotë arbitrar funksionit seed() të modulit të rastësishëm, fara e numrave të rastësishëm mund të fiksohet dhe gjeneratori i numrave të rastësishëm mund të inicializohet.

Pas inicializimit me të njëjtën farë, vlera e rastësishme gjenerohet gjithmonë në të njëjtën mënyrë.

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
Copied title and URL