Python3:检查三边是否能够使用三角不等式形成具有非零区域的三角形

时间:2013-11-25 08:08:46

标签: python-3.x floating-point geometry

我有一个问题:确定用户给出的三个正浮点值(a,b,c)是否可以表示具有非零区域的三角形的三个边长;通过使用三角不等式定理。用户输入不需要进行错误检查。

以下代码是答案纸上给出的答案。但是,我不明白,有人可以在代码中向我解释'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.")

2 个答案:

答案 0 :(得分:1)

在三角形中,任何两边必须加起来大于第三边。

如果其中一方长于另外两条加起来,那么s将等于负数。只要s的值大于eps(基本上就是说只要s大于0),就会发现3个点确实形成了一个有效的三角形。

这有帮助吗?如果您需要更多信息,请告诉我。

答案 1 :(得分:0)

s中不能有两个负面因素是显而易见的,因为较小边的总和小于最长边意味着当最长边包含在总和中时,总和将超过较小的一个边