Dada una matriz entera de al menos dos elementos, genera el vector matriz (definido a continuación) de la matriz.
Para calcular el vector matriz , primero gire a través de la n
matriz de entrada de tamaño para crear una matriz de tamaño n x n
, con el primer elemento de la matriz siguiendo la diagonal principal. Esto forma la porción de la matriz. Para el vector, voltee la matriz de entrada verticalmente. Luego realice la multiplicación normal de la matriz. El vector de salida es el resultado.
Por ejemplo,
a = [1, 2, 3]
Primero, gire la matriz dos veces hacia la derecha, para obtener [3, 1, 2]
y [2, 3, 1]
luego apílelos para formar una 3x3
matriz
[[1, 2, 3]
[3, 1, 2]
[2, 3, 1]]
Luego, voltea la matriz verticalmente para formar el vector
[[1, 2, 3] [[1]
[3, 1, 2] x [2]
[2, 3, 1]] [3]]
Realizar la multiplicación matricial habitual
[[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]]
Y la salida es [14, 11, 11]
o [[14], [11], [11]]
(su elección de si está aplanada o no).
Ejemplo # 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]
Reglas
- Se puede suponer que la entrada y la salida se ajustan al tipo de entero nativo de su idioma.
- La entrada y la salida se pueden dar en cualquier formato conveniente .
- Un programa completo o una función son aceptables. Si es una función, puede devolver el resultado en lugar de imprimirlo.
- Si es posible, incluya un enlace a un entorno de prueba en línea para que otras personas puedan probar su código.
- Las lagunas estándar están prohibidas.
- Este es el código de golf, por lo que se aplican todas las reglas habituales de golf, y gana el código más corto (en bytes).
(v*2)[i+j]
buen truco