💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# 程序检查对合矩阵 > 原文: [https://www.geeksforgeeks.org/program-check-involutory-matrix/](https://www.geeksforgeeks.org/program-check-involutory-matrix/) 给定一个矩阵,任务是检查矩阵是否为非强制矩阵。 [**非对映矩阵**](https://en.wikipedia.org/wiki/Involutory_matrix):如果矩阵本身相乘返回恒等矩阵,则称该矩阵为非对映矩阵。 对合矩阵是其自身的逆矩阵。 如果 **A * A = I** ,则矩阵 **A** 被称为​​对合矩阵。 我是身份矩阵。 ![Involutory-Matrix](https://img.kancloud.cn/79/ad/79ad1f5ccfc0393aba22b134f3a8589b_588x163.png) **示例**: ``` Input : mat[N][N] = {{1, 0, 0}, {0, -1, 0}, {0, 0, -1}} Output : Involutory Matrix Input : mat[N][N] = {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}} Output : Involutory Matrix ``` ## C++ ```cpp // Program to implement involutory matrix. #include <bits/stdc++.h> #define N 3 using namespace std; // Function for matrix multiplication. void multiply(int mat[][N], int res[][N]) {     for (int i = 0; i < N; i++) {         for (int j = 0; j < N; j++) {             res[i][j] = 0;             for (int k = 0; k < N; k++)                 res[i][j] += mat[i][k] * mat[k][j];         }     } } // Function to check involutory matrix. bool InvolutoryMatrix(int mat[N][N]) {     int res[N][N];     // multiply function call.     multiply(mat, res);     for (int i = 0; i < N; i++) {         for (int j = 0; j < N; j++) {             if (i == j && res[i][j] != 1)                 return false;             if (i != j && res[i][j] != 0)                 return false;         }     }     return true; } // Driver function. int main() {     int mat[N][N] = { { 1, 0, 0 },                       { 0, -1, 0 },                       { 0, 0, -1 } };     // Function call. If function return     // true then if part will execute otherwise     // else part will execute.     if (InvolutoryMatrix(mat))         cout << "Involutory Matrix";     else         cout << "Not Involutory Matrix";     return 0; } ``` ## Java ```java // Java  Program to implement  // involutory matrix. import java.io.*; class GFG {     static int N = 3;     // Function for matrix multiplication.     static void multiply(int mat[][], int res[][])     {         for (int i = 0; i < N; i++) {             for (int j = 0; j < N; j++) {                 res[i][j] = 0;                 for (int k = 0; k < N; k++)                     res[i][j] += mat[i][k] * mat[k][j];             }         }     }     // Function to check involutory matrix.     static boolean InvolutoryMatrix(int mat[][])     {         int res[][] = new int[N][N];         // multiply function call.         multiply(mat, res);         for (int i = 0; i < N; i++) {             for (int j = 0; j < N; j++) {                 if (i == j && res[i][j] != 1)                     return false;                 if (i != j && res[i][j] != 0)                     return false;             }         }         return true;     }     // Driver function.     public static void main (String[] args)      {         int mat[][] = { { 1, 0, 0 },                         { 0, -1, 0 },                         { 0, 0, -1 } };         // Function call. If function return         // true then if part will execute          // otherwise else part will execute.         if (InvolutoryMatrix(mat))             System.out.println ( "Involutory Matrix");         else             System.out.println ( "Not Involutory Matrix");     } } // This code is contributed by vt_m ``` ## Python3 ```py # Program to implement involutory matrix. N = 3; # Function for matrix multiplication. def multiply(mat, res):     for i in range(N):          for j in range(N):             res[i][j] = 0;             for k in range(N):                 res[i][j] += mat[i][k] * mat[k][j];     return res; # Function to check involutory matrix. def InvolutoryMatrix(mat):     res=[[0 for i in range(N)]              for j in range(N)];     # multiply function call.     res = multiply(mat, res);     for i in range(N):          for j in range(N):             if (i == j and res[i][j] != 1):                 return False;             if (i != j and res[i][j] != 0):                 return False;     return True; # Driver Code mat = [[1, 0, 0], [0, -1, 0], [0, 0, -1]]; # Function call. If function  # return true then if part  # will execute otherwise # else part will execute. if (InvolutoryMatrix(mat)):     print("Involutory Matrix"); else:     print("Not Involutory Matrix"); # This code is contributed by mits ``` ## C# ```cs // C# Program to implement  // involutory matrix. using System; class GFG {     static int N = 3;     // Function for matrix multiplication.     static void multiply(int [,]mat, int [,]res)     {         for (int i = 0; i < N; i++) {             for (int j = 0; j < N; j++) {                 res[i,j] = 0;                 for (int k = 0; k < N; k++)                     res[i,j] += mat[i,k] * mat[k,j];             }         }     }     // Function to check involutory matrix.     static bool InvolutoryMatrix(int [,]mat)     {         int [,]res = new int[N,N];         // multiply function call.         multiply(mat, res);         for (int i = 0; i < N; i++) {             for (int j = 0; j < N; j++) {                 if (i == j && res[i,j] != 1)                     return false;                 if (i != j && res[i,j] != 0)                     return false;             }         }         return true;     }     // Driver function.     public static void Main ()      {         int [,]mat = { { 1, 0, 0 },                         { 0, -1, 0 },                         { 0, 0, -1 } };         // Function call. If function return         // true then if part will execute          // otherwise else part will execute.         if (InvolutoryMatrix(mat))             Console.WriteLine( "Involutory Matrix");         else             Console.WriteLine( "Not Involutory Matrix");     } } // This code is contributed by vt_m ``` ## PHP ```php <?php // Program to implement  // involutory matrix. $N = 3; // Function for matrix // multiplication. function multiply($mat, $res) {     global $N;     for ($i = 0; $i < $N; $i++)      {         for ($j = 0; $j < $N; $j++)         {             $res[$i][$j] = 0;             for ($k = 0; $k < $N; $k++)                 $res[$i][$j] += $mat[$i][$k] *                                  $mat[$k][$j];         }     }     return $res; } // Function to check // involutory matrix. function InvolutoryMatrix($mat) {     global $N;     $res;     for ($i = 0; $i < $N; $i++)         for ($j = 0; $j < $N; $j++)             $res[$i][$j] = 0;     // multiply function call.     $res = multiply($mat, $res);     for ($i = 0; $i < $N; $i++)      {         for ($j = 0; $j < $N; $j++)         {             if ($i == $j &&                 $res[$i][$j] != 1)                 return false;             if ($i != $j &&                  $res[$i][$j] != 0)                 return false;         }     }     return true; } // Driver Code $mat = array(array(1, 0, 0),              array(0, -1, 0),              array(0, 0, -1)); // Function call. If function  // return true then if part  // will execute otherwise // else part will execute. if (InvolutoryMatrix($mat))     echo "Involutory Matrix"; else     echo "Not Involutory Matrix"; // This code is contributed by mits ?> ``` **输出**: ``` Involutory Matrix ``` * * * * * *