(Terinspirasi oleh pertanyaan ini di atas tentang Matematika)
Definisi
Diberikan n x n
matriks kuadrat A , kita dapat menyebutnya invertible
jika ada beberapa n x n
matriks kuadrat B sedemikian sehingga AB = BA = I n , dengan I n menjadi matriks identitas ukuran n x n
(matriks dengan diagonal utama 1
s dan apa pun yang lain 0
), dan AB dan BA yang mewakili perkalian matriks biasa (saya tidak akan membahasnya di sini - ambil kelas aljabar linier).
Dari itu, kami dapat memanggil m x n
matriks C totally invertible
jika setiap k x k
submatrix (didefinisikan di bawah) dari C dibalik untuk semua k > 1
, k <= (smaller of m,n)
.
Sebuah submatrix didefinisikan sebagai matriks yang dihasilkan setelah penghapusan sejumlah baris dan / atau kolom dari matriks asli. Sebagai contoh, 3x3
matriks C di bawah ini dapat ditransformasikan menjadi 2x2
submatrix C ' dengan menghapus baris pertama 1 2 3
dan kolom tengah 2 5 8
sebagai berikut:
C = [[1 2 3]
[4 5 6] --> C' = [[4 6]
[7 8 9]] [7 9]]
Perhatikan bahwa ada banyak kemungkinan submatrix yang berbeda, di atas hanyalah sebuah contoh. Tantangan ini hanya berkaitan dengan orang-orang di mana submatrix yang dihasilkan adalah k x k
matriks persegi .
Tantangan
Diberikan matriks input, tentukan apakah itu benar-benar tidak dapat dibalik atau tidak.
Input
- Satu matriks ukuran
m x n
, dalam format apa pun yang sesuai . - Tanpa kehilangan sifat umum, Anda dapat mengasumsikan
m <= n
ataum >= n
, yang mana golfier untuk kode Anda, dan mengambil input seperti itu (yaitu, Anda mendapatkan operasi transpos gratis jika Anda menginginkannya). - Ukuran matriks input tidak akan lebih kecil dari
3 x 3
, dan tidak lebih besar dari bahasa Anda dapat menangani. - Matriks input hanya terdiri dari nilai numerik dari Z + ( bilangan bulat positif ).
Hasil
- Nilai true / falsey untuk apakah matriks input benar-benar dapat dibalik.
Aturan
- Program lengkap atau fungsi dapat diterima.
- Celah standar dilarang.
- Ini adalah kode-golf sehingga semua aturan golf biasa berlaku, dan kode terpendek (dalam byte) menang.
Contohnya
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
di sudut, bukan a 7
. Kesalahan ketik yang canggung.
2 6 3; 1 12 2; 5 3 1
?