Давши цілий масив щонайменше з двох елементів, виведіть вектор матриці (визначений нижче) масиву.
Щоб обчислити вектор матриці , спершу обертайтеся через n
масив введення розміру n x n
, щоб створити матрицю розміру , причому перший елемент масиву слід за основною діагоналлю. Це утворює матричну частину. Для вектора переверніть вхідний масив вертикально. Потім виконайте нормальне множення матриці. Вихідний вектор - результат.
Наприклад,
a = [1, 2, 3]
Спочатку оберніть масив два рази вправо, щоб отримати, [3, 1, 2]
а [2, 3, 1]
потім складіть їх, щоб утворити 3x3
матрицю
[[1, 2, 3]
[3, 1, 2]
[2, 3, 1]]
Далі переверніть масив вертикально, щоб сформувати вектор
[[1, 2, 3] [[1]
[3, 1, 2] x [2]
[2, 3, 1]] [3]]
Виконайте звичайне матричне множення
[[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]]
І вихід є [14, 11, 11]
або [[14], [11], [11]]
(ваш вибір, згладжений він чи ні).
Приклад №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]
Правила
- Можна вважати, що вхід і вихід відповідають цілому цілому типу вашої мови.
- Введення та вихід можуть бути задані у будь-якому зручному форматі .
- Прийнятна або повна програма, або функція. Якщо функція, ви можете повернути вихід, а не надрукувати його.
- Якщо можливо, додайте посилання на онлайн-тестувальне середовище, щоб інші люди могли спробувати ваш код!
- Стандартні лазівки заборонені.
- Це код-гольф, тому застосовуються всі звичайні правила гольфу, і найкоротший код (у байтах) виграє.
(v*2)[i+j]
приємна хитрість