Hejmarên rasthatî dikarin bi karanîna fonksiyonên random(), yekreng(), randange(), û randint() di modula rasthatî ya pirtûkxaneya standarda Python de werin çêkirin.
Modula random di pirtûkxaneya standard de tê de heye, ji ber vê yekê sazkirina zêde ne hewce ye. Bê guman, hûn hewce ne ku wê import bikin.
Agahiyên jêrîn li vir têne pêşkêş kirin.
random.random()
(Hejmara xala herikîn di navbera 0.0 û 1.0 de)random.uniform()
(Her cûrbecûr hejmarên xala herikîn)- Hejmarên tesadufî yên ku li pey belavbûnek normal, belavkirina Gaussian, hwd, biafirînin.
random.randrange()
(Rêjeya bêkêmasî û gavê)random.randint()
(Di her rêzikan de jimareyek tevde)- Hilberîna navnîşek bi hejmarên rasthatî wekî hêmanan
- Lîsteya jimareyên xalîçeya herikbar a rasthatî
- Lîsteya hejmarên rasthatî yên yekjimar
- Destpêkirina afirînerê jimareyên bêserûber (tevlihevkirina jimareya random rast bike)
Li gotara jêrîn li ser ka meriv çawa hêmanên navnîşek bi rengek bêserûber derdixe an rêz dike binêre.
- Gotarên Têkildar:Hilbijartina hêmanên tesadufî ji navnîşek di Python de bi karanîna bijare(), nimûne(), vebijark()
- random.random()(Hejmara xala herikîn di navbera 0.0 û 1.0 de)
- random.uniform()(Her cûrbecûr hejmarên xala herikîn)
- Hejmarên tesadufî yên ku li pey belavbûnek normal, belavkirina Gaussian, hwd, biafirînin.
- random.randrange()(Rêjeya bêkêmasî û gavê)
- random.randint()(Di her rêzikan de jimareyek tevde)
- Hilberîna navnîşek bi hejmarên rasthatî wekî hêmanan
- Destpêkirina afirînerê jimareyên bêserûber (tevlihevkirina jimareya random rast bike)
random.random()(Hejmara xala herikîn di navbera 0.0 û 1.0 de)
Fonksiyona modulê ya random random() jimareyek nuqteya herikandinê ya birêkûpêk a celebê float ku di navbera 0.0 û 1.0 de ye çêdike.
import random
print(random.random())
# 0.4496839011176701
random.uniform()(Her cûrbecûr hejmarên xala herikîn)
uniform(a, b)
Fonksiyonên vê modulê yên bêserûber di yek ji rêzikên jêrîn de hejmarên birêkûpêk ên celebê float-hejmar-xala hilanînê diafirînin.
a <= n <= b
b <= n <= a
import random
print(random.uniform(100, 200))
# 175.26585048238275
Du arguman dikarin mezintir an piçûktir bin; heke ew wekhev bin, ew ê bi xwezayî tenê wê nirxê vegerînin. Nirxa vegerê her gav floatek e.
print(random.uniform(100, -100))
# -27.82338731501028
print(random.uniform(100, 100))
# 100.0
Argument dikare wekî float jî were destnîşan kirin.
print(random.uniform(1.234, 5.637))
# 2.606743596829249
Ma nirxa b-yê di nav rêzê de tê de ye, wekî ku hatî belgekirin bi dorpêdana jêrîn ve girêdayî ye.a + (b-a) * random.random()
Ka nirxa xala dawîn b di nav rêzê de ye an na, bi dorvekirina xala herikînê ya di hevkêşana jêrîn de girêdayî ye
a + (b-a) * random()
random.uniform() — Generate pseudo-random numbers — Python 3.10.2 Documentation
Hejmarên tesadufî yên ku li pey belavbûnek normal, belavkirina Gaussian, hwd, biafirînin.
Fonksiyonên random() û unîform() yên li jor hejmarên rasthatî yên bi yekrengî belavbûyî çêdikin, lê fonksiyonên çêkirina jimareyên xala herikandinê jî hene ku li dû belavkirina jêrîn peyda dibin.
- belavkirina beta:
random.betavariate()
- belavkirina qat bi qat:
random.expovariate()
- belavkirina gama:
random.gammavariate()
- Dabeşkirina Gaussian:
random.gauss()
- belavkirina lognormal:
random.lognormvariate()
- belavkirina normal:
random.normalvariate()
- belavkirina Von Mises:
random.vonmisesvariate()
- Belavkirina Pareto:
random.paretovariate()
- belavkirina Weibull:
random.weibullvariate()
Parametreyên her belavkirinê bi argumanan têne diyar kirin. Ji bo hûragahiyan li belgeya fermî binêre.
random.randrange()(Rêjeya bêkêmasî û gavê)
randrange(start, stop, step)
Fonksiyona vê modulê ya rasthatî hêmanek bi korfelaqî hilbijartî ji hêmanên jêrîn vedigerîne.range(start, stop, step)
Mîna bi range(), arguman dest pê dikin û gav dikarin werin avêtin. Ger ew ji holê bên rakirin, destpêk=0 û gav=1.
import random
print(list(range(10)))
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(random.randrange(10))
# 5
Pêngava argumana dikare were saz kirin da ku hejmareke rasthatî ya zewac an jî xerîb, an jimareyek rasthatî ya ku pirjimarek ji sê ye, çêbike.
Mînakî, heke destpêk zewac be û gav=2 be, tenê hejmarên hejmarên rêzê bi tesadufî dikarin werin bidestxistin.
print(list(range(10, 20, 2)))
# [10, 12, 14, 16, 18]
print(random.randrange(10, 20, 2))
# 18
random.randint()(Di her rêzikan de jimareyek tevde)
randint(a, b)
Fonksiyona vê modulê ya rasthatî jimareya bêkêmasî ya jêrîn vedigerîne.a <= n <= b
randrange(a, b + 1)
Wekheviya vê; bala xwe bidin ku nirxa b jî di nav rêzê de ye.
print(random.randint(50, 100))
# print(random.randrange(50, 101))
# 74
Hilberîna navnîşek bi hejmarên rasthatî wekî hêmanan
Di vê beşê de, em ê rave bikin ka meriv çawa modulaya rasthatî ya pirtûkxaneya standard bikar tîne da ku navnîşek bi hejmarên bêserûber wekî hêman çêbike.
Lîsteya hejmarên tesadufî yên bi noqteyên herikandinê
Ji bo hilberandina navnîşek ku hêmanên wê hejmarên birêkûpêk-xala herikbar in, fonksiyonên random() û yekreng() bi nîşaneya têgihîştina navnîşê re bikin yek.
import random
print([random.random() for i in range(5)])
# [0.5518201298350598, 0.3476911314933616, 0.8463426180468342, 0.8949046353303931, 0.40822657702632625]
Di mînaka li jor de, range() tê bikar anîn, lê lîste û tîp jî ji bo hejmara hêmanên xwestinê mimkun in. Ji bo bêtir agahdarî li ser têgihîştina navnîşê, ji kerema xwe li gotara jêrîn binihêrin.
- Gotarên Têkildar:Bikaranîna nîşana têgihîştina navnîşa Python
Lîsteya hejmarên bêkêmasî yên rasthatî
Dema ku navnîşek ku hêmanên wê hejmarên rasthatî yên yekjimar in têne çêkirin, berhevkirina randange() û randint() ya jorîn bi nîşana têgihîştina navnîşê re dibe ku bibe sedema nirxên dubare.
print([random.randint(0, 10) for i in range(5)])
# [8, 5, 7, 10, 7]
Ger hûn dixwazin rêzek bêheval ji jimaran bê duber çêkin, hêmanên rêzê() bi rêjeyek keyfî bi karanîna random.sample() derxînin.
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]
Ji bo bêtir agahdarî li ser random.sample(), ji kerema xwe li gotara jêrîn binihêrin.
- Gotarên Têkildar:Hilbijartina hêmanên tesadufî ji navnîşek di Python de bi karanîna bijare(), nimûne(), vebijark()
Destpêkirina afirînerê jimareyên bêserûber (tevlihevkirina jimareya random rast bike)
Bi dayîna jimareyek bêkêmasî ji fonksiyona moduleya random seed(), tovê hejmarên rasthatî dikare were rast kirin û çêkerê jimareyên random dikare were destpêkirin.
Piştî destpêkirina bi heman tovê, nirxa rasthatî her gav bi heman rengî tê hilberandin.
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