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

पायथन में अनंत अनुक्रम से जनरेटेड वेक्टर्स के स्केलर उत्पाद ढूंढने का प्रोग्राम

मान लीजिए हमें तीन इंटीजर नंबर c, m, और n दिए गए हैं। हमें एक अनंत अनुक्रम जनरेट करना है, जहां पहला मान 0 है, दूसरा मान c है, और तीसरे मान से आगे यह ki = (ki-2 + ki-1) mod m के बराबर है। हमें अनुक्रम में आइटम k2n+1 तक सभी मान जनरेट करने हैं। अब अनुक्रम के मानों से; हम अनुक्रम में दो क्रमागत मानों को एक द्वि-आयामी वेक्टर के x और y निर्देशांक के रूप में लेते हैं और n संख्या के वेक्टर जनरेट करते हैं। ध्यान दें, हम अनुक्रम में तीसरे मान से मानों का उपयोग करते हैं। एक और सेट S है जहां प्रत्येक मान वेक्टर i और वेक्टर j का स्केलर उत्पाद है जहां 1 <= i, j <= n और i != j। हमें सेट S में विभिन्न अवशेषों की संख्या ढूंढनी है। यदि मान बहुत बड़ा है, तो इसे m से मोड्यूलो करें।

इसलिए, यदि इनपुट 5, 6, 4 है, तो आउटपुट 3 होगा।

समाधान दृष्टिकोण

  • यदि n == 1 है, तो 0 लौटाएं
  • अन्यथा, आकार 2*n+2 का temp_arr बनाएं
  • फिबोनाची-जैसे अनुक्रम को m से मोड्यूलो करके जनरेट करें
  • क्रमागत वेक्टर जोड़े के स्केलर उत्पादों की गणना करें
  • डुप्लिकेट हटाएं और अद्वितीय अवशेषों की संख्या लौटाएं

उदाहरण कार्यान्वयन

def solve(c, m, n):
    if n == 1:
        return 0
    else:
        temp_arr = [0 for i in range(2 * n + 2)]
        temp_arr[0] = 0
        temp_arr[1] = c
        arr2 = []
        for i in range(2, 2 * n + 2):
            temp_arr[i] = (temp_arr[i - 1] + temp_arr[i - 2]) % m
        for i in range(2, 2 * n - 2, 2):
            temp = (temp_arr[i] * temp_arr[i + 2] + temp_arr[i + 1] * temp_arr[i + 3]) % m
            arr2.append(temp)
            temp = (temp_arr[i] * temp_arr[i + 4] + temp_arr[i + 1] * temp_arr[i + 5]) % m
            arr2.append(temp)
        temp = (temp_arr[2 * n - 2] * temp_arr[2 * n] + temp_arr[2 * n - 1] * temp_arr[2 * n + 1]) % m
        arr2.append(temp)
        arr2 = set(arr2)
        return len(arr2)

print(solve(5, 6, 4))

इनपुट

5, 6, 4

आउटपुट

3
  1. पायथन में सब-ट्री के नोड मानों के योग से न्यूनतम मान खोजने का प्रोग्राम पायथन में सब-ट्री के नोड मानों के योग से न्यूनतम मान खोजने का प्रोग्राम

    मान लीजिए, हमारे पास एक ट्री है जिसके सभी नोड्स 1 से n तक संख्याबद्ध हैं। प्रत्येक नोड में एक पूर्णांक मान होता है। अब यदि हम ट्री से एक किनारा हटाते हैं, तो दोनों सब-ट्री के नोड मानों के योग में अंतर न्यूनतम होना चाहिए। हमें ऐसे सब-ट्री के बीच न्यूनतम अंतर पता लगाना और लौटाना है। ट्री को हमें किनार

  1. पायथन में जांचें कि ग्राफ सभी द्वारा पारगम्य है या नहीं पायथन में जांचें कि ग्राफ सभी द्वारा पारगम्य है या नहीं

    मान लीजिए, हमें एक ग्राफ दिया गया है जिसमें n शीर्ष हैं जो 0 से n-1 तक क्रमांकित हैं। ग्राफ अनिर्देशित है और प्रत्येक किनारे का एक भार है। ग्राफ में तीन प्रकार के भार हो सकते हैं और प्रत्येक भार एक विशेष कार्य को दर्शाता है। दो लोग हैं जो ग्राफ को पार कर सकते हैं, अर्थात् जैक और केसी। जैक ग्राफ को

  1. Python में फेरिस व्हील से अधिकतम लाभ के लिए न्यूनतम रोटेशन खोजने का प्रोग्राम Python में फेरिस व्हील से अधिकतम लाभ के लिए न्यूनतम रोटेशन खोजने का प्रोग्राम

    मान लीजिए चार केबिन वाला एक फेरिस व्हील है और प्रत्येक केबिन में चार यात्री बैठ सकते हैं। पहिया वामावर्त घूमता है, और प्रत्येक रोटेशन के लिए, इसकी लागत run राशि होती है। अब हमारे पास एक ऐरे cust है जिसमें n आइटम हैं और प्रत्येक आइटम i iवीं रोटेशन से पहले फेरिस व्हील में बैठने की प्रतीक्षा कर रहे लो