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

पायथन में बम को निष्क्रिय करने के लिए कोड को डिक्रिप्ट करने का कार्यक्रम

मान लीजिए कि एक बम है जिसे आप निष्क्रिय करने जा रहे हैं, और आपका समय समाप्त हो रहा है! आपके पास n की लंबाई का एक गोलाकार सरणी कोड है और एक कुंजी k है। अब कोड को डिक्रिप्ट करने के लिए, आपको हर नंबर को बदलना होगा। सभी नंबरों को एक साथ बदल दिया जाता है। कुछ नियम हैं -

  • यदि k> 0 तो ith संख्या को अगले k संख्याओं के योग से बदल दें।

  • यदि k <0 है तो ith संख्या को पिछली k संख्याओं के योग से बदलें।

  • यदि k =0 है तो ith संख्या को 0 से बदलें।

यहां कोड गोलाकार है, इसलिए कोड का अगला तत्व [एन -1] कोड [0] है, और कोड का पिछला तत्व [0] कोड [एन -1] है। अंत में हमें डिक्रिप्टेड कोड वापस करना होगा।

इसलिए, यदि इनपुट कोड =[8,2,3,5], k =3 जैसा है, तो आउटपुट [10, 16, 15, 13] होगा, क्योंकि, प्रत्येक कुंजी के लिए हम अगले तीन तत्वों के योग के साथ प्रतिस्थापित करते हैं , तो कोड [0] 10 होगा, कोड [1] 16 होगा, कोड [2] 15 होगा और कोड [3] 13 होगा।

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

  • डिकोड:=एक नई सूची

  • मैं के लिए 0 से लेकर कोड के आकार -1 तक की सीमा में हूं, करें

    • अगर कश्मीर> 0, तो

      • योग :=0

      • जे:=मैं+1

      • मी:=के

      • जबकि एम गैर-शून्य है, करें

        • योग:=योग + कोड [j कोड की लंबाई मोड]

        • मी :=मी - 1

        • जे:=जे + 1

      • डिकोड के अंत में योग डालें

    • अन्यथा जब k, 0 के समान हो, तब

      • डिकोड के अंत में 0 डालें

    • अन्यथा,

      • योग :=0

      • जे:=i-1

      • मी:=के

      • जबकि एम गैर-शून्य है, करें

        • योग:=योग + कोड [j कोड की लंबाई मोड]

        • एम:=एम + 1

        • जे:=जे - 1

      • डिकोड के अंत में योग डालें

  • वापसी डिकोड

उदाहरण (पायथन)

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

def solve(code, k):
   decode = []
   for i in range(len(code)):
      if k > 0:
         sum = 0
         j = i+1
         m = k
         while(m):
            sum+=code[j%len(code)]
            m-=1
            j+=1
         decode.append(sum)

      elif k == 0:
         decode.append(0)

      else:
         sum = 0
         j = i-1
         m = k
         while(m):
            sum+=code[j%len(code)]
            m+=1
            j-=1
         decode.append(sum)

   return decode

code = [8,2,3,5]
k = 3
print(solve(code, k))

इनपुट

[8,2,3,5], 3

आउटपुट

[10, 16, 15, 13]

  1. पायथन प्रोग्राम में सरणी का योग ज्ञात करें

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

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

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

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

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