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 होगा

उत्पन्न अनुक्रम है:[0, 5, 5, 4, 3, 1, 4, 5, 3, 2]।

वैक्टर हैं:(5, 4), (3, 1), (4, 5), (3, 2)।

सदिशों के अदिश गुणनफल से, सेट S में केवल तीन अवशेष मान mod 6 होते हैं।

इस प्रकार परिणाम 3 मॉड 6 =3 है।

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

  • यदि n 1 के समान है, तो
    • वापसी 0
  • अन्यथा,
    • temp_arr:=आकार 2*n+2 की एक नई सूची 0s के साथ आरंभ की गई
    • temp_arr[0] :=0
    • temp_arr[1] :=c
    • arr2 :=एक नई सूची
    • 2 से 2 * n+2 की सीमा में, के लिए
      • temp_arr[i] :=(temp_arr[i - 1] + temp_arr[i - 2]) mod m
    • 2 से 2 * n-2 की सीमा में i के लिए, 2 की वृद्धि करें
      • अस्थायी:=(temp_arr[i] * temp_arr[i + 2] + temp_arr[i + 1] * temp_arr[i + 3]) mod m
      • arr2 के अंत में अस्थायी डालें
      • अस्थायी:=(temp_arr[i] * temp_arr[i+4] + temp_arr[i+1] * temp_arr[i+5]) mod m
      • arr2 के अंत में अस्थायी डालें
    • अस्थायी:=(temp_arr[2 * n-2] * temp_arr[2 * n] + temp_arr[2 * n-1] * temp_arr[2 * n+1]) mod m
    • arr2 के अंत में अस्थायी डालें
    • गिरफ्तारी2 से डुप्लिकेट आइटम हटाएं
    • arr2 का वापसी आकार

उदाहरण

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

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. पायथन में फेरिस व्हील से लाभ को अधिकतम करने के लिए आवश्यक न्यूनतम घुमावों का पता लगाने का कार्यक्रम

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