我有一个疑问:要确定用户给出的三个正浮点值(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:同意;我真的不想进入那个...... :-)。 –