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

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

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

इनवॉल्यूटरी मैट्रिक्स

एक मैट्रिक्स को इनवॉल्वरी . कहा जाता है मैट्रिक्स अगर और केवल अगर, जब एक मैट्रिक्स खुद से गुणा हो जाता है और इसका परिणाम एक पहचान मैट्रिक्स होता है। एक मैट्रिक्स I पहचान मैट्रिक्स है यदि और केवल यदि इसका मुख्य विकर्ण एक है और मुख्य विकर्ण के अलावा अन्य तत्व शून्य हैं। तो, हम कह सकते हैं कि एक मैट्रिक्स इन्वॉल्वरी मैट्रिक्स है अगर और केवल अगर M*M=I , जहां एम कुछ मैट्रिक्स है और I एक आइडेंटिटी मैट्रिक्स है।

जैसे नीचे दिए गए उदाहरण में -

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

यहां जब हमने मैट्रिक्स को खुद से गुणा किया तो परिणाम पहचान मैट्रिक्स है; इसलिए दिया गया मैट्रिक्स इन्वॉल्यूटरी मैट्रिक्स है।

उदाहरण

Input: { {1, 0, 0},
   {0, -1, 0},
   {0, 0, -1}}
Output: yes
Input: { {3, 0, 0},
   {0, 2, 0},
   {0, 0, 3} }
Output: no

एल्गोरिदम

Start
Step 1 -> define macro as #define size 3
Step 2 -> declare function for matrix multiplication.
   void multiply(int arr[][size], int res[][size])
      Loop For int i = 0 and i < size and i++
         Loop For int j = 0 and j < size and j++
            Set res[i][j] = 0
            Loop For int k = 0 and k < size and k++
               Set res[i][j] += arr[i][k] * arr[k][j]
            End
         End
   End
Step 3 -> declare function to check involutory matrix or not
   bool check(int arr[size][size])
   declare int res[size][size]
   Call multiply(arr, res)
   Loop For int i = 0 and i < size and i++
      Loop For int j = 0 and j < size and j++
         IF (i == j && res[i][j] != 1)
            return false
         End
         If (i != j && res[i][j] != 0)
            return false
         End
      End
   End
   Return true
Step 4 -> In main()
   Declare int arr[size][size] = { { 1, 0, 0 },
      { 0, -1, 0 },
      { 0, 0, -1 } }
   If (check(arr))
      Print its an involutory matrix
   Else
      Print its not an involutory matrix
Stop

उदाहरण

#include <bits/stdc++.h>
#define size 3
using namespace std;
// matrix multiplication.
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];
      }
   }
}
// check involutory matrix or not.
bool check(int arr[size][size]){
   int res[size][size];
   multiply(arr, res);
   for (int i = 0; i < size; i++){
      for (int j = 0; j < size; j++){
         if (i == j && res[i][j] != 1)
            return false;
         if (i != j && res[i][j] != 0)
            return false;
      }
   }
   return true;
}
int main(){
   int arr[size][size] = { { 1, 0, 0 },
      { 0, -1, 0 },
      { 0, 0, -1 } };
   if (check(arr))
      cout << "its an involutory matrix";
   else
      cout << "its not an involutory matrix";
   return 0;
}

आउटपुट

its an involutory matrix

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

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

  1. सी ++ में विकर्ण मैट्रिक्स और स्केलर मैट्रिक्स की जांच करने का कार्यक्रम

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

  1. सी ++ प्रोग्राम एडजेंसी मैट्रिक्स को लागू करने के लिए

    एक ग्राफ का आसन्न मैट्रिक्स आकार V x V का एक वर्ग मैट्रिक्स है। V ग्राफ G के शीर्षों की संख्या है। इस मैट्रिक्स में प्रत्येक पक्ष में V कोने चिह्नित हैं। यदि ग्राफ़ में i से j कोने तक कुछ किनारे हैं, तो ith पर आसन्न मैट्रिक्स में पंक्ति और जम्मूवें कॉलम में यह 1 (या भारित ग्राफ़ के लिए कुछ गैर-शून्