Tujuan dari tantangan ini adalah untuk membuat program yang mengambil dalam matriks dan output bentuk eselon baris berkurang.
Matriks dalam bentuk eselon baris tereduksi jika memenuhi semua kondisi berikut:
- Jika ada baris di mana setiap entri adalah nol, maka baris ini terletak di bawah baris lain yang berisi entri bukan nol.
- Entri bukan nol paling kiri dari sebuah baris sama dengan
1
.- Entri bukan nol paling kiri dari satu baris adalah satu-satunya entri bukan nol di kolomnya.
- Pertimbangkan dua entri bukan nol paling kiri yang berbeda, satu terletak di baris i, kolom j dan yang lainnya terletak di baris s, kolom t. Jika
s>i
demikiant>j
.
Proses umum untuk mengubah matriks adalah:
- Berurusan dengan setiap baris i dari 1 sampai n secara bergantian, dan bekerja melintasi kolom j dari 1 hingga m melewatkan kolom dari semua entri nol.
- Temukan kolom berikutnya j dengan entri bukan nol.
- Baris pertukaran, jika perlu, sehingga elemen pivot A (i, j) adalah nol.
- Buat pivot sama dengan 1 dengan membagi setiap elemen dalam baris pivot dengan nilai pivot.
- Buat semua elemen di atas dan di bawah pivot sama dengan 0 dengan mengurangi kelipatan baris pivot yang cocok dari setiap baris lainnya.
- Ulangi untuk semua baris.
Jika Anda ingin membaca lebih lanjut tentang jenis matriks ini, lihat artikel Wikipedia di atasnya dan alat dan artikel (langkah-langkah di atas) yang menunjukkan langkah-langkah untuk mengubah matriks.
Adapun tantangan yang sebenarnya, ini dia:
Masukan dapat diberikan dengan cara apa pun yang Anda inginkan melalui STDIN atau yang setara, cukup jelaskan dalam jawaban Anda. Output akan berupa bentuk eselon baris tereduksi dari input dalam bentuk yang sama dengan input melalui STDOUT atau yang setara. Celah standar tidak diperbolehkan dan perpustakaan eksternal atau fungsi yang melakukan tugas ini juga tidak diperbolehkan ( TI-BASIC
's rref(
perintah, misalnya). Anda dapat menulis program atau fungsi lengkap. Ini adalah kode golf, kemenangan BYTES terendah. Semoga berhasil!
Input Contoh: [[2,1,1,14][-1,-3,2,-2][4,-6,3,-5]]
Contoh Output: [[1,0,0,1][0,1,0,5][0,0,1,7]]
method(ref(matrix))
, maka saya akan katakan maju