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

k का अधिकतम मान ज्ञात करने का कार्यक्रम जिसके लिए हम पायथन में सुरक्षित दूरी बनाए रख सकते हैं

मान लीजिए कि हमारे पास एक बाइनरी मैट्रिक्स है। यहां 0 एक खाली सेल को दर्शाता है, और 1 एक व्यक्ति के साथ एक सेल को दर्शाता है। दो कोशिकाओं के बीच की दूरी x निर्देशांक में अंतर और y निर्देशांक में अंतर के बीच का अधिकतम मान है। अब मैट्रिक्स को एक कारक k के साथ सुरक्षित माना जाता है यदि कोई खाली वर्ग है जैसे कि मैट्रिक्स में प्रत्येक व्यक्ति के लिए सेल से दूरी, और मैट्रिक्स का प्रत्येक पक्ष k के बराबर या अधिक हो। हमें कारक k का अधिकतम मान ज्ञात करना होगा जिसके लिए हम सुरक्षित रह सकते हैं।

तो, अगर इनपुट पसंद है

0 0 0 0 0
0 1 0 1 0
0 1 1 1 0
0 1 1 1 0
0 0 0 0 0

तो आउटपुट 1 होगा, क्योंकि मध्य सेल में सेल से ग्रिड में प्रत्येक व्यक्ति की दूरी कम से कम 1 है।

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

  • N:=A का आकार

  • एम:=ए का आकार[0]

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

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

      • ए[i, j] :=A[i, j] XOR 1

  • उत्तर :=0

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

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

      • अगर i और j गैर-शून्य हैं और A[i, j] 1 है, तो

        • A[i, j] :=1 + न्यूनतम A[i-1, j], A[i, j-1] और A[i-1, j-1]

        • ans =अधिकतम A[i, j] और ans

  • वापसी (Ans + 1) / 2

उदाहरण

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

class Solution:
def solve(self, A):
   N = len(A)
   M = len(A[0])
   for i in range(N):
      for j in range(M):
         A[i][j] ^= 1
   ans = 0
   for i in range(N):
      for j in range(M):
         if i and j and A[i][j]:
            A[i][j] = 1 + min(A[i - 1][j], A[i][j - 1], A[i - 1][j - 1])
            ans = max(A[i][j], ans)
   return (ans + 1) // 2
ob = Solution()
matrix = [
   [0, 0, 0, 0, 0],
   [0, 1, 1, 1, 0],
   [0, 1, 0, 1, 0],
   [0, 1, 1, 1, 0],
   [0, 0, 0, 0, 0],
]
print(ob.solve(matrix))

इनपुट

[
   [0, 0, 0, 0, 0],
   [0, 1, 1, 1, 0],
   [0, 1, 0, 1, 0],
   [0, 1, 1, 1, 0],
   [0, 0, 0, 0, 0],
]

आउटपुट

1

  1. अजगर में k संचालन के बाद न्यूनतम संभव अधिकतम मूल्य खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है और दूसरा मान k है। आइए अब हम एक ऐसी संक्रिया पर विचार करें जिसमें हम सूची के किसी भी अवयव से 1 घटा सकते हैं। हम इस ऑपरेशन को k बार कर सकते हैं। k ऐसे संक्रियाओं के बाद हमें सूची में न्यूनतम संभव अधिकतम मान ज्ञात करना होगा। इसलिए, यद

  1. पायथन में कई प्रतियाँ लेकर हम अधिकतम मूल्य खोजने के लिए नैपसेक समस्या प्राप्त कर सकते हैं

    मान लीजिए कि हमारे पास समान लंबाई की दो सूचियां हैं, उन्हें वज़न और मान कहा जाता है, और हमारे पास एक और मूल्य क्षमता भी है। यहां वजन [i] और मान [i] ith आइटम के वजन और मूल्य का प्रतिनिधित्व करते हैं। यदि हम अधिक से अधिक क्षमता भार ले सकते हैं, और यह कि हम प्रत्येक वस्तु के लिए कितनी भी प्रतियां ले सक

  1. शब्दकोश में दूसरा अधिकतम मूल्य खोजने के लिए पायथन कार्यक्रम

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