Olasılık Nedir? (Probability)
Olasılık, bir olayın gerçekleşme şansını ifade eder. 0 ile 1 arasında (veya %0 ile %100 arası) bir değerdir.
Uniform Dağılım (Uniform Distribution)
random() fonksiyonu uniform dağılım üretir:
her değer eşit olasılıklıdır.
💡 Histogram Nedir?
Histogram, değerlerin ne sıklıkta görüldüğünü gösteren bir grafiktir. Uniform dağılımda tüm çubuklar yaklaşık aynı yüksekliktedir.
Olasılık ile Kodlama (Coding with Probability)
random(1) ile 0-1 arası değer üretip, olasılık kontrol edebiliriz:
// %10 olasılık
if (random(1) < 0.1) {
console.log("Bu %10 olasılıkla çalışır!");
}
// %75 olasılık
if (random(1) < 0.75) {
console.log("Bu %75 olasılıkla çalışır!");
}
// Yazı-tura (%50)
if (random(1) < 0.5) {
console.log("Yazı!");
} else {
console.log("Tura!");
}
🔬 Deneyin:
-
Satır 8:
0.9yapın Beklenti: Daha çok kırmızı daire -
Satır 8:
0.1yapın Beklenti: Çoğunlukla mavi daire
Ağırlıklı Olasılık (Weighted Probability)
Farklı seçeneklere farklı olasılıklar atamak istiyorsak ağırlıklı olasılık kullanırız:
Ağırlıklı Seçim Algoritması:
random(toplam) ile 0'dan toplam ağırlığa kadar sayı seç
Özel Olasılık: Büyük Sayıları Tercih Etme (Custom Probability)
Ya daha büyük sayıların seçilme olasılığı daha yüksek olsun istiyorsak? Mesela 0-1 arası bir sayı seçelim ama 1'e yakın sayılar daha çok seçilsin.
Bunu yapmak için "qualifying random" yöntemi kullanabiliriz: iki rastgele sayı seç, ikincisi birinciden küçükse kabul et.
Algoritma Nasıl Çalışır:
map() Fonksiyonu (The map() Function)
map() fonksiyonu, bir değeri bir aralıktan başka bir aralığa dönüştürür.
Rastgelelikle çalışırken çok kullanışlıdır!
// random() 0-1 verir, bunu 100-500'e çevir
let size = map(random(), 0, 1, 100, 500);
// Fare x pozisyonunu (0-width) renge (0-255) çevir
let red = map(mouseX, 0, width, 0, 255);
// noise() 0-1 verir, bunu -50 ile 50'ye çevir
let offset = map(noise(t), 0, 1, -50, 50);
🎮 map() Kullanım Alanları
- Noise → Konum:
map(noise(t), 0, 1, 0, width) - Fare → Renk:
map(mouseX, 0, width, 0, 255) - Mesafe → Boyut:
map(dist, 0, maxDist, 50, 10)
Bağımsız Olaylar (Independent Events)
İki olay bağımsız ise, birinin sonucu diğerini etkilemez.
Her random() çağrısı bağımsızdır!
// İki yazı üst üste gelme olasılığı
// P(yazı) = 0.5
// P(yazı ve yazı) = 0.5 × 0.5 = 0.25 = %25
// Üç 6 üst üste gelme olasılığı
// P(6) = 1/6 ≈ 0.167
// P(6 ve 6 ve 6) = (1/6)³ ≈ 0.005 = %0.5
⚠️ Kumarbaz Yanılgısı
"5 kez yazı geldi, artık tura gelme olasılığı arttı!" → YANLIŞ! Her atış bağımsız, olasılık hep %50 kalır. Bu yanlış inanışa "Gambler's Fallacy" denir.
📝 Bu Bölümün Özeti
- Olasılık: 0-1 arası, olayın gerçekleşme şansı
- Uniform dağılım: Her değer eşit olasılıklı (random())
- Ağırlıklı olasılık: Farklı seçeneklere farklı şanslar
- Bağımsız olaylar: Olasılıklar çarpılır
- Histogram: Dağılımı görselleştirme