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

C++ में मैट्रिक्स में एक विशिष्ट जोड़ी ढूंढें


मान लीजिए n x n मैट्रिक्स mat पूर्णांकों का है। हमें सभी सूचकांकों के विकल्पों पर mat(c, d) - mat(a, b) का अधिकतम मान ढूंढना है। यहां हमें ध्यान रखना है कि c > a और d > b। तो यदि मैट्रिक्स इस तरह है -


1 2 -1 -4 -20
-8 -3 4 2 1
3 8 6 1 3
-4 -1 1 7 -6
0 -4 10 -5 1

आउटपुट 18 होगा। ऐसा इसलिए क्योंकि mat[4, 2] - mat[1, 0] = 18 का अधिकतम अंतर है।

इसे हल करने के लिए हम मैट्रिक्स को पूर्व-प्रक्रिया करेंगे जैसे कि सूचकांक (i, j) (i, j) से (n - 1, n - 1) तक मैट्रिक्स में तत्वों का अधिकतम संग्रहीत करता है और इस प्रक्रिया में अब तक मिले अधिकतम मान को अद्यतन करता रहता है। फिर हम अधिकतम मान लौटाएंगे।

उदाहरण

#include<iostream> #define N 5 using namespace std; int findMaxValue(int matrix[][N]) {     int maxValue = -99999;     int arr_max[N][N];     arr_max[N-1][N-1] = matrix[N-1][N-1];     int max_val = matrix[N-1][N-1];     for (int j = N - 2; j >= 0; j--) {         if (matrix[N-1][j] > max_val)             max_val = matrix[N - 1][j];         arr_max[N-1][j] = max_val;     }     max_val = matrix[N - 1][N - 1];     for (int i = N - 2; i >= 0; i--) {         if (matrix[i][N - 1] > max_val)             max_val = matrix[i][N - 1];         arr_max[i][N - 1] = max_val;     }     for (int i = N-2; i >= 0; i--) {         for (int j = N-2; j >= 0; j--) {             if (arr_max[i+1][j+1] - matrix[i][j] > maxValue)                 maxValue = arr_max[i + 1][j + 1] - matrix[i][j];             arr_max[i][j] = max(matrix[i][j],max(arr_max[i][j + 1],arr_max[i + 1][j]) );         }     }     return maxValue; } int main() {     int mat[N][N] = {         { 1, 2, -1, -4, -20 },         { -8, -3, 4, 2, 1 },         { 3, 8, 6, 1, 3 },         { -4, -1, 1, 7, -6 },         { 0, -4, 10, -5, 1 }     };     cout << "Maximum Value is " << findMaxValue(mat); }

आउटपुट

Maximum Value is 18

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

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

  1. - C++ प्रोग्राम: ग्राफ मैट्रिक्स का ट्रांसपोज़ ज्ञात करना

    इस प्रोग्राम में हम एक मैट्रिक्स लेते हैं और मैट्रिक्स का ट्रांसपोज़ प्रिंट करते हैं। ट्रांसपोज़ मैट्रिक्स में, पंक्तियां स्तंभ बन जाती हैं और इसके विपरीत। एल्गोरिदम शुरुआत मैट्रिक्स की पंक्तियों और स्तंभों की संख्या लें। मैट्रिक्स के तत्व लें और मैट्रिक्स A में संग्रहीत करें। ट्रांसपोज़ मैट्रिक्स

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

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