Diberikan array integer setidaknya dua elemen, output Matrix-Vector (didefinisikan di bawah) dari array.
Untuk menghitung Matriks-Vektor , pertama-tama putar melalui n
array input -ukuran untuk membuat matriks ukuran n x n
, dengan elemen pertama dari array mengikuti diagonal utama. Ini membentuk bagian matriks. Untuk vektor, balik array input secara vertikal. Kemudian lakukan perkalian matriks normal. Vektor keluaran adalah hasilnya.
Sebagai contoh,
a = [1, 2, 3]
Pertama, putar array dua kali ke kanan, untuk mendapatkan [3, 1, 2]
dan [2, 3, 1]
, kemudian susun mereka untuk membentuk 3x3
matriks
[[1, 2, 3]
[3, 1, 2]
[2, 3, 1]]
Selanjutnya, balikkan array secara vertikal untuk membentuk vektor
[[1, 2, 3] [[1]
[3, 1, 2] x [2]
[2, 3, 1]] [3]]
Lakukan perkalian matriks biasa
[[1, 2, 3] [[1] [[1+4+9] [[14]
[3, 1, 2] x [2] = [3+2+6] = [11]
[2, 3, 1]] [3]] [2+6+3]] [11]]
Dan hasilnya adalah [14, 11, 11]
atau [[14], [11], [11]]
(pilihan Anda apakah itu rata atau tidak).
Contoh # 2
a = [2, 5, 8, 3]
[[2, 5, 8, 3] [[2] [[4+25+64+9] [[102]
[3, 2, 5, 8] x [5] = [6+10+40+24] = [80]
[8, 3, 2, 5] [8] [16+15+16+15] [62]
[5, 8, 3, 2]] [3]] [10+40+24+6]] [80]]
[102, 80, 62, 80]
Aturan
- Input dan output dapat dianggap sesuai dengan tipe integer asli bahasa Anda.
- Input dan output dapat diberikan dalam format apa pun yang nyaman .
- Program lengkap atau fungsi dapat diterima. Jika suatu fungsi, Anda dapat mengembalikan output daripada mencetaknya.
- Jika memungkinkan, harap sertakan tautan ke lingkungan pengujian online agar orang lain dapat mencoba kode Anda!
- Celah standar dilarang.
- Ini adalah kode-golf sehingga semua aturan golf biasa berlaku, dan kode terpendek (dalam byte) menang.
(v*2)[i+j]
trik yang bagus