Sözde rastgele sayı üretimi

Python'da Örnekleme

James Chapman

Curriculum Manager, DataCamp

Rastgele ne demek?

Yöntemsiz ya da bilinçli bir karar olmadan yapılan, olan veya seçilen {sıfat}.

1 Oxford Languages
Python'da Örnekleme

Gerçek rastgele sayılar

  • Yazı tura gibi fiziksel süreçlerden üretilir
  • Hotbits radyoaktif bozunumu kullanır
  • RANDOM.ORG atmosferik gürültü kullanır
  • Gerçek rastgelelik pahalıdır
1 https://www.fourmilab.ch/hotbits 2 https://www.random.org
Python'da Örnekleme

Sözde rastgele sayı üretimi

  • Sözde rastgele üretim ucuz ve hızlıdır
  • Sonraki "rastgele" sayı, önceki "rastgele" sayıdan hesaplanır
  • İlk "rastgele" sayı bir tohumdan (seed) hesaplanır
  • Aynı tohum aynı rastgele sayıları üretir
Python'da Örnekleme

Sözde rastgele üretime örnek

seed = 1
calc_next_random(seed)
3
calc_next_random(3)
2
calc_next_random(2)
6
Python'da Örnekleme

Rastgele sayı üreten fonksiyonlar

  • numpy.random ile başlayın, ör. numpy.random.beta()
function distribution function distribution
.beta Beta .hypergeometric Hipergeometrik
.binomial Binom .lognormal Lognormal
.chisquare Ki-kare .negative_binomial Negatif binom
.exponential Üstel .normal Normal
.f F .poisson Poisson
.gamma Gamma .standard_t t
.geometric Geometrik .uniform Uniform
Python'da Örnekleme

Rastgele sayıları görselleştirme

randoms = np.random.beta(a=2, b=2, size=5000)
randoms
array([0.6208281 , 0.73216171, 0.44298403, ..., 
       0.13411873, 0.52198411, 0.72355098])
plt.hist(randoms, bins=np.arange(0, 1, 0.05))
plt.show()

beta histogramı

Python'da Örnekleme

Rastgele sayı tohumları (seed)

np.random.seed(20000229)
np.random.normal(loc=2, scale=1.5, size=2)
array([-0.59030264, 1.87821258])
np.random.normal(loc=2, scale=1.5, size=2)
array([2.52619561, 4.9684949 ])
np.random.seed(20000229)
np.random.normal(loc=2, scale=1.5, size=2)
array([-0.59030264, 1.87821258])
np.random.normal(loc=2, scale=1.5, size=2)
array([2.52619561, 4.9684949 ])
Python'da Örnekleme

Farklı bir tohum kullanma

np.random.seed(20000229)
np.random.normal(loc=2, scale=1.5, size=2)
array([-0.59030264, 1.87821258])
np.random.normal(loc=2, scale=1.5, size=2)
array([2.52619561, 4.9684949 ])
np.random.seed(20041004)
np.random.normal(loc=2, scale=1.5, size=2)
array([1.09364337, 4.55285159])
np.random.normal(loc=2, scale=1.5, size=2)
array([2.67038916, 2.36677492])
Python'da Örnekleme

Haydi pratik yapalım!

Python'da Örnekleme

Preparing Video For Download...