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

C++ में जांचें कि मैट्रिक्स सिमेट्रिक है या नहीं


रैखिक बीजगणित में मैट्रिक्स M[][] को सिमेट्रिक मैट्रिक्स कहा जाता है यदि और केवल यदि मैट्रिक्स का ट्रांसपोज मैट्रिक्स के बराबर हो। मैट्रिक्स का ट्रांसपोज तब होता है जब हम मैट्रिक्स को उसके विकर्ण पर फ्लिप करते हैं, जिसके परिणामस्वरूप उसकी पंक्ति और कॉलम इंडेक्स स्विच हो जाते हैं।

नीचे सिमेट्रिक मैट्रिक्स का उदाहरण -

$$\begin{bmatrix} 1 & 4 & 7 \\ 4 & 5 & 6 \\ 7 & 6 & 9 \\ \end {bmatrix} \Rightarrow \begin{bmatrix} 1 & 4 & 7 \\ 4 & 5 & 6 \\ 7 & 6 & 9 \\ \end{bmatrix}$$

उपरोक्त मैट्रिक्स सिमेट्रिक मैट्रिक्स है, हमने बाईं ओर का मैट्रिक्स लिया और उसका ट्रांसपोज किया और परिणाम वही है जो मैट्रिक्स के बराबर है।

उदाहरण

इनपुट: arr1[][n] = { { 1, 2, 3 },    { 2, 2, 4 },    { 3, 4, 1 } }; आउटपुट: यह एक सिमेट्रिक मैट्रिक्स है इनपुट: arr1[][n] = { { 1, 7, 3 },    { 2, 9, 5 },    { 4, 6, 8 } }; आउटपुट: यह सिमेट्रिक मैट्रिक्स नहीं है 

दृष्टिकोण

हम बस इन चरणों का पालन कर सकते हैं -

  • 1. एक मैट्रिक्स लें और उसका ट्रांसपोज दूसरी मैट्रिक्स में स्टोर करें।
  • 2. जांचें कि परिणामी मैट्रिक्स इनपुट मैट्रिक्स के समान है या नहीं।

एल्गोरिदम

Start Step 1 -> मैक्रो डिफाइन करें #define n 10 Step 2 -> मैट्रिक्स का ट्रांसपोज खोजने का फंक्शन डिक्लेयर करें    void transpose(int arr1[][n], int arr2[][n], int a)       Loop int i = 0 से i < a और i++ तक          Loop int j = 0 से j < a और j++ तक             arr2[i][j] = arr1[j][i] सेट करें          End    End Step 3 -> सिमेट्रिक है या नहीं जांचने का फंक्शन डिक्लेयर करें    bool check(int arr1[][n], int a)    वेरिएबल डिक्लेयर करें int arr2[a][n]    transpose(arr1, arr2, a) कॉल करें    Loop int i = 0 से i < a और i++ तक       Loop int j = 0 से j < a और j++ तक          IF (arr1[i][j] != arr2[i][j])             return false          End       End    End    Return true Step 4 -> main() में    int arr1[][n] = { { 1, 2, 3 },       { 2, 2, 4 },       { 3, 4, 1 } } वेरिएबल डिक्लेयर करें    IF (check(arr1, 3))       यह एक सिमेट्रिक मैट्रिक्स है प्रिंट करें    Else       यह सिमेट्रिक मैट्रिक्स नहीं है प्रिंट करें Stop

उदाहरण

#include <iostream> #define n 10 using namespace std; //मैट्रिक्स का ट्रांसपोज खोजें void transpose(int arr1[][n], int arr2[][n], int a){    for (int i = 0; i < a; i++)       for (int j = 0; j < a; j++)          arr2[i][j] = arr1[j][i]; } //सिमेट्रिक है या नहीं जांचें bool check(int arr1[][n], int a){    int arr2[a][n];    transpose(arr1, arr2, a);    for (int i = 0; i < a; i++)       for (int j = 0; j < a; j++)          if (arr1[i][j] != arr2[i][j])             return false;    return true; } int main(){    int arr1[][n] = { { 1, 2, 3 },       { 2, 2, 4 },       { 3, 4, 1 } };    if (check(arr1, 3))       cout << "its a symmetric matrix";    else       cout << "its not a symmetric matrix";    return 0; }

आउटपुट

its a symmetric matrix

  1. C++ में इन्वोल्यूटरी मैट्रिक्स जांचें C++ में इन्वोल्यूटरी मैट्रिक्स जांचें

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

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

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

  1. C++ में डायगोनल मैट्रिक्स और स्केलर मैट्रिक्स जांचें C++ में डायगोनल मैट्रिक्स और स्केलर मैट्रिक्स जांचें

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