Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> 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) % sx == 0 लौटाएं

  • यदि sy, ty के बराबर है, तो (tx-sx) % 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. Python में एक ट्री दूसरे का सबट्री है या नहीं, इसकी जांच करने का प्रोग्राम Python में एक ट्री दूसरे का सबट्री है या नहीं, इसकी जांच करने का प्रोग्राम

    मान लीजिए हमारे पास दो बाइनरी ट्री हैं। हमें यह जांचना है कि दूसरा ट्री पहले का सबट्री है या नहीं। तो, यदि इनपुट इस तरह है तो आउटपुट True होगा। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे: solve() फ़ंक्शन परिभाषित करें। यह root, target लेगा यदि root null है और target भी null है, तो True लौटा

  1. पायथन में जांचें कि दिया गया ग्राफ द्विभाजित है या नहीं पायथन में जांचें कि दिया गया ग्राफ द्विभाजित है या नहीं

    मान लीजिए हमारे पास एक अविकल्पित ग्राफ है, हमें जांचना है कि ग्राफ द्विभाजित है या नहीं। जैसा कि हम जानते हैं, एक ग्राफ द्विभाजित होता है जब हम ग्राफ के नोड्स को दो सेट A और B में विभाजित कर सकते हैं ताकि ग्राफ में प्रत्येक किनारा {u,v} का एक नोड u A में और दूसरा नोड v B में हो। उदाहरण के लिए, यदि

  1. पायथन में जांचें कि क्या कोई मान BST में मौजूद है या नहीं पायथन में जांचें कि क्या कोई मान BST में मौजूद है या नहीं

    मान लीजिए हमारे पास एक बाइनरी सर्च ट्री और एक अन्य इनपुट val है, हमें जांचना है कि क्या val ट्री में मौजूद है या नहीं। उदाहरण के लिए, यदि इनपुट है: val = 7, तो आउटपुट होगा True, क्योंकि 7 ट्री में मौजूद है। हल करने के चरण एक फ़ंक्शन solve() परिभाषित करें। यह root, val लेगा। यदि root नल है, तो Fal