Computer >> Máy Tính >  >> Lập trình >> Python

Kiểm tra xem tam giác vuông có thể có từ diện tích và cạnh huyền đã cho bằng Python hay không

Giả sử chúng ta có cạnh huyền và diện tích của một tam giác vuông, chúng ta phải tìm đáy và chiều cao của tam giác này. Nếu không thể trả lại False.

Vì vậy, nếu đầu vào giống như hypo =10, area =24, thì đầu ra sẽ là (6, 8).

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • hypo_sq:=hypo * hypo
  • s:=căn bậc hai của (hypo_sq / 2.0)
  • maxArea:=tính diện tích hình tam giác bằng cách sử dụng cơ sở s và cạnh huyền hypo
  • if area> maxArea, then
    • trả về Sai
  • left:=0.0, right:=s
  • trong khi | phải - trái |> 0,000001, thực hiện
    • cơ sở:=(trái + phải) / 2.0
    • nếu diện tích tam giác sử dụng cơ sở s và cạnh huyền hypo> =diện tích, thì
      • right:=base
    • nếu không,
      • left:=base
  • height:=căn bậc hai của (hypo_sq - base * base) và làm tròn đến số nguyên gần nhất
  • làm tròn đến số nguyên gần nhất của cơ số
  • trả về cơ sở và chiều cao

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Mã mẫu

from math import sqrt
 
def calculate_area(b, h):
   hei = sqrt(h*h - b*b);
   return 0.5 * b * hei

def solve(hypo, area):
   hypo_sq = hypo * hypo
   s = sqrt(hypo_sq / 2.0)
   maxArea = calculate_area(s, hypo)

   if area > maxArea:
      return False
     
   left = 0.0
   right = s
     
   while abs(right - left) > 0.000001:
      base = (left + right) / 2.0
      if calculate_area(base, hypo) >= area:
         right = base
      else:
         left = base
     
   height = round(sqrt(hypo_sq - base*base))
   base = round(base)
   return base, height

hypo = 10
area = 24
print(solve(hypo, area))

Đầu vào

10, 24

Đầu ra

(6, 8)