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

Python-এ একটি পয়েন্ট অন্য পয়েন্টে রূপান্তর করা যায় কিনা চেক করার প্রোগ্রাম


মনে করুন আমাদের কাছে একটি শুরুর পয়েন্ট (sx, sy), এবং টার্গেট পয়েন্ট (tx, ty) আছে। আমাদের চেক করতে হবে কি শুরুর পয়েন্ট থেকে শেষ পয়েন্টে যাওয়ার কোনো সিকোয়েন্স আছে কিনা। এখানে মুভ হল একটি পয়েন্ট (x, y) নেয়া এবং সেটিকে বা (x, x+y) বা (x+y, y)-এ রূপান্তর করা।

সুতরাং, যদি ইনপুট হয় (sx, sy) = (1,1) এবং (tx, ty) = (4,5), তবে আউটপুট হবে True, কারণ মুভ (1,1) থেকে (2,1), তারপর (3,1), তারপর (4,1), তারপর (4,5)।

এটি সমাধান করতে আমরা নিচের ধাপগুলো অনুসরণ করব −

  • একটি solve() ফাংশন ডিফাইন করুন। এটি sx, sy, tx, ty নেবে

  • যদি sx > tx বা sy > ty হয়, তবে

    • False রিটার্ন করুন

  • যদি sx == tx হয়, তবে

    • (ty-sy) mod sx == 0 কিনা রিটার্ন করুন

  • যদি sy == ty হয়, তবে

    • (tx - sx) mod sy == 0 কিনা রিটার্ন করুন

  • solve(sx, sy, tx-ty, ty) বা solve(sx, sy, tx, ty-tx) রিটার্ন করুন

উদাহরণ

বेहतर বোঝার জন্য নিচের ইমপ্লিমেন্টেশন দেখুন

def solve(sx, sy, tx, ty):
    if sx > tx or sy > ty:
        return False
    if sx == tx:
        return (ty-sy)%sx == 0
    if sy == ty:
        return (tx - sx)%sy == 0
    return solve(sx, sy, tx-ty, ty) or solve(sx, sy, tx, ty-tx)

(sx, sy) = (1,1)
(tx, ty) = (4,5)
print(solve(sx, sy, tx, ty))

ইনপুট

(1,1), (4,5)

আউটপুট

True

  1. পাইথনে একটি ট্রি অন্য ট্রির সাবট্রি কিনা যাচাই করা

  2. পাইথনে গ্রাফ বাইপার্টাইট কিনা যাচাই করার প্রোগ্রাম

  3. পাইথনে BST-এ একটি মান আছে কিনা যাচাই করার প্রোগ্রাম

  4. পাইথনে লিস্ট খালি কিনা যাচাই করার প্রোগ্রাম