在Python中使用余弦解决三角形问题

时间:2013-01-19 02:13:07

标签: python geometry cosine cos angle

嗨,我是新来的,我一般都不懂python或代码但我正在尝试,我一直在尝试2-3个小时,我正在努力

“考虑一个边长为3,7和9的三角形。余弦定律表明三角形(a,b和c)的三边和边a和b之间的角度C:  c ^ 2 = b ^ 2 + a ^ 2 - 2 * a * b * cos(C) 编写Python代码来计算三角形中的三个角度。“

这是家庭作业,这很难!!!!!!!!!!!!!! 这是我到目前为止所做的...

  import math

  a_float = 3 
  b_float = 7 
  c_float = 9

  def find_angle_cosine_of_c_float =

 (c_float**2-b_float**2-a_float**2)/(-2*a_float*b_float)

  a = input("enter A: ") 
  b = input("enter B: ") 
  c = input("enter C: ")

  angle_c_float = math.acos(cosine_of_float)

  angle_c_float = angle_c_float*180/math.pi

  assert find_angle_cosine_of_c_float(7, 9, 3)
  assert find_angle_cosine_of_c_float(3, 7, 9) 
  assert find_angle_cosine_of_c_float(9, 3, 7)

  Return angle(angle_c_float)

如果它看起来像是一堆废话那是因为它是........

1 个答案:

答案 0 :(得分:6)

你有一个python问题和一个数学问题。

此代码应该按您的要求执行:

import math

a = 3 
b = 7 
c = 9

def angle (a, b, c):
    return math.degrees(math.acos((c**2 - b**2 - a**2)/(-2.0 * a * b)))

angA = angle(a,b,c)
angB = angle(b,c,a)
angC = angle(c,a,b)

assert angA + angB + angC == 180.0

print angA
print angB
print angC

解释:你的作业要求你计算每个角或三个角的角度。这是通过公式完成的,三个角度应该总和为180,就像每个三角形一样。我所做的是创建一个函数,它接受每个角度的acosine(函数考虑参数的顺序),然​​后创建断言并打印结果。

重要的一点是你输入的数字是整数(3,7,9),公式中有一个除法。这是一个整数除法,因为分母和分子中的所有内容都是整数。所以我使用2.0告诉Python这两个是浮点数,然后其他所有内容都会自动转换。这有点微妙,你应该注意这一点。

希望这有帮助,不要放弃学习,无论是Python还是数学!