Təsadüfi ədədlər Python standart kitabxanasının təsadüfi modulunda random(), uniform(), randange() və randint() funksiyalarından istifadə etməklə yaradıla bilər.
Təsadüfi modul standart kitabxanaya daxildir, ona görə də əlavə quraşdırma tələb olunmur. Təbii ki, idxal etmək lazımdır.
Aşağıdakı məlumatlar burada verilir.
random.random()
(0.0 ilə 1.0 arasında dəyişən nöqtə sayı)random.uniform()
(Üzən nöqtə nömrələrinin istənilən diapazonu)- Normal paylanma, Qauss paylanması və s. izləyən təsadüfi ədədlər yaradın.
random.randrange()
(İxtiyari aralığın və addımın tam ədədi)random.randint()
(İstənilən diapazonda tam ədəd)- Elementlər kimi təsadüfi ədədlərlə siyahının yaradılması
- Təsadüfi üzən nöqtəli nömrələrin siyahısı
- Tam təsadüfi ədədlərin siyahısı
- Təsadüfi ədədlər generatorunu işə salın (təsadüfi ədəd toxumunu düzəldin)
Siyahının elementlərini təsadüfi çıxarmaq və ya çeşidləmək üçün aşağıdakı məqaləyə baxın.
- Əlaqədar Məqalələr:Choice(), sample(), options() istifadə edərək Python-da siyahıdan təsadüfi elementlərin seçilməsi
- random.random()(0.0 ilə 1.0 arasında dəyişən nöqtə sayı)
- random.uniform()(Üzən nöqtə nömrələrinin istənilən diapazonu)
- Normal paylanma, Qauss paylanması və s. izləyən təsadüfi ədədlər yaradın.
- random.randrange()(İxtiyari aralığın və addımın tam ədədi)
- random.randint()(İstənilən diapazonda tam ədəd)
- Elementlər kimi təsadüfi ədədlərlə siyahının yaradılması
- Təsadüfi ədədlər generatorunu işə salın (təsadüfi ədəd toxumunu düzəldin)
random.random()(0.0 ilə 1.0 arasında dəyişən nöqtə sayı)
Təsadüfi modulun random() funksiyası 0,0 ilə 1,0 arasında olan float tipli təsadüfi üzən nöqtə sayı yaradır.
import random
print(random.random())
# 0.4496839011176701
random.uniform()(Üzən nöqtə nömrələrinin istənilən diapazonu)
uniform(a, b)
Bu təsadüfi modulun funksiyaları aşağıdakı diapazonlardan hər hansı birində üzən nöqtəli nömrə float tipli təsadüfi ədədlər yaradır.
a <= n <= b
b <= n <= a
import random
print(random.uniform(100, 200))
# 175.26585048238275
İki arqument daha böyük və ya kiçik ola bilər; bərabərdirlərsə, təbii olaraq yalnız həmin dəyəri qaytaracaqlar. Qaytarılan dəyər həmişə floatdır.
print(random.uniform(100, -100))
# -27.82338731501028
print(random.uniform(100, 100))
# 100.0
Arqument float kimi də göstərilə bilər.
print(random.uniform(1.234, 5.637))
# 2.606743596829249
b dəyərinin aralığa daxil edilib-edilməməsi sənədləşdirildiyi kimi aşağıdakı yuvarlaqlaşdırmadan asılıdır.a + (b-a) * random.random()
Son nöqtə dəyərinin b diapazonda olub-olmaması aşağıdakı tənlikdə üzən nöqtənin yuvarlaqlaşdırılmasından asılıdır
a + (b-a) * random()
random.uniform() — Generate pseudo-random numbers — Python 3.10.2 Documentation
Normal paylanma, Qauss paylanması və s. izləyən təsadüfi ədədlər yaradın.
Yuxarıdakı random() və uniform() funksiyaları bərabər paylanmış təsadüfi ədədlər yaradır, lakin aşağıdakı paylanmanı izləyən üzən nöqtəli ədədlər yaratmaq funksiyaları da var.
- beta paylanması:
random.betavariate()
- eksponensial paylanma:
random.expovariate()
- qamma paylanması:
random.gammavariate()
- Qauss paylanması:
random.gauss()
- lognormal paylanma:
random.lognormvariate()
- normal paylanma:
random.normalvariate()
- Von Mises paylanması:
random.vonmisesvariate()
- Pareto paylanması:
random.paretovariate()
- Weibull paylanması:
random.weibullvariate()
Hər paylamanın parametrləri arqumentlərlə müəyyən edilir. Təfərrüatlar üçün rəsmi sənədlərə baxın.
random.randrange()(İxtiyari aralığın və addımın tam ədədi)
randrange(start, stop, step)
Bu təsadüfi modulun funksiyası aşağıdakı elementlərdən təsadüfi seçilmiş elementi qaytarır.range(start, stop, step)
range() ilə olduğu kimi başlanğıc və addım arqumentləri buraxıla bilər. Əgər onlar buraxılıbsa, start=0 və step=1.
import random
print(list(range(10)))
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(random.randrange(10))
# 5
Arqument addımı cüt və ya tək təsadüfi tam ədəd və ya üçə çox olan təsadüfi tam ədəd yaratmaq üçün təyin edilə bilər.
Məsələn, başlanğıc cüt və addım=2 olarsa, diapazonda yalnız cüt tam ədədlər təsadüfi olaraq əldə edilə bilər.
print(list(range(10, 20, 2)))
# [10, 12, 14, 16, 18]
print(random.randrange(10, 20, 2))
# 18
random.randint()(İstənilən diapazonda tam ədəd)
randint(a, b)
Bu təsadüfi modulun funksiyası aşağıdakı təsadüfi tam ədədi qaytarır.a <= n <= b
randrange(a, b + 1)
Buna ekvivalent; Qeyd edək ki, b-nin dəyəri də diapazona daxildir.
print(random.randint(50, 100))
# print(random.randrange(50, 101))
# 74
Elementlər kimi təsadüfi ədədlərlə siyahının yaradılması
Bu bölmədə biz elementlər kimi təsadüfi ədədlərdən ibarət siyahı yaratmaq üçün standart kitabxananın təsadüfi modulundan necə istifadə edəcəyimizi izah edəcəyik.
Üzən nöqtələri olan təsadüfi ədədlərin siyahısı
Elementləri üzən nöqtəli təsadüfi ədədlər olan siyahı yaratmaq üçün random() və uniform() funksiyalarını siyahı başa düşmə notasiyası ilə birləşdirin.
import random
print([random.random() for i in range(5)])
# [0.5518201298350598, 0.3476911314933616, 0.8463426180468342, 0.8949046353303931, 0.40822657702632625]
Yuxarıdakı misalda range() istifadə olunur, lakin siyahılar və dəstlər də istənilən sayda element üçün mümkündür. Siyahı anlayışları haqqında daha ətraflı məlumat üçün aşağıdakı məqaləyə müraciət edin.
- Əlaqədar Məqalələr:Python siyahısı başa düşmə notasiyasından istifadə
Tam int təsadüfi ədədlərin siyahısı
Elementləri tam təsadüfi ədədlər olan siyahı yaradarkən yuxarıdakı randange() və randint() ilə siyahının başa düşülməsi qeydinin birləşdirilməsi dublikat dəyərlərlə nəticələnə bilər.
print([random.randint(0, 10) for i in range(5)])
# [8, 5, 7, 10, 7]
Əgər siz təkrarlama olmadan tam ədədlərin təsadüfi ardıcıllığını yaratmaq istəyirsinizsə, random.sample() istifadə edərək ixtiyari diapazonla range() elementlərini çıxarın.
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]
random.sample() haqqında ətraflı məlumat üçün aşağıdakı məqaləyə müraciət edin.
- Əlaqədar Məqalələr:Choice(), sample(), options() istifadə edərək Python-da siyahıdan təsadüfi elementlərin seçilməsi
Təsadüfi ədədlər generatorunu işə salın (təsadüfi ədəd toxumunu düzəldin)
Təsadüfi modulun seed() funksiyasına ixtiyari tam ədəd verməklə, təsadüfi ədədlərin toxumunu sabitləşdirmək və təsadüfi ədədlər generatorunu işə salmaq olar.
Eyni toxumla işə salındıqdan sonra təsadüfi dəyər həmişə eyni şəkildə yaradılır.
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