Inspiriert von dieser Stapelüberlauf-Frage .
Die Herausforderung
Eingang
Ein Array von quadratischen Matrizen, die nicht negative ganze Zahlen enthalten.
Ausgabe
Eine quadratische Matrix, die wie folgt aus den Eingangsmatrizen aufgebaut ist.
Sei die Größe jeder Eingangsmatrix und die Anzahl der Eingangsmatrizen.
Betrachten Sie zur Verdeutlichung die folgenden Beispiel-Eingabematrizen ( , ):
3 5
4 10
6 8
12 11
2 0
9 1
- Beginnen Sie mit der ersten Eingabematrix.
- Verschieben Sie die zweite Eingabematrix N - 1 Schritte nach unten und N - 1 Schritte nach rechts, so dass ihr linker oberer Eintrag mit dem rechten unteren Eintrag des vorherigen übereinstimmt.
Stellen Sie sich die zweite verschobene Matrix so vor, als ob sie über der ersten gestapelt wäre. Summieren Sie die beiden Werte bei der übereinstimmenden Eingabe. Schreiben Sie die anderen Werte und füllen Sie die restlichen Einträge mit
0
, um eine Matrix zu erhalten. Bei der Beispieleingabe ist das bisherige Ergebnis3 5 0 4 16 8 0 12 11
Versetzen Sie die verbleibenden Eingabematrizen so, dass ihre obere linke Seite mit der unteren rechten Seite der akkumulierten Ergebnismatrix übereinstimmt. Im Beispiel ergibt sich einschließlich der dritten Eingabematrix
3 5 0 0 4 16 8 0 0 12 13 0 0 0 9 1
Die Ausgabe ist die Matrix, die nach Einbeziehen der letzten Eingabematrix erhalten wird.
Zusätzliche Regeln und Erläuterungen
- P und sind positive ganze Zahlen.
- Optional können Sie und als zusätzliche Eingänge verwenden.
- Eingabe und Ausgabe können mit jedem vernünftigen Mittel erfolgen . Ihr Format ist wie gewohnt flexibel.
- Programme oder Funktionen sind in jeder Programmiersprache zulässig . Standardlücken sind verboten .
- Kürzester Code in Bytes gewinnt.
Testfälle:
In jedem Fall werden zuerst Eingabematrizen und dann die Ausgabe angezeigt.
, :
3 5 4 10 6 8 12 11 2 0 9 1 3 5 0 0 4 16 8 0 0 12 13 0 0 0 9 1
, :
3 5 4 10 3 5 4 10
, :
4 7 23 5 39
, :
11 11 8 6 8 12 11 0 4 4 1 13 9 19 11 13 4 2 11 11 8 0 0 6 8 12 0 0 11 0 8 1 13 0 0 9 19 11 0 0 13 4 2
, :
14 13 10 0 13 20 21 3 9 22 0 8 17 3 19 16 14 13 0 0 0 10 13 20 0 0 0 21 12 22 0 0 0 0 25 3 0 0 0 19 16
quelle
Antworten:
Jelly ,
1512 BytesProbieren Sie es online!
Wie es funktioniert
quelle
R ,
8881 BytesProbieren Sie es online!
Nimmt eine
list
von MatrizenA
,N
undP
.Erstellt die erforderliche Nullmatrix
o
und fügt den InhaltA
der entsprechenden Untermatrizen in elementweise hinzuo
.quelle
JavaScript (ES6), 102 Byte
Übernimmt die Eingabe als
(n,p,a)
.Probieren Sie es online!
Wie?
Dabei werden undefinierte Zellen durch Nullen ersetzt.
quelle
Python 2 , 124 Bytes
Probieren Sie es online!
quelle
Gelee , 12 Bytes
Probieren Sie es online!
12 Bytes
Wenn zusätzliche Nullen zulässig sind,
ZŻ€‘ɼ¡)⁺S
ist dies eine coole 9-Byte-Lösung. TIO .quelle
Gelee , 20 Bytes
Probieren Sie es online!
Bah, Jelly hat heute eine Einstellung ...
quelle
Pip , 37 Bytes
Eine Funktion, die eine Liste von Listen von Listen nimmt. Probieren Sie es online!
quelle
Python 2 , 124 Bytes
Probieren Sie es online!
quelle
Holzkohle , 52 Bytes
Probieren Sie es online! Der Link ist eine ausführliche Version des Codes und enthält zwei Bytes für eine etwas brauchbare Formatierung. Ich begann mit einer Version, die alle Arrays auffüllte und dann summierte, aber ich konnte diese Version kürzer spielen. Erläuterung:
Stellen Sie sicher, dass keiner der Indizes außerhalb des Bereichs liegt.
In die ursprüngliche Eingabe versetzen, um den gewünschten Wert abzurufen.
quelle