Bei einem ganzzahligen Array von mindestens zwei Elementen wird der unten definierte Matrix-Vektor des Arrays ausgegeben .
Um den Matrix-Vektor zu berechnen , drehen Sie sich zuerst durch das Größeneingabearray n
, um eine Größenmatrix zu erstellen n x n
, wobei das erste Element des Arrays der Hauptdiagonale folgt. Dies bildet den Matrixteil. Drehen Sie für den Vektor das Eingabearray vertikal. Führen Sie dann eine normale Matrixmultiplikation durch. Der Ausgabevektor ist das Ergebnis.
Beispielsweise,
a = [1, 2, 3]
Drehen Sie zuerst das Array zweimal nach rechts, um eine Matrix zu erhalten, [3, 1, 2]
und [2, 3, 1]
stapeln Sie sie dann, um eine 3x3
Matrix zu bilden
[[1, 2, 3]
[3, 1, 2]
[2, 3, 1]]
Drehen Sie das Array anschließend vertikal, um den Vektor zu bilden
[[1, 2, 3] [[1]
[3, 1, 2] x [2]
[2, 3, 1]] [3]]
Führen Sie die übliche Matrixmultiplikation durch
[[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]]
Und die Ausgabe ist [14, 11, 11]
oder [[14], [11], [11]]
(Ihre Wahl, ob sie abgeflacht ist oder nicht).
Beispiel # 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]
Regeln
- Es kann davon ausgegangen werden, dass die Eingabe und Ausgabe in den systemeigenen Ganzzahltyp Ihrer Sprache passen.
- Die Ein- und Ausgabe kann in jedem beliebigen Format erfolgen .
- Es ist entweder ein vollständiges Programm oder eine Funktion zulässig. Bei einer Funktion können Sie die Ausgabe zurückgeben, anstatt sie zu drucken.
- Fügen Sie nach Möglichkeit einen Link zu einer Online-Testumgebung hinzu, damit andere Benutzer Ihren Code ausprobieren können!
- Standardlücken sind verboten.
- Dies ist Codegolf, daher gelten alle üblichen Golfregeln, und der kürzeste Code (in Byte) gewinnt.
(v*2)[i+j]
netter Trick