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

C++ प्रोग्राम में रो-मेजर और कॉलम-मेजर क्रम की समान मैट्रिक्स को जोड़कर बनी मैट्रिक्स का ट्रेस ढूंढना


परिचय

इस ट्यूटोरियल में हम एक ऐसा प्रोग्राम लिखेंगे जो रो-मेजर (row-major) और कॉलम-मेजर (column-major) मैट्रिक्स को जोड़कर बनी मैट्रिक्स का ट्रेस (trace) ढूंढता है।

मैट्रिक्स का क्रम दिया जाने पर रो-मेजर और कॉलम-मेजर मैट्रिक्स कैसे बनाएं

क्रम - 3 x 3

रो-मेजर मैट्रिक्स -

123
456
789

कॉलम-मेजर मैट्रिक्स -

147
258
369

हमारे पास रो-मेजर और कॉलम-मेजर मैट्रिक्स हैं। अब हमें दोनों मैट्रिक्स को जोड़ना है। और परिणामी मैट्रिक्स का ट्रेस वह परिणाम है जिसे हम ढूंढ रहे हैं।

समाधान के 4 चरण

  1. रो-मेजर मैट्रिक्स बनाएं।
  2. कॉलम-मेजर मैट्रिक्स बनाएं।
  3. दोनों मैट्रिक्स को जोड़ें और परिणामी मैट्रिक्स स्टोर करें।
  4. परिणामी मैट्रिक्स का ट्रेस ढूंढें और परिणाम प्रिंट करें।

उदाहरण कोड

#include <iostream>
#include <bits/stdc++.h>
#include <regex>
using namespace std;

int traceOfRowAndColumnMajorMatrices(int m, int n) {
    int row_major[m][n], column_major[m][n], addition_result[m][n], count = 1;
    for (int i = 0; i < m; i++) {
        for (int j = 0; j < n; j++) {
            row_major[i][j] = count;
            count += 1;
        }
    }
    count = 1;
    for (int i = 0; i < m; i++) {
        for (int j = 0; j < n; j++) {
            column_major[j][i] = count;
            count += 1;
        }
    }
    for (int i = 0; i < m; i++) {
        for (int j = 0; j < n; j++) {
            addition_result[i][j] = row_major[i][j] + column_major[i][j];
        }
    }
    int trace = 0;
    for (int i = 0; i < m; i++) {
        for (int j = 0; j < n; j++) {
            if (i == j) {
                trace += addition_result[i][j];
            }
        }
    }
    return trace;
}

int main() {
    int m = 3, n = 3;
    cout << traceOfRowAndColumnMajorMatrices(m, n) << endl;
    return 0;
}

आउटपुट

30

व्याख्या

3×3 मैट्रिक्स के लिए: रो-मेजर: [[1,2,3],[4,5,6],[7,8,9]] कॉलम-मेजर: [[1,4,7],[2,5,8],[3,6,9]] योग: [[2,6,10],[6,10,14],[10,14,18]] ट्रेस (विकर्ण योग): 2 + 10 + 18 = 30

निष्कर्ष

ट्रेस की गणना सीधे सूत्र से भी की जा सकती है: Σ(2 + (i-1)(m+n+2)) for i=1 to min(m,n)। यदि आपके कोई प्रश्न हैं, तो कमेंट सेक्शन में पूछें।


  1. C++ में इडेम्पोटेंट मैट्रिक्स जांचें C++ में इडेम्पोटेंट मैट्रिक्स जांचें

    एक मैट्रिक्स M[r][c] दिया गया है, r पंक्तियों की संख्या दर्शाता है और c कॉलम की संख्या दर्शाता है जैसे कि r = c एक स्क्वायर मैट्रिक्स बनाता है। हमें जांचना है कि दिया गया स्क्वायर मैट्रिक्स इडेम्पोटेंट मैट्रिक्स है या नहीं।इडेम्पोटेंट मैट्रिक्सएक मैट्रिक्स M को इडेम्पोटेंट मैट्रिक्स कहा जाता है यदि

  1. - C++ प्रोग्राम: ग्राफ मैट्रिक्स का व्युत्क्रम (Inverse) ज्ञात करना

    यह एक C++ प्रोग्राम है जो ग्राफ मैट्रिक्स का व्युत्क्रम ज्ञात करता है। मैट्रिक्स का व्युत्क्रम केवल तभी मौजूद होता है जब मैट्रिक्स नॉन-सिंगुलर हो यानी डिटरमिनेंट 0 नहीं होना चाहिए। मैट्रिक्स का व्युत्क्रम कई तरीकों से ज्ञात किया जा सकता है। यहां हम एडजॉइंट मैट्रिक्स और उसके डिटरमिनेंट का उपयोग करके

  1. - C++ में मैट्रिक्स का ट्रांसपोज़ खोजने का प्रोग्राम

    मैट्रिक्स संख्याओं का एक आयताकार सरणी है जो पंक्तियों और कॉलम के रूप में व्यवस्थित होता है। मैट्रिक्स का ट्रांसपोज़ एक नया मैट्रिक्स है जिसमें मूल की पंक्तियाँ अब कॉलम हैं और इसके विपरीत। उदाहरण के लिए। एक मैट्रिक्स नीचे दिया गया है: 1 2 3 4 5 6 7 8 9 उपरोक्त मैट्रिक्स का ट्रांसपोज़ निम्नानुसार है।