Geçerli yönteminiz gayet iyi, bunu pek çok denemede birkaç deneme yaparak doğrulayabilirsiniz. Örneğin, 1000000 girişimi ile yaklaşık 600000 Gerçek sonuç bekleriz:
>>> sum(generate() for i in range(1000000))
599042
>>> sum(generate() for i in range(1000000))
599670
>>> sum(generate() for i in range(1000000))
600011
>>> sum(generate() for i in range(1000000))
599960
>>> sum(generate() for i in range(1000000))
600544
Doğru görünüyor. Eğer int(random.random() >= p)
kullanabilirsiniz False
1
ve 0
yerine True
istiyor ve varsa
p = 0.40
def generate():
return random.random() >= p
, ancak bu neredeyse kesinlikle gereksizdir:
açıklamalarda belirtildiği gibi
, kendi yöntem biraz kısaltabilir.
Bu basit, açık ve doğru. Bunun nesi yanlış? –
Bilmiyorum. Bu konuda garip bir his vardı, bu yüzden daha iyisini istediğimi düşündüm. Teşekkürler. – darxsys
Geri dönüş x> = p', daha kısa olabilir, ancak belki daha az okunabilir. – lenz