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

हम कह सकते हैं कि उपरोक्त मैट्रिक्स को स्वयं से गुणा करने पर वही मैट्रिक्स वापस मिलता है; इसलिए मैट्रिक्स इडेम्पोटेंट मैट्रिक्स है।
उदाहरण
इनपुट: m[3][3] = { {2, -2, -4}, {-1, 3, 4}, {1, -2, -3}} आउटपुट: इडेम्पोटेंट इनपुट: m[3][3] == { {3, 0, 0}, {0, 2, 0}, {0, 0, 3} } आउटपुट: नॉट इडेम्पोटेंटएल्गोरिदम
Start Step 1 -> मैक्रो डिफाइन करें #define size 3 Step 2 -> मैट्रिक्स मल्टीप्लिकेशन के लिए फंक्शन डिक्लेयर करें void multiply(int arr[][size], int res[][size]) Loop int i = 0 से i < size और i++ तक Loop int j = 0 से j < size और j++ तक res[i][j] = 0 सेट करें Loop int k = 0 से k < size और k++ तक res[i][j] += arr[i][k] * arr[k][j] सेट करें End End End Step 3 -> इडेम्पोटेंट है या नहीं जांचने का फंक्शन डिक्लेयर करें bool check(int arr[][size]) int res[size][size] डिक्लेयर करें multiply(arr, res) कॉल करें Loop int i = 0 से i < size और i++ तक Loop int j = 0 से j < size और j++ तक IF (arr[i][j] != res[i][j]) return false End End End return true step 4 -> main() में int arr[size][size] = {{1, -1, -1}, {-1, 1, 1}, {1, -1, -1}} डिक्लेयर करें IF (check(arr)) यह एक इडेम्पोटेंट मैट्रिक्स है प्रिंट करें Else यह इडेम्पोटेंट मैट्रिक्स नहीं है प्रिंट करें Stopउदाहरण
#include<bits/stdc++.h> #define size 3 using namespace std; //मैट्रिक्स मल्टीप्लिकेशन। void multiply(int arr[][size], int res[][size]){ for (int i = 0; i < size; i++){ for (int j = 0; j < size; j++){ res[i][j] = 0; for (int k = 0; k < size; k++) res[i][j] += arr[i][k] * arr[k][j]; } } } //इडेम्पोटेंट है या नहीं जांचें bool check(int arr[][size]){ int res[size][size]; multiply(arr, res); for (int i = 0; i < size; i++) for (int j = 0; j < size; j++) if (arr[i][j] != res[i][j]) return false; return true; } int main(){ int arr[size][size] = {{1, -1, -1}, {-1, 1, 1}, {1, -1, -1}}; if (check(arr)) cout << "its an idempotent matrix"; else cout << "its not an idempotent matrix"; return 0; }आउटपुट
its an idempotent matrix