(数学に関するこの質問に触発された)
定義
与えられたn x n
正方行列A、我々はそれを呼び出すことができますinvertible
いくつか存在する場合はn x n
、正方行列BとなるようにAB = BA = I NとI nは大きさの単位行列であることn x n
(主対角の行列1
sおよび何か他のもの0
)、およびABそして、通常の行列乗算を表すBA(ここでは説明しません-線形代数クラスを取ります)。
それから、我々は呼び出すことができますm x n
行列Cを totally invertible
、すべての場合k x k
の部分行列(以下に定義)Cはすべてのために可逆でk > 1
、k <= (smaller of m,n)
。
サブマトリックスは、元のマトリックスから任意の数の行や列を削除した結果のマトリックスとして定義されます。たとえば、次の3x3
行列Cは、次のように最初の行と中央の列を削除することにより、2x2
部分行列C 'に変換できます。1 2 3
2 5 8
C = [[1 2 3]
[4 5 6] --> C' = [[4 6]
[7 8 9]] [7 9]]
サブマトリックスにはさまざまな可能性があることに注意してください。上記は単なる例です。この課題は、結果の部分行列がk x k
正方行列である場合にのみ関係します。
チャレンジ
入力行列が与えられたら、それが完全に可逆かどうかを判断します。
入力
- サイズの単一マトリックス
m x n
に、任意の適切なフォーマット。 - 一般性を失うことなく、
m <= n
またはのm >= n
どちらかをコードのゴルファーとみなし、その方法で入力を取得できます(つまり、必要に応じて転置操作を無料で取得できます)。 - 入力行列のサイズはで
3 x 3
、あなたの言語が処理できるより大きくなりません。 - 入力行列は、Z +(正の整数)の数値のみで構成されます。
出力
- truthy / falseyのかどうか、入力行列の値は完全に可逆です。
ルール
例
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
はaではなく隅にあるはず7
です。不器用なタイプミス。
2 6 3; 1 12 2; 5 3 1
ますか?