কম্পিউটার

পাইথনে প্রদত্ত এলাকা এবং কর্ণের থেকে সমকোণী ত্রিভুজ সম্ভব কিনা তা পরীক্ষা করুন


ধরুন আমাদের একটি সমকোণ ত্রিভুজের কর্ণ এবং ক্ষেত্রফল আছে, আমাদের এই ত্রিভুজের ভিত্তি এবং উচ্চতা বের করতে হবে। যদি সম্ভব না হয় তাহলে মিথ্যা ফেরত দিন।

সুতরাং, যদি ইনপুট হাইপো =10, এলাকা =24 এর মত হয়, তাহলে আউটপুট হবে (6, 8)।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • hypo_sq :=হাইপো * হাইপো
  • s :=(hypo_sq / 2.0) এর বর্গমূল
  • maxArea :=বেস s এবং hypotenuse hypotenuse ব্যবহার করে ত্রিভুজের ক্ষেত্রফল গণনা করুন
  • যদি এলাকা> maxArea, তারপর
    • মিথ্যে ফেরত দিন
  • বামে :=0.0, ডানে :=s
  • যখন |ডান - বাম|> 0.000001, do
    • বেস :=(বাম + ডান) / 2.0
    • যদি ত্রিভুজের ক্ষেত্রফল বেস s এবং হাইপোটেনাস হাইপো>=ক্ষেত্রফল ব্যবহার করে, তাহলে
      • ডান :=ভিত্তি
    • অন্যথায়,
      • বাম :=ভিত্তি
  • উচ্চতা :=(hypo_sq - base*base) এর বর্গমূল এবং নিকটতম পূর্ণসংখ্যার বৃত্তাকার
  • বেসের নিকটতম পূর্ণসংখ্যার বৃত্তাকার
  • রিটার্ন বেস এবং উচ্চতা

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ কোড

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))

ইনপুট

10, 24

আউটপুট

(6, 8)

  1. একটি সমকোণী ত্রিভুজের মধ্যবিন্দু এবং ভিত্তির মধ্যে কোণ খুঁজে পাওয়ার জন্য পাইথন প্রোগ্রাম

  2. পাইথনে ভেক্টর এ ঘুরিয়ে এবং ভেক্টর সি যোগ করে ভেক্টর বি-তে পৌঁছানো সম্ভব কিনা তা পরীক্ষা করুন

  3. পাইথনের বৃহত্তম ত্রিভুজ এলাকা

  4. প্রদত্ত স্ট্রিং থেকে সমস্ত সম্ভাব্য বৈধ আইডি ঠিকানা তৈরি করতে পাইথন প্রোগ্রাম