所以我完全不熟悉編碼,我正在參加麻省理工Openware課程入門(我正在使用本書介紹計算和使用Python編程)如何更改代碼以查找負數和正數的立方根的近似值?
此外,由於我是新來的,有點害怕我的問題質量低下,所以請指出,如果你認爲我應該改善我提問的方式。
在3.4,我給出的代碼:
x = int(input("Please enter an integer: "))
epsilon = 0.01
numGuesses = 0
low = -100
high = max(1.0, x)
ans = (high + low)/2.0
while abs(ans**2 -x) >= epsilon:
print ("low = ", low, "High=", high, "ans=", ans)
numGuesses += 1
if ans**2 < x:
low = ans
else:
high = ans
ans = (high + low)/2.0
print ("numGuesses =", numGuesses)
print (ans, "Is close to square root of", x)
所以我試圖做的首先是瞭解代碼的每一行,它到底做了什麼。我已經得到了提示:「考慮改變低點以確保答案在於正在搜索的區域內。)
我試圖將低位改爲負數,我嘗試添加,如果低位更少大於0,則低= - 低這樣的:
x = int(input("Please enter an integer: "))
epsilon = 0.01
numGuesses = 0
low = 0.0
if low < 0:
low = -low
high = max(1.0, x)
ans = (high + low)/2.0
while abs(ans**2 -x) >= epsilon:
print ("low = ", low, "High=", high, "ans=", ans)
numGuesses += 1
if ans**2 < x:
low = ans
else:
high = ans
ans = (high + low)/2.0
print ("numGuesses =", numGuesses)
print (ans, "Is close to square root of", x)
不過我可能採取了錯誤的做法...
您仍然可以使用此方法查找負數的平方根。只需找到數字絕對值的平方根,然後將結果乘以* i *即可。當然負數可以有立方根:-3 * -3 * -3 = -27。 – chepner
不,確切地說,-3不是-27的立方根,它是X^3 + 27 = 0的三個根中的一個,這就是爲什麼面額有點不適合的原因。按照慣例,平方根通常指的是正數,並且被定義爲多項式X 2 -x = 0的唯一正根。這只是一個慣例問題。 – marmouset