কম্পিউটার টিউটোরিয়াল

পাইথনে পলিগনের পরিসীমা বের করার প্রোগ্রাম

ধরুন আমাদের একটি অর্ডার্ড পয়েন্টের লিস্ট আছে যা ২D প্লেনে একটি সিম্পল পলিগনের এন্ডপয়েন্ট রিপ্রেজেন্ট করে। আমাদের এই পলিগনের পরিসীমা বের করতে হবে।

উদাহরণস্বরূপ, যদি ইনপুট points = [(0, 0), (0,5), (3, 5), (3,0)] হয়, তবে আউটপুট হবে 16 কারণ দুটি সাইডের দৈর্ঘ্য ৩ এবং দুটি সাইডের দৈর্ঘ্য ৫, তাই 2*5 + 2*3 = 16।

পাইথনে পলিগনের পরিসীমা বের করার প্রোগ্রাম

সমাধানের ধাপসমূহ

  • getInfo() ফাংশন ডিফাইন করুন যা x1, y1, x2, y2 নেবে, রিটার্ন করবে sqrt((x1-x2)^2 + (y1-y2)^2) যা ইউক্লিডিয়ান ডিস্ট্যান্স
  • মেইন মেথড থেকে:
    • N := size of points
    • (firstx, firsty) := points[0]
    • (prevx, prevy) := (firstx, firsty)
    • res := 0
    • for i in range 1 to N-1:
      • (nextx, nexty) := points[i]
      • res := res + getInfo(prevx, prevy, nextx, nexty)
      • prevx := nextx, prevy := nexty
    • res := res + getInfo(prevx, prevy, firstx, firsty)
    • res রিটার্ন করুন

উদাহরণ

নিচের ইমপ্লিমেন্টেশনটি দেখুন ভালো বুঝার জন্য:

from math import sqrt

def getInfo(x1, y1, x2, y2):
    return sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2))

def solve(points):
    N = len(points)
    firstx, firsty = points[0]
    prevx, prevy = firstx, firsty
    res = 0
    for i in range(1, N):
        nextx, nexty = points[i]
        res = res + getInfo(prevx, prevy, nextx, nexty)
        prevx = nextx
        prevy = nexty
    res = res + getInfo(prevx, prevy, firstx, firsty)
    return res

points = [(0, 0), (0,5), (3, 5), (3,0)]
print(solve(points))

ইনপুট

[(0, 0), (0,5), (3, 5), (3,0)]

আউটপুট

16.0
  1. পাইথনে বড় সংখ্যার ফ্যাক্টোরিয়াল বের করার প্রোগ্রাম

  2. পাইথনে পলিগনের ক্ষেত্রফল বের করার প্রোগ্রাম

  3. পাইথনে সিলিন্ডারের পরিধি বের করার প্রোগ্রাম

  4. পাইথন প্রোগ্রাম: সিলিন্ডারের পেরিমিটার বের করা