কম্পিউটার

বিন্দুর তালিকা পাইথনে সরলরেখা তৈরি করে কিনা তা পরীক্ষা করার জন্য প্রোগ্রাম


ধরুন আমাদের একটি কার্টেসিয়ান সমতলে একটি তালিকা স্থানাঙ্ক রয়েছে, আমাদের পরীক্ষা করতে হবে যে স্থানাঙ্কগুলি একটি সরল রেখার অংশ তৈরি করে কিনা।

সুতরাং, যদি ইনপুট স্থানাঙ্কের মত হয় =[(5, 5),(8, 8),(9, 9)], তাহলে আউটপুট হবে True, কারণ এই বিন্দুগুলি 1 ঢালের সাথে একটি লাইন সেগমেন্ট তৈরি করছে।

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

  • (x0, y0) :=স্থানাঙ্ক[0]
  • (x1, y1) :=স্থানাঙ্ক[1]
  • আমি পরিসীমা 2 থেকে স্থানাঙ্ক তালিকার আকার - 1 এর জন্য, কর
    • (x, y) :=স্থানাঙ্ক[i]
    • যদি (x0 - x1) * (y1 - y) (x1 - x) * (y0 - y1) এর মতো না হয়, তাহলে
      • মিথ্যে ফেরত দিন
  • সত্য ফেরান

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

উদাহরণ

class Solution:
   def solve(self, coordinates):
      (x0, y0), (x1, y1) = coordinates[0], coordinates[1]
      for i in range(2, len(coordinates)):
         x, y = coordinates[i]
         if (x0 - x1) * (y1 - y) != (x1 - x) * (y0 - y1):
            return False
      return True
ob = Solution()
coordinates = [[5, 5],[8, 8],[9, 9]]
print(ob.solve(coordinates))

ইনপুট

[[5, 5],[8, 8],[9, 9]]

আউটপুট

True

  1. পয়েন্ট চেক করার প্রোগ্রাম অবতল বহুভুজ গঠন করছে নাকি পাইথনে নয়

  2. পয়েন্ট চেক করার প্রোগ্রামটি পাইথনে উত্তল হুল তৈরি করছে বা না

  3. প্রদত্ত ব্লকের তালিকা x =y লাইনের উপরে প্রতিসম নাকি পাইথনে নয় তা পরীক্ষা করার জন্য প্রোগ্রাম

  4. প্রদত্ত গ্রাফটি পাইথনে দ্বিপক্ষীয় কি না তা পরীক্ষা করার জন্য প্রোগ্রাম