Maaaring mabuo ang mga random na numero gamit ang random(), uniform(), randange(), at ranint() function sa random na module ng Python standard library.
Ang random na module ay kasama sa karaniwang library, kaya walang karagdagang pag-install ang kinakailangan. Siyempre, kailangan mong i-import ito.
Ang sumusunod na impormasyon ay ibinigay dito.
random.random()
(Floating point number sa pagitan ng 0.0 at 1.0)random.uniform()
(Anumang hanay ng mga numero ng floating point)- Bumuo ng mga random na numero na sumusunod sa isang normal na distribusyon, Gaussian distribution, atbp.
random.randrange()
(Integer ng arbitrary na saklaw at hakbang)random.randint()
(Isang integer sa anumang hanay)- Bumubuo ng isang listahan na may mga random na numero bilang mga elemento
- Listahan ng mga random na floating-point na numero
- Listahan ng mga integer na random na numero
- I-initialize ang random number generator (ayusin ang random number seed)
Tingnan ang sumusunod na artikulo sa kung paano random na kunin o pag-uri-uriin ang mga elemento ng isang listahan.
- Mga Kaugnay na Artikulo:Pagpili ng mga random na elemento mula sa isang listahan sa Python gamit ang choice(), sample(), choices()
- random.random()(Floating point number sa pagitan ng 0.0 at 1.0)
- random.uniform()(Anumang hanay ng mga numero ng floating point)
- Bumuo ng mga random na numero na sumusunod sa isang normal na distribusyon, Gaussian distribution, atbp.
- random.randrange()(Integer ng arbitrary na saklaw at hakbang)
- random.randint()(Isang integer sa anumang hanay)
- Bumubuo ng isang listahan na may mga random na numero bilang mga elemento
- I-initialize ang random number generator (ayusin ang random number seed)
random.random()(Floating point number sa pagitan ng 0.0 at 1.0)
Ang random na function ng module na random() ay bumubuo ng random na floating-point na numero ng uri ng float na nasa pagitan ng 0.0 at 1.0.
import random
print(random.random())
# 0.4496839011176701
random.uniform()(Anumang hanay ng mga numero ng floating point)
uniform(a, b)
Ang mga function ng random na module na ito ay bumubuo ng mga random na numero ng floating-point number float type sa alinman sa mga sumusunod na hanay
a <= n <= b
b <= n <= a
import random
print(random.uniform(100, 200))
# 175.26585048238275
Ang dalawang argumento ay maaaring maging mas malaki o mas maliit; kung pantay-pantay sila, natural lang na ibabalik nila ang halagang iyon. Palaging float ang return value.
print(random.uniform(100, -100))
# -27.82338731501028
print(random.uniform(100, 100))
# 100.0
Ang argumento ay maaari ding tukuyin bilang isang float.
print(random.uniform(1.234, 5.637))
# 2.606743596829249
Kung ang halaga ng b ay kasama sa hanay ay nakasalalay sa sumusunod na pag-ikot, gaya ng nakadokumento.a + (b-a) * random.random()
Kung ang endpoint value b ay nasa hanay o wala ay depende sa floating point rounding sa sumusunod na equation
a + (b-a) * random()
random.uniform() — Generate pseudo-random numbers — Python 3.10.2 Documentation
Bumuo ng mga random na numero na sumusunod sa isang normal na distribusyon, Gaussian distribution, atbp.
Ang random() at uniform() na mga function sa itaas ay bumubuo ng pantay na ipinamahagi na mga random na numero, ngunit mayroon ding mga function upang bumuo ng mga floating point na numero na sumusunod sa sumusunod na pamamahagi.
- pamamahagi ng beta:
random.betavariate()
- exponential distribution:
random.expovariate()
- pamamahagi ng gamma:
random.gammavariate()
- Pamamahagi ng Gaussian:
random.gauss()
- pamamahagi ng lognormal:
random.lognormvariate()
- normal na pamamahagi:
random.normalvariate()
- Pamamahagi ng Von Mises:
random.vonmisesvariate()
- Pamamahagi ng Pareto:
random.paretovariate()
- Pamamahagi ng Weibull:
random.weibullvariate()
Ang mga parameter ng bawat pamamahagi ay tinukoy ng mga argumento. Tingnan ang opisyal na dokumentasyon para sa mga detalye.
random.randrange()(Integer ng arbitrary na saklaw at hakbang)
randrange(start, stop, step)
Ang function ng random na module na ito ay nagbabalik ng random na napiling elemento mula sa mga sumusunod na elemento.range(start, stop, step)
Tulad ng sa range(), ang mga argumento ay nagsisimula at hakbang ay maaaring tanggalin. Kung ang mga ito ay tinanggal, simulan=0 at hakbang=1.
import random
print(list(range(10)))
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(random.randrange(10))
# 5
Ang hakbang ng argumento ay maaaring itakda upang makabuo ng kahit o kakaibang random na integer, o isang random na integer na isang multiple ng tatlo.
Halimbawa, kung ang simula ay pantay at hakbang=2, kahit na mga integer lang sa hanay ang maaaring makuha nang random.
print(list(range(10, 20, 2)))
# [10, 12, 14, 16, 18]
print(random.randrange(10, 20, 2))
# 18
random.randint()(Isang integer sa anumang hanay)
randint(a, b)
Ang function ng random na module na ito ay nagbabalik ng sumusunod na random integer int.a <= n <= b
randrange(a, b + 1)
Katumbas nito; tandaan na ang halaga ng b ay kasama rin sa hanay.
print(random.randint(50, 100))
# print(random.randrange(50, 101))
# 74
Bumubuo ng isang listahan na may mga random na numero bilang mga elemento
Sa seksyong ito, ipapaliwanag namin kung paano gamitin ang random na module ng karaniwang library upang bumuo ng isang listahan na may mga random na numero bilang mga elemento.
Listahan ng mga random na numero na may floating-point floats
Upang makabuo ng isang listahan na ang mga elemento ay mga floating-point na random na numero, pagsamahin ang random() at uniform() na mga function na may list comprehension notation.
import random
print([random.random() for i in range(5)])
# [0.5518201298350598, 0.3476911314933616, 0.8463426180468342, 0.8949046353303931, 0.40822657702632625]
Sa halimbawa sa itaas, ginagamit ang range(), ngunit posible rin ang mga listahan at tuple para sa nais na bilang ng mga elemento. Para sa higit pang mga detalye sa mga pag-unawa sa listahan, mangyaring sumangguni sa sumusunod na artikulo.
- Mga Kaugnay na Artikulo:Paggamit ng Python list comprehension notation
Listahan ng mga integer int random na numero
Kapag bumubuo ng isang listahan na ang mga elemento ay mga integer na random na numero, ang pagsasama-sama ng nasa itaas na randange() at randint() sa notasyon ng pag-unawa sa listahan ay maaaring magresulta sa mga duplicate na halaga.
print([random.randint(0, 10) for i in range(5)])
# [8, 5, 7, 10, 7]
Kung gusto mong gumawa ng random na pagkakasunud-sunod ng mga integer na walang duplication, i-extract ang mga elemento ng range() na may arbitrary range gamit ang 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]
Para sa higit pang impormasyon tungkol sa random.sample(), mangyaring sumangguni sa sumusunod na artikulo.
- Mga Kaugnay na Artikulo:Pagpili ng mga random na elemento mula sa isang listahan sa Python gamit ang choice(), sample(), choices()
I-initialize ang random number generator (ayusin ang random number seed)
Sa pamamagitan ng pagbibigay ng arbitrary integer sa random module’s function seed(), ang random number seed ay maaaring maayos at ang random number generator ay maaaring masimulan.
Pagkatapos ng pagsisimula sa parehong binhi, ang random na halaga ay palaging nabuo sa parehong paraan.
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