2017-03-08 62 views
-1

這段代碼的變化百分比是多少,達到200,500和1000?如何計算我發生x的機率?

我創建了200代碼爲50%,但它保持滾動數字超過200,有人請幫助我,如果你明白:D。

var mainMultplier = 100; 
var numerator = 99; 
var denominator = 100;  

for(;;) { 
    var randomInt = random.real(0, 1.0); 

    if (numerator/denominator > randomInt) { 
    numerator = numerator + 1; 
    denominator = denominator + 1; 
    mainMultplier = mainMultplier + 1; 
    } else { 
    break; 
    } 
} 
+0

你是什麼意思你創建了這個代碼'爲200是50%'? – cdhanson

+0

我想要它達到200%的主乘數的約50%,達到300的約33%,達到500的約20%,達到1000的約10%等等。 –

+0

我並沒有真正看到在200,300,500和1000的序列中遵循什麼值,但是您列出的百分比已經達到了113%。你能澄清一下嗎? – elias

回答

0

編輯

基於你已經發布的代碼,我們可以看到這兩個基礎規則:

P(100) = 1 - 0.99 = 0.01 
P(101) = (1 - P(100)) * (1 - (100/101)) = P(101) = (1 - P(100)) * (1/101) 

第二條規則可以100後推廣到任意數量的X

P(X) = (1 - P(X - 1)) * (1/X) 

現在,我做了l賺取如何通過在Uni進行歸納證明,我肯定會幫助我在這裏解釋,但我不記得它:(:(。所以不是,我已經寫了一些代碼來生成一個查找表p,從100到1000:

var p = []; 
p[100] = 0.01; 

for (var x = 101; x <= 1000; x++) 
    p[x] = (1 - p[x - 1]) * (1/x); 

編輯2

這就是儘可能幫助我可以走了。您可能需要在Software Engineering page上發佈廣義算法。

+0

是的,這是什麼意思,首先達到101將是99%,然後如果你會做0.99 * 0.9900990099 * 100 = 98.0198019801這意味着有98.0198019801%的達到102,我正確嗎? 我不是最好的數學,我只是想弄明白這一點。 –

+0

我認爲我創造的就是假設你想計算它的可能性爲110,那麼(這是我認爲的)你必須這樣做, (99/100)*(100/101)* (101/102)*(103/104)*(105/106)*(106/107)*(107/108)*(108/109)*(109/110)*(110/111)* 100 = 90.9295890914% 這個數學正確嗎?這實際上是代碼在做什麼? –

+0

因此,一個高主乘數的機會實際上應該是增加而不是減少以獲得相當數量的可能性。 –