Soruyu çerçevelemek için, bilgisayar biliminde sıklıkla birkaç olasılığın ürününü hesaplamak istiyoruz:
P(A,B,C) = P(A) * P(B) * P(C)
En basit yaklaşım basitçe bu sayıları çarpmaktır ve yapacağım da buydu. Ancak, patronum olasılıkların günlüğünü eklemenin daha iyi olduğunu söyledi:
log(P(A,B,C)) = log(P(A)) + log(P(B)) + log(P(C))
Bu, günlük olasılığını verir, ancak gerekirse daha sonra olasılığı elde edebiliriz:
P(A,B,C) = e^log(P(A,B,C))
Günlük ekleme iki nedenden dolayı daha iyi kabul edilir:
- Olasılıkların çarpımı sıfıra yuvarlanacak şekilde "küçük" akışı önler. Olasılıklar çok küçük olduğu için bu genellikle bir risk olabilir.
- Daha hızlıdır, çünkü birçok bilgisayar mimarisi çarpma işleminden daha çabuk toplama yapabilir.
Benim sorum ikinci nokta. Ben böyle tarif gördüm, ama günlük alma ek maliyet dikkate almaz! "Günlük maliyeti + toplama maliyeti" ile "çarpma maliyeti" ni karşılaştırmalıyız. Bunu dikkate aldıktan sonra hala daha mı küçük?
Ayrıca, Wikipedia sayfası ( Günlük olasılığı ) bu açıdan kafa karıştırıcıdır: "Günlük formuna dönüşüm pahalı, ancak yalnızca bir kez gerçekleşiyor." Bunu anlamıyorum, çünkü eklemeden önce her dönemin kaydını bağımsız olarak almanız gerektiğini düşünüyorum. Neyi kaçırıyorum?
Son olarak, "bilgisayarlar çarpma işleminden daha hızlı toplama yapar" gerekçesi belirsizdir. Bu x86 komut setine özgü mü, yoksa işlemci mimarilerinin daha temel bir özelliği mi?