(inspiré par cette question sur Math)
Les définitions
Étant donné une n x n
matrice carrée A , nous pouvons l'appeler invertible
s'il existe une n x n
matrice carrée B telle que AB = BA = I n , I n étant la matrice d'identité de taille n x n
(la matrice avec la diagonale principale 1
s et tout le reste 0
), et AB et BA représentant la multiplication matricielle habituelle (je n'entrerai pas dans le détail ici - allez prendre une classe d'algèbre linéaire).
De là, on peut appeler une m x n
matrice C totally invertible
si chaque k x k
sous - matrice (défini ci - dessous) de C est inversible pour tous k > 1
, k <= (smaller of m,n)
.
Une sous-matrice est définie comme la matrice résultante après la suppression d'un nombre quelconque de lignes et / ou de colonnes de la matrice d'origine. Par exemple, la 3x3
matrice C ci-dessous peut être transformée en 2x2
sous - matrice C ' en supprimant la première ligne 1 2 3
et la colonne du milieu 2 5 8
comme suit:
C = [[1 2 3]
[4 5 6] --> C' = [[4 6]
[7 8 9]] [7 9]]
Notez qu'il existe de nombreuses possibilités de sous-matrice différentes, ce qui précède n'est qu'un exemple. Ce défi ne concerne que ceux où la sous-matrice résultante est une k x k
matrice carrée .
Le défi
Étant donné une matrice d'entrée, déterminez si elle est totalement inversible ou non.
L'entrée
- Une seule matrice de taille
m x n
, dans n'importe quel format approprié . - Sans perte de généralité, vous pouvez supposer
m <= n
oum >= n
, selon ce qui est golfeur pour votre code, et prendre la saisie de cette façon (c'est-à-dire que vous obtenez une opération de transposition gratuite si vous le souhaitez). - La taille de la matrice d'entrée ne sera ni inférieure
3 x 3
ni supérieure à celle que votre langue peut gérer. - La matrice d'entrée sera constituée uniquement de valeurs numériques de Z + (les entiers positifs ).
Le résultat
- Une valeur truey / falsey pour savoir si la matrice d'entrée est totalement inversible.
Les règles
- Un programme complet ou une fonction sont acceptables.
- Les failles standard sont interdites.
- Il s'agit de code-golf, donc toutes les règles de golf habituelles s'appliquent et le code le plus court (en octets) l'emporte.
Les exemples
Truthy
[[1 2 3]
[2 3 1]
[3 1 2]]
[[2 6 3]
[1 12 2]
[5 3 1]]
[[1 2 3 4]
[2 3 4 1]
[3 4 1 2]]
[[2 3 5 7 11]
[13 17 19 23 29]
[31 37 41 43 47]]
Falsey
[[1 2 3]
[4 5 6]
[7 8 9]]
[[1 6 2 55 3]
[4 5 5 5 6]
[9 3 7 10 4]
[7 1 8 23 9]]
[[2 3 6]
[1 2 12]
[1 1 6]]
[[8 2 12 13 2]
[12 7 13 12 13]
[8 1 12 13 5]]
6
coin, pas un 7
. Fautes de frappe maladroites.
2 6 3; 1 12 2; 5 3 1
?