2016-12-06 37 views
0

我知道我們可以使用公式math.floor(b**(1.0/i))-math.ceil(a**(1.0/i))+1 來計算給定範圍內的平方數,當我想要找到完美立方體的數量時,它是否成立?計算給定範圍內的完美平方,完美立方體等的數量?

更新:對於所有的人都面臨着這樣的問題,樓層和小區功能不能很好平方根,立方根工作後,等

+0

什麼值不適用?這是Python的問題還是你的算法? –

+0

算法我相信嗎? –

+0

例如:範圍32,64。 –

回答

1

浮點數計算are not exact

64 ** 1/3的值可能是〜3.99999975,所以floor給出3.或4.000000016,所以ceil給出5(我沒有檢查實際值)。您必須考慮數字錯誤。

對於此任務,您可以計算根(使用**或Math.Pow),並檢查與floor-ed和ceil-ed值的差異。如果差異非常小,請檢查此根是否確切一個 - 使用乘法的整數。

+0

謝謝你解決了很多問題,但我仍然得到了一些錯誤的答案。我更新了代碼。 –

+0

您是否將高值,低值與真值進行了比較? – MBo

+0

謝謝。有效。代碼中有錯誤。 –