Dato un array intero di almeno due elementi, emette il Matrix-Vector (definito di seguito) dell'array.
Per calcolare Matrix-Vector , prima ruota attraverso l' n
array input-size per creare una matrice di size n x n
, con il primo elemento dell'array che segue la diagonale principale. Questo costituisce la porzione di matrice. Per il vettore, capovolgi verticalmente l'array di input. Quindi eseguire la moltiplicazione della matrice normale. Il vettore di output è il risultato.
Per esempio,
a = [1, 2, 3]
Innanzitutto, ruota l'array due volte a destra, per ottenere [3, 1, 2]
e [2, 3, 1]
, quindi, impilarli per formare una 3x3
matrice
[[1, 2, 3]
[3, 1, 2]
[2, 3, 1]]
Quindi, capovolgi l'array in verticale per formare il vettore
[[1, 2, 3] [[1]
[3, 1, 2] x [2]
[2, 3, 1]] [3]]
Eseguire la solita moltiplicazione di matrice
[[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 l'output è [14, 11, 11]
o [[14], [11], [11]]
(la tua scelta se è appiattito o meno).
Esempio n. 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]
Regole
- Si può presumere che l'input e l'output si adattino al tipo intero nativo della tua lingua.
- L'input e l'output possono essere forniti in qualsiasi formato conveniente .
- È accettabile un programma completo o una funzione. Se una funzione, è possibile restituire l'output anziché stamparlo.
- Se possibile, includi un collegamento a un ambiente di test online in modo che altre persone possano provare il tuo codice!
- Sono vietate le scappatoie standard .
- Si tratta di code-golf, quindi si applicano tutte le normali regole del golf e vince il codice più breve (in byte).
(v*2)[i+j]
bel trucco