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

Python में n नोड्स वाले सभी सिंपल अनडायरेक्टेड ग्राफ की लागत का योग खोजने का प्रोग्राम


मान लीजिए हमारे पास n नोड्स वाला एक अनडायरेक्टेड ग्राफ G है। अब एक सिंपल अनडायरेक्टेड ग्राफ की लागत उसके नोड्स की लागत का योग है। और एक नोड की लागत D^k है, जहां D उसकी डिग्री है। अब हमारे पास n और k मान हैं। हमें n नोड्स वाले सभी संभावित सिंपल अनडायरेक्टेड ग्राफ की लागत का योग ढूंढना है। परिणाम बहुत बड़ा हो सकता है, इसलिए परिणाम को 1005060097 मॉड्यूलो वापस करें।

तो, यदि इनपुट n = 3, k = 2 है, तो आउटपुट 36 होगा क्योंकि, 3 नोड्स वाले आठ सिंपल ग्राफ हैं।

  • केवल 3 एज वाला एक ग्राफ, और इसकी लागत 2^2+2^2+2^2 = 12 है।
  • दो एज वाले तीन ग्राफ, और प्रत्येक की लागत 1^2+1^2+2^2 = 6 है।
  • एक एज वाले तीन ग्राफ, और प्रत्येक की लागत 0^2+1^2+1^2 = 2 है।
  • बिना एज वाला एक ग्राफ, और इसकी लागत 0^2+0^2+0^2 = 0 है।

तो, कुल 12*1 + 6*3 + 2*3 + 0*1 = 36 है।

इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:

  • choose() फ़ंक्शन परिभाषित करें। यह n, k लेगा
  • product := 1
  • i के लिए range n से n-k तक, 1 से घटाकर, करें
    • product := product * i
  • i के लिए range 1 से k तक, करें
    • product := product / i
  • product को पूर्णांक के रूप में वापस करें
  • util() फ़ंक्शन परिभाषित करें। यह d, n लेगा
  • choose(n-1, d) * 2 ^(choose(n-1, 2)) वापस करें
  • मुख्य मेथड से, निम्नलिखित करें:
  • total := 0
  • d के लिए range 0 से n - 1 तक, करें
    • total := total + util(d, n) * d^k
    • total := total mod 1005060097
  • (total * n) mod 1005060097 वापस करें

उदाहरण

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

def choose(n, k):     product = 1     for i in range(n, n-k, -1):         product *= i     for i in range(1, k+1):         product /= i     return int(product) def util(d, n):     return choose(n-1, d) * 2 ** (choose(n-1, 2)) def solve(n, k):     total = 0     for d in range(n):         total += util(d, n) * d ** k         total %= 1005060097     return (total * n) % 1005060097 n = 3 k = 2 print(solve(n, k))

इनपुट

3, 2 

आउटपुट

36

  1. Python में ट्री के सभी एलिमेंट का योग खोजने का प्रोग्राम Python में ट्री के सभी एलिमेंट का योग खोजने का प्रोग्राम

    मान लीजिए हमारे पास कुछ मानों वाला एक बाइनरी ट्री है, हमें ट्री में सभी मानों का योग ढूंढना है। तो, यदि इनपुट इस तरह है तो आउटपुट 14 होगा। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे: recurse() फ़ंक्शन परिभाषित करें। यह node लेगा val := node का मान यदि node का बाएं null नहीं है, तो val := va

  1. Python प्रोग्राम में ऐरे का योग खोजना Python प्रोग्राम में ऐरे का योग खोजना

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

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

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