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

Python में बम डिफ्यूज करने के लिए कोड डिक्रिप्ट करने का प्रोग्राम

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

  • यदि k > 0 तो i-वीं संख्या को अगली k संख्याओं के योग से बदलें।
  • यदि k < 0 तो i-वीं संख्या को पिछली k संख्याओं के योग से बदलें।
  • यदि k = 0 तो i-वीं संख्या को 0 से बदलें।

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

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

हल करने के चरण

  • decode := एक नई सूची
  • i को 0 से code के आकार - 1 तक के लिए:
    • यदि k > 0:
      • sum := 0, j := i+1, m := k
      • जब m नॉन-जीरो: sum += code[j % code की लंबाई], m := m - 1, j := j + 1
      • decode के अंत में sum डालें
    • अन्यथा जब k == 0: decode के अंत में 0 डालें
    • अन्यथा:
      • sum := 0, j := i-1, m := k
      • जब m नॉन-जीरो: sum += code[j % code की लंबाई], m := m + 1, j := j - 1
      • decode के अंत में sum डालें
  • decode वापस करें

उदाहरण (Python)

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. Python प्रोग्राम में ऐरे का योग खोजना Python प्रोग्राम में ऐरे का योग खोजना

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

  1. पायथन प्रोग्राम: मैट्रिक्स का ट्रांसपोज़ ढूंढें पायथन प्रोग्राम: मैट्रिक्स का ट्रांसपोज़ ढूंढें

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

  1. पायथन प्रोग्राम: ऐरे का योग ढूंढें पायथन प्रोग्राम: ऐरे का योग ढूंढें

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