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

পাইথনে দুটি রেক্ট্যাঙ্গেল দ্বারা আচ্ছাদিত মোট এলিয়া বের করা

২D প্লেনে দুটি রেক্টিলিনিয়ার রেক্ট্যাঙ্গেল দ্বারা আচ্ছাদিত মোট এলিয়া বের করতে হবে। প্রতিটি রেক্ট্যাঙ্গেল তার বটম-লেফ্ট এবং টপ-রাইট কনার কোঅর্ডিনেট দিয়ে ডিফাইন করা হয়।

সমাধান পদ্ধতি

  1. width_1 := |C-A|, height_1 := |D-B| (প্রথম রেক্ট্যাঙ্গেল)
  2. width_2 := |G-E|, height_2 := |H-F| (দ্বিতীয় রেক্ট্যাঙ্গেল)
  3. area := width_1*height_1 + width_2*height_2
  4. যদি রেক্ট্যাঙ্গেলগুলো ওভারল্যাপ না করে (G<A বা E>C বা F>D বা H<B), তবে area রিটার্ন করুন।
  5. অন্যথায় ওভারল্যাপিং এলিয়া বের করুন:
    • p := max(A, E), q := max(B, F)
    • r := min(C, G), s := min(D, H)
    • width_3 := |r-p|, height_3 := |s-q|
    • area - (width_3 * height_3) রিটার্ন করুন।

পাইথন ইমপ্লিমেন্টেশন

def solve(A, B, C, D, E, F, G, H):
    width_1 = abs(C - A)
    height_1 = abs(D - B)
    width_2 = abs(G - E)
    height_2 = abs(H - F)
    area = width_1 * height_1 + width_2 * height_2
    if (G < A) or (E > C) or (F > D) or (H < B):
        return area
    else:
        p = max(A, E)
        q = max(B, F)
        r = min(C, G)
        s = min(D, H)
        width_3 = abs(r - p)
        height_3 = abs(s - q)
        return area - (width_3 * height_3)

# টেস্ট
A, B, C, D = -3, 0, 3, 4
E, F, G, H = 0, -1, 9, 2
print(solve(A, B, C, D, E, F, G, H))  # আউটপুট: 45

ইনপুট

-3, 0, 3, 4, 0, -1, 9, 2

আউটপুট

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

  2. দুই স্ট্রিং থেকে অনকমন ওয়ার্ড বের করার পাইথন প্রোগ্রাম

  3. পাইথনে কোনো সংখ্যা ২-এর ঘাত কিনা চেক করা

  4. পাইথনে দুটি লিস্টের ইন্টারসেকশন (Intersection) বের করা