Dada uma matriz inteira de pelo menos dois elementos, produza o vetor matriz (definido abaixo) da matriz.
Para calcular o vetor de matriz , primeiro gire pela n
matriz de tamanho- entrada para criar uma matriz de tamanho n x n
, com o primeiro elemento da matriz seguindo a diagonal principal. Isso forma a parte da matriz. Para o vetor, vire a matriz de entrada verticalmente. Em seguida, execute a multiplicação normal da matriz. O vetor de saída é o resultado.
Por exemplo,
a = [1, 2, 3]
Primeiro, gire a matriz duas vezes para a direita, para obter [3, 1, 2]
e [2, 3, 1]
, em seguida, empilhe-as para formar uma 3x3
matriz
[[1, 2, 3]
[3, 1, 2]
[2, 3, 1]]
Em seguida, vire a matriz verticalmente para formar o vetor
[[1, 2, 3] [[1]
[3, 1, 2] x [2]
[2, 3, 1]] [3]]
Realizar multiplicação matricial usual
[[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]]
E a saída é [14, 11, 11]
ou [[14], [11], [11]]
(sua escolha é achatada ou não).
Exemplo 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]
Regras
- Pode-se presumir que a entrada e a saída se encaixam no tipo inteiro nativo do seu idioma.
- A entrada e saída podem ser fornecidas em qualquer formato conveniente .
- Um programa completo ou uma função são aceitáveis. Se uma função, você pode retornar a saída em vez de imprimi-la.
- Se possível, inclua um link para um ambiente de teste on-line para que outras pessoas possam experimentar seu código!
- As brechas padrão são proibidas.
- Isso é código-golfe, portanto todas as regras usuais de golfe se aplicam e o código mais curto (em bytes) vence.
(v*2)[i+j]
bom truque #