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

उस बॉक्स की स्थिति का पता लगाएं जो दिए गए गेंद को पायथन में रखता है


मान लीजिए कि हमारे पास दो सरणियाँ A और B हैं। A का आकार पंक्तियों की संख्या है और A[i] ith पंक्ति में बक्सों की संख्या है। और बी गेंदों की सरणी है जहां बी [i] गेंद पर एक संख्या को दर्शाता है। यह देखते हुए कि गेंद i (मान B[i]) को एक बॉक्स में रखा जाएगा, जिसकी शुरुआत से स्थिति B[i] है। हमें प्रत्येक B[i] के संगत बक्सों की पंक्ति और स्तंभ ज्ञात करना है।

इसलिए, यदि इनपुट ए =[3, 4, 5, 6], बी =[1, 3, 5, 2] जैसा है, तो आउटपुट [(1, 1), (1, 3), ( 2, 2, (1, 2)] के रूप में बी [0] =1, फिर बॉक्स की स्थिति पहली पंक्ति, 1 कॉलम बी [1] =3 होगी, फिर बॉक्स की स्थिति पहली पंक्ति, तीसरी कॉलम, बी होगी। [2] =5, फिर बॉक्स की स्थिति दूसरी पंक्ति, दूसरा कॉलम, बी [3] =2 होगी, फिर बॉक्स की स्थिति पहली पंक्ति, दूसरी कॉलम होगी

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

  • len_a :=A का आकार

  • len_b :=B का आकार

  • मेरे लिए 1 से len_a की श्रेणी में, करें

    • ए[i] :=ए[i] + ए[i - 1]

  • मेरे लिए 0 से len_b की सीमा में, ऐसा करें

    • पंक्ति :=एक अनुक्रमणिका जहाँ हम A क्रमबद्ध बनाए रखने के लिए B[i] सम्मिलित कर सकते हैं

    • अगर पंक्ति>=1, तो

      • box_num :=B[i] - A[row - 1]

    • अन्यथा,

      • box_num :=B[i]

    • एक जोड़ी प्रदर्शित करें (पंक्ति + 1, box_num)

उदाहरण

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

import bisect
def get_position(A, B):
   len_a = len(A)
   len_b = len(B)
   for i in range(1, len_a):
      A[i] += A[i - 1]
   for i in range(len_b):
      row = bisect.bisect_left(A, B[i])
      if row >= 1:
         box_num = B[i] - A[row - 1]
      else:
         box_num = B[i]
      print ((row + 1, box_num))
A = [3, 4, 5, 6]
B = [1, 3, 5, 2]
get_position(A, B)

इनपुट

[3, 4, 5, 6], [1, 3, 5, 2]

आउटपुट

(1, 1)
(1, 3)
(2, 2)
(1, 2)

  1. पायथन में दिए गए समीकरण के मूल्य का पता लगाने का कार्यक्रम

    मान लीजिए हमें पाँच पूर्णांक संख्याएँ a, b, c, d, n दी गई हैं। हमें ((ab)(cd)) mod n ज्ञात करना है। आउटपुट मान एक पूर्णांक संख्या है। इसलिए, यदि इनपुट a =2, b =3, c =2, d =4, n =10 जैसा है, तो आउटपुट 6 होगा। 2^3 = 8 2^4 = 16 8^16 = 281474976710656 281474976710656 mod 10 = 6 इसे हल करने के लिए, हम

  1. यह पता लगाने का कार्यक्रम है कि पायथन में दिए गए बिंदुओं के माध्यम से वर्तमान स्थिति से एक बिंदु तक पहुंचा जा सकता है

    मान लीजिए कि 2D स्पेस में एक पॉइंटर एक बिंदु p पर स्थित होता है जिसमें निर्देशांक (px, py) होते हैं। अब पॉइंटर को निर्देशांक (qx, qy) वाले दूसरे बिंदु q पर जाना होगा। सूचक केवल स्वतंत्र रूप से नहीं चल सकता है, यदि बीच में कुछ बिंदु स्थित हैं तो यह q की यात्रा कर सकता है। हमें पथ बिंदुओं की एक सरणी द

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

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