Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

निकटतम बिंदु खोजने के लिए कार्यक्रम जिसमें समान x या y है, पायथन का उपयोग करके समन्वय करता है

मान लीजिए कि हमारे पास pts नामक सरणी में दिए गए बिंदुओं का एक सेट है। हमारे पास एक और बिंदु (x, y) भी है जो हमारा वर्तमान स्थान है। हम एक मान्य बिंदु को एक ऐसे बिंदु के रूप में परिभाषित कर रहे हैं, जो हमारे वर्तमान बिंदु के समान x-निर्देशांक या समान y-निर्देशांक साझा करता है। हमें अपने वर्तमान स्थान (x, y) से सबसे छोटी मैनहट्टन दूरी के साथ मान्य बिंदु का सूचकांक वापस करना होगा। यदि एक से अधिक अंक हैं, तो सबसे छोटी अनुक्रमणिका के साथ मान्य बिंदु लौटाएं। (नोट:दो बिंदुओं (a, b) और (p, q) के बीच मैनहट्टन की दूरी है |a - p| + |b - q|.

इसलिए, यदि इनपुट pts =[(1,2),(3,1),(3,4),(2,3),(4,4)] pt =(2,4) की तरह है, तो आउटपुट 2 होगा क्योंकि दो निकटतम बिंदु (3,4) और (2,3) हैं, लेकिन (3,4) का सूचकांक छोटा है।

निकटतम बिंदु खोजने के लिए कार्यक्रम जिसमें समान x या y है, पायथन का उपयोग करके समन्वय करता है

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • एक्स, वाई:=पीटी

  • आईडीएक्स:=-1

  • सबसे छोटा :=अनंत

  • पीटी में प्रत्येक पी के लिए, करें

    • यदि p[0], x के समान है या p[1], y के समान है, तो

      • जिला :=|x - p[0]| + |y - p[1]|

      • अगर जिला <सबसे छोटा है, तो

        • idx :=p का सूचकांक pts में

        • सबसे छोटा:=जिला

      • अन्यथा जब जिला सबसे छोटा हो, तब

        • यदि p का सूचकांक pts

          • idx :=p का सूचकांक pts में

          • सबसे छोटा:=जिला

  • वापसी आईडीएक्स

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

उदाहरण

def solve(pts, pt):
   x, y = pt
   idx = -1
   smallest = float("inf")
   for p in pts:
      if p[0] == x or p[1] == y:
         dist = abs(x - p[0]) + abs(y - p[1])
         if dist < smallest:
            idx = pts.index(p)
            smallest = dist
         elif dist == smallest:
            if pts.index(p) < idx:
               idx = pts.index(p)
               smallest = dist
   return idx
pts = [(1,2),(3,1),(3,4),(2,3),(4,4)]
pt = (2,4)
print(solve(pts, pt))

इनपुट

[(1,2),(3,1),(3,4),(2,3),(4,4)], (2,4)

आउटपुट

2

  1. पायथन का उपयोग करके बाइनरी ट्री में दाईं ओर नोड का पता लगाने का कार्यक्रम

    मान लीजिए, हमें एक बाइनरी ट्री प्रदान किया जाता है। हमें एक नोड (u नाम दिया गया) के लिए एक पॉइंटर भी दिया जाता है और हमें दिए गए नोड के ठीक दाईं ओर स्थित नोड को खोजना होता है। दिए गए नोड के दाईं ओर स्थित नोड समान स्तर पर रहना चाहिए और दिया गया नोड या तो लीफ नोड या आंतरिक नोड हो सकता है। तो, अगर इनप

  1. पायथन का उपयोग करके एक सरणी गेम के विजेता को खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एआर नामक एक सरणी है, इसमें अद्वितीय तत्व हैं और हमारे पास एक और मूल्य भी है। अब एक खेल पर विचार करें जहां हम सरणी के पहले दो तत्वों को लेते हैं। प्रत्येक मोड़ में, हम arr[0] की arr[1] से तुलना करते हैं, और बड़ा मान जीतता है और स्थिति 0 पर बना रहता है और छोटा मान सरणी के अंत मे

  1. पायथन का उपयोग करके समान लेबल वाले उप-वृक्ष में नोड्स की संख्या खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास n नोड्स वाला एक रूटेड सामान्य ट्री है, जिसके नोड्स 0 से n-1 तक गिने जाते हैं। प्रत्येक नोड में लोअरकेस अंग्रेजी अक्षर वाला एक लेबल होता है। लेबल्स को लेबल एरे में इनपुट के रूप में दिया जाता है, जहां लेबल्स [i] में ith नोड के लिए लेबल होता है। पेड़ को किनारे की सूची द्वारा दर्श