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

पायथन में एक कुशल तरीके से 0 से n की सीमा में r के लिए nCr मान खोजने का कार्यक्रम

मान लीजिए हमें कई बार nCr मानों की गणना करनी है। हम इसे बहुत ही कुशल तरीके से हल कर सकते हैं। यदि हम nCr के निम्न मान संग्रहीत करते हैं तो हम आसानी से उच्च मान प्राप्त कर सकते हैं। तो अगर हमारे पास n है, तो हमें nC0 से nCn की सूची ढूंढनी होगी। अगर उत्तर बहुत बड़ा है तो उस मॉड्यूलो 10^9 को वापस कर दें।

इसलिए, यदि इनपुट n =6 जैसा है, तो आउटपुट [1, 6, 15, 20, 15, 6, 1] होगा।

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

  • आइटम:=एकल तत्व 1 के साथ एक सूची
  • r श्रेणी 1 से n के लिए, करें
    • आइटम के अंत में (आइटम का अंतिम तत्व * (n-r+1) /r) का फर्श डालें
    • आइटम[n-2] :=items[n-2] mod 10^9 जहां n आइटम का आकार है
  • आइटम लौटाएं

उदाहरण

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

def solve(n):
   items = [1]
   for r in range(1,n+1):
      items.append(items[-1]*(n-r+1)//r)
      items[-2] %= 10**9
   return items

n = 6
print(solve(n))

इनपुट

6

आउटपुट

[1, 6, 15, 20, 15, 6, 1]

  1. n . से विभाजित सरणी गुणन के अनुस्मारक खोजने के लिए पायथन कार्यक्रम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे - समस्या कथन कई संख्याओं और एक संख्या इनपुट n को देखते हुए, हमें n से विभाज्य सभी संख्या को गुणा करने के बाद शेष को प्रिंट करना होगा। दृष्टिकोण सबसे पहले, शेष की गणना arr[i]% n की तरह करें। फिर इस शेष को वर्तमान परिणाम से गुणा क

  1. किसी संख्या का सबसे बड़ा अभाज्य गुणनखंड खोजने के लिए पायथन कार्यक्रम

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

  1. एक सिलेंडर की परिधि का पता लगाने के लिए पायथन कार्यक्रम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे - समस्या कथन - इनपुट व्यास और ऊंचाई, सिलेंडर की परिधि ज्ञात करें परिमाप और कुछ नहीं बल्कि एक बेलन का पार्श्व दृश्य है अर्थात एक आयत इसलिए परिधि=2 * (h + d) यहाँ d बेलन का व्यास है h सिलेंडर की ऊंचाई है आइए अब कार्यान्वयन दे