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

पायथन में ग्रिड बॉक्स में गेंद कहां लैंड करती है, यह जानने का कार्यक्रम

मान लीजिए, हमें एक mxn ग्रिड बॉक्स दिया गया है, जहां प्रत्येक सेल में एक बोर्ड होता है जो या तो ऊपर-दाएं से नीचे-बाएं, या ऊपर-बाएं से नीचे-दाएं तक स्थित होता है। अब ऊपर की कोशिकाओं से, एक गेंद बॉक्स में डाल दी जाती है और हमें यह जांचना होता है कि क्या वह गेंद बॉक्स के नीचे तक पहुँचती है। ग्रिड को मैट्रिक्स के रूप में दिया गया है। यदि एक सेल को 1 चिह्नित किया गया है तो विकर्ण बोर्ड ऊपर-बाएं से नीचे-दाएं तक फैला हुआ है; यदि इसे -1 चिह्नित किया गया है तो यह ऊपर-दाएं से नीचे-बाएं कोने तक फैला हुआ है। यदि n गेंदों को बॉक्स में डाला जाता है, तो हमें पता लगाना होगा कि कितनी गेंदें नीचे तक पहुँचती हैं।

पायथन में ग्रिड बॉक्स में गेंद कहां लैंड करती है, यह जानने का कार्यक्रम

3x3 ग्रिड बॉक्स का उदाहरण।

तो, अगर इनपुट चटाई की तरह है =

1 1 1 -1
-1 1 1 -1
1 -1 -1 1
1 -1 1 -1

तो आउटपुट [-1, -1, -1, -1]

. होगा

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

  • i :=चटाई में पंक्तियों की संख्या

  • j :=चटाई में स्तंभों की संख्या

  • रेस :=एक नई सूची

  • वैल के लिए 0 से j की सीमा में, करें

    • एक्स:=वैल

    • r के लिए 0 से i की सीमा में, करें

      • एस:=चटाई [आर, एक्स]

      • एक्स:=एक्स + मैट [आर, एक्स]

      • यदि x <0 या x>=j या mat[r, x] s के समान नहीं है, तो

        • रेस के अंत में एलीमेंट -1 जोड़ें

        • लूप से बाहर आएं

    • अन्यथा,

      • रेस के अंत में x जोड़ें

  • रिटर्न रेस

उदाहरण

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

def solve(mat):
   i, j = map(len, (mat, mat[0]))
   res = []
   for val in range(j):
      x = val
      for r in range(i):
         s = mat[r][x]
         x += mat[r][x]
         if x < 0 or x >= j or mat[r][x] != s:
            res += [-1]
            break
      else:
         res += [x]
   return res

print(solve([[1, 1, 1, -1], [-1, 1, 1, -1], [1, -1, -1, 1],[1, -1, 1, -1] ]))

इनपुट

[[1, 1, 1, -1], [-1, 1, 1, -1], [1, -1, -1, 1],[1, -1, 1, -1] ]

आउटपुट

[-1, -1, -1, -1]

  1. एक सरणी में सबसे बड़ा तत्व खोजने के लिए पायथन प्रोग्राम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक सरणी दी गई है, हमें सरणी के सबसे बड़े तत्व की गणना करने की आवश्यकता है। यहां हम ब्रूटफोर्स दृष्टिकोण का उपयोग करते हैं जिसमें हम पूरे लूप को पार करके सबसे बड़े तत्व की गणना करते हैं और तत्व प्राप्त करते हैं।

  1. एक मैट्रिक्स के स्थानान्तरण को खोजने के लिए पायथन कार्यक्रम

    इस लेख में, हम दिए गए समस्या कथन को हल करने के लिए समाधान और दृष्टिकोण के बारे में जानेंगे। समस्या कथन एक मैट्रिक्स को देखते हुए, हमें उसी मैट्रिक्स में ट्रांसपोज़ को स्टोर करना होगा और उसे प्रदर्शित करना होगा। पंक्तियों को कॉलम और कॉलम को पंक्तियों में बदलकर मैट्रिक्स का स्थानांतरण प्राप्त किया ज

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

    इस लेख में, हम दिए गए समस्या कथन को हल करने के लिए समाधान और दृष्टिकोण के बारे में जानेंगे। समस्या कथन एक इनपुट के रूप में एक सरणी को देखते हुए, हमें दिए गए सरणी के योग की गणना करने की आवश्यकता है। यहां हम ब्रूट-फोर्स अप्रोच का अनुसरण कर सकते हैं, यानी एक सूची को पार करना और प्रत्येक तत्व को एक खा