我有一個疑問:要確定用戶給出的三個正浮點值(a,b,c)是否可以表示三個具有非零區域的三角形的邊長;通過使用三角不等式定理。用戶輸入不需要檢查錯誤。Python3:檢查三邊是否能夠使用三角形不等式形成非零區域的三角形
下面的代碼是回答表中給出的答案。但是,我不明白,有人可以向我解釋代碼中's'和'eps'的用途嗎?謝謝!
a = float (input ("Please enter a positive value, a: "))
b = float (input ("Please enter a positive value, b: "))
c = float (input ("Please enter a positive value, c: "))
s = (a + b - c) * (a + c - b) * (c + b - a)
eps = 0.0000001
if abs(s) > eps:
print ("The 3 values form a triangle with non-zero area.")
else:
print ("The 3 values DO NOT form a triangle at all.")
這真的是解決方案的樣子嗎?如果是這樣,那就錯了:'abs(s)> eps'應該用's> eps'替換。 –
答案是錯的。即使在[Mark Dickinson](http://stackoverflow.com/users/270986/mark-dickinson)建議的「校正」測試中,它給出了地球上一個頂點的三角形,月球上的一個頂點,和一個在仙女座星系(因爲's'將爲零)。 –
@EricPostpischil:同意;我真的不想進入那個...... :-)。 –