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

Python में दिए गए विशेष मैट्रिक्स का डिटरमिनेंट खोजने का प्रोग्राम

मान लीजिए, हमारे पास n वर्टेक्स वाला एक ट्री है, जहां प्रत्येक वर्टेक्स 1 से n तक लेबल किया गया है। ट्री का रूट लेबल 1 है, और प्रत्येक वर्टेक्स का वजन wi है। अब एक n×n मैट्रिक्स A बनाया जाता है जहां A(x,y) = Wf(x, y) जहां f(x, y) वर्टेक्स x और y का लीस्ट कॉमन प्रीडिसेसर है। हमें मैट्रिक्स A का डिटरमिनेंट ढूंढना है। मैट्रिक्स के एज, वजन, और वर्टेक्स की कुल संख्या इनपुट के रूप में दी गई है।

इसलिए, यदि इनपुट है: input_array = [[1, 2], [1, 3], [1, 4], [1, 5]], weights = [1, 2, 3, 4, 5], vertices = 5, तो आउटपुट 24 होगा।

मैट्रिक्स A निम्न है:

11111
12111
11311
11141
11115

इस मैट्रिक्स का डिटरमिनेंट 24 है।

हल करने के चरण

  • w := एक खाली सूची
  • i को 0 से vertices तक के लिए: weights[i] और एक नई सूची को w में जोड़ें
  • input_array में प्रत्येक i, item के लिए:
    • p := item[0], q := item[1]
    • w[p-1][1] के अंत में q-1 डालें
    • w[q-1][1] के अंत में p-1 डालें
  • det := 1
  • stack := (0, 0) टपल वाला एक स्टैक
  • जब स्टैक खाली नहीं है:
    • i, weights := स्टैक से टॉप तत्व हटाएं
    • det := (det * (w[i][0] - weights)) mod (10^9 + 7)
    • w[i][1] में प्रत्येक t के लिए:
      • स्टैक में (t, w[i][0]) टपल जोड़ें
      • w[i][1] में प्रत्येक t के लिए: w[t][1] से i हटाएं
  • det वापस करें

उदाहरण

def solve(input_array, weights, vertices):
    w = [[weights[i], []] for i in range(vertices)]
    for i, item in enumerate(input_array):
        p, q = item[0], item[1]
        w[p - 1][1].append(q - 1)
        w[q - 1][1].append(p - 1)
    det = 1
    stack = [(0, 0)]
    while stack:
        i, weights = stack.pop()
        det = (det * (w[i][0] - weights)) % (10**9 + 7)
        stack += [(t, w[i][0]) for t in w[i][1]]
        for t in w[i][1]:
            w[t][1].remove(i)
    return det

print(solve([[1, 2], [1, 3], [1, 4], [1, 5]], [1, 2, 3, 4, 5], 5))

इनपुट

[[1, 2], [1, 3], [1, 4], [1, 5]], [1, 2, 3, 4, 5], 5

आउटपुट

24
  1. पायथन में दिए गए ग्राफ में विशेष प्रकार के उपग्राफ ज्ञात करने का प्रोग्राम पायथन में दिए गए ग्राफ में विशेष प्रकार के उपग्राफ ज्ञात करने का प्रोग्राम

    मान लीजिए हमारे पास एक विशेष प्रकार का ग्राफ है जिसमें दो प्रकार के शीर्ष हैं जिन्हें हेड और फीट कहा जाता है। ग्राफ में केवल एक हेड होता है और k किनारे होते हैं जो हेड को प्रत्येक फीट से जोड़ते हैं। इसलिए, यदि हमें एक अनिर्देशित, अनभारित ग्राफ दिया जाता है; तो हमें ग्राफ के शीर्ष-असंयुक्त उपग्राफ म

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

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

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

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