[PTA] Jugement de la matrice carrée bisymétrique

Veuillez ajouter une description de l'image
Carte de visite personnelle :

blogueur: Alcooliques ᝰ.
Profil personnel: Offrez-vous du vin et aspirez à un avenir avec un verre.
colonne: Exercices et analyse PTA
introduire: Enregistrement des questions d'entraînement du blogueur en pta

Veuillez ajouter une description de l'image

avant-propos

1. Introduction

La "plate-forme d'enseignement auxiliaire expérimentale de programmation PTA" est une plate-forme d'enseignement auxiliaire pour les cours de programmation dirigés par l'Université du Zhejiang, gérée et exploitée par Hangzhou Baiteng Education Technology Co., Ltd., et construite conjointement par des enseignants de collèges et d'universités à travers le pays. À l'heure actuelle, 538 collèges et universités à travers le pays ont participé, et 3 152 enseignants ont construit conjointement 66 095 sujets de haute qualité, et le nombre d'étudiants inscrits a atteint 1,36 million ; il existe 14 ensembles de sujets fixes (couvrant le langage C, le langage JAVA, langage Python, structure de données, système de base de données) et China University Computer Competition Question Bank) et 55 ensembles de sujets de cours professionnels (couvrant l'informatique, l'électronique, la littérature, les langues étrangères et la certification Huawei). Il existe 10 types de questions, y compris les questions vraies et fausses, les questions à remplir, les questions à choix multiples, les questions à choix multiples, les questions de programme à remplir, les questions de fonction, les questions de programmation, les questions subjectives, questions de programmation multi-fichiers et questions de programmation SQL.

2. Avantages

  • Soutenez 200 000 personnes en ligne en même temps
  • Prise en charge de plusieurs types de questions
  • Prend en charge une variété de modes de jugement
  • Fournir une garantie complète pour la qualité de l'enseignement
  • Système de réponse instantanée aux questions

1. Le sujet

Pour une matrice carrée d'ordre n, veuillez juger si la matrice carrée est double symétrique, c'est-à-dire qu'elle est symétrique à la fois à gauche et à droite et de haut en bas. Si c'est le cas, sortez "oui", sinon sortez "non". Par exemple, dans l'exemple, la symétrie gauche et droite est délimitée par la deuxième colonne, et la symétrie supérieure et inférieure est délimitée par la deuxième ligne, donc la sortie "oui".

Format d'entrée :
entrez d'abord un entier positif T, qui représente le nombre de groupes de données de test, puis T groupes de données de test. La première ligne de chaque ensemble de données est entrée avec l'ordre n de la matrice carrée (2≤n≤50), et l'entrée suivante est n lignes, chaque ligne contient n entiers, représentant les éléments de la matrice carrée.

Format de sortie :
pour chaque ensemble de données de test, si la matrice carrée est à double symétrie, sortie "oui", sinon sortie "non". Notez que les guillemets ne doivent pas nécessairement être sortis.

Échantillon d'entrée :

2
3
1 2 1
3 5 3
1 4 1
3
1 2 1
3 5 3
1 2 1

Exemple de sortie :

non
oui

Limite de longueur de code 16 Ko
Limite de temps 400 ms
Limite de mémoire 64 Mo

2.Code

import java.util.Scanner;

public class Main {
    
    
    public static void main(String[] args) {
    
    
        Scanner sc = new Scanner(System.in);
        int T = sc.nextInt();
        for (int k = 0; k < T; k++) {
    
    
            int n = sc.nextInt();
            if (n >= 2 && n <= 50){
    
    
                int[][] num = new int[n][n];
                for (int i = 0; i < n; i++) {
    
    
                    for (int j = 0; j < n; j++) {
    
    
                        num[i][j] = sc.nextInt();
                    }
                }
                boolean flag = true;
                //竖
                for (int i = 0; i < n; i++) {
    
    
                    for (int j = 0; j < n/2; j++) {
    
    
                        if (!(num[i][j] == num[i][n-j-1])){
    
    
                            flag = false;
                        }
                    }
                }
                //横
                for (int i = 0; i < n; i++) {
    
    
                    for (int j = 0; j < n/2; j++) {
    
    
                        if (!(num[j][i] == num[n-j-1][i])){
    
    
                            flag = false;
                        }
                    }
                }
                if (flag){
    
    
                    System.out.println("yes");
                }else {
    
    
                    System.out.println("no");
                }
            }
        }
    }
}

3. Remarques

  1. Une matrice symétrique fait référence à une matrice avec la diagonale principale comme axe de symétrie, et chaque élément correspond à la même matrice. En algèbre linéaire, une matrice symétrique est une matrice carrée dont la transposée est égale à elle-même.
  2. Le produit de deux matrices symétriques est symétrique si et seulement si la multiplication des deux est commutative. Deux multiplications matricielles symétriques réelles sont commutatives si et seulement si leurs espaces propres sont les mêmes.
  3. Toute matrice carrée X dont les éléments appartiennent à un corps de valeurs propres autres que 2 (comme les nombres réels) peut s'écrire comme la somme d'une matrice symétrique et d'une matrice à symétrie oblique d'une seule manière
  4. Une matrice est à la fois symétrique et obliquement symétrique si et seulement si tous les éléments sont nuls.

Je suppose que tu aimes

Origine blog.csdn.net/m0_65144570/article/details/127098762
conseillé
Classement