Betrachten Sie die unendliche Matrix:
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
0 0 2 3 0 0 2 3 0 0 2 3 0 0 2 3
0 0 0 4 5 6 0 0 0 4 5 6 0 0 0 4 ...
0 0 0 0 7 8 9 10 0 0 0 0 7 8 9 10
0 0 0 0 0 11 12 13 14 15 0 0 0 0 0 11
...
Jede neue Zeile der Matrix wird erstellt, indem mit z
Nullen begonnen wird. Dabei z
handelt es sich um die Länge der positiven Ziffern, die wir in dieser Zeile verwenden. Die positiven Ziffern werden erstellt, 1
indem jedes Mal, wenn Sie Zeilen durchlaufen, mit einer zusätzlichen Ziffer begonnen, diese erhöht und hinzugefügt wird. Dieses Muster wird unendlich rechts wiederholt. So beginnt beispielsweise die erste Reihe, 0, 1, 0, 1...
während die zweite Reihe beginnt 0,0, 2,3, 0,0, 2,3...
. Nach dem Muster beginnt die dritte Reihe 0,0,0, 4,5,6, 0,0,0, 4,5,6...
.
Geben Sie zwei Ganzzahlen als Eingabe ein n
und x
geben Sie die ersten (obersten) x
Zahlen der n
achten Spalte der obigen Matrix aus. (Sie können 0- oder 1-Indizierung für die Spalten auswählen, geben Sie einfach an, welche in Ihrer Einreichung.)
Bei der Eingabe n = 0
(0-indiziert) ist die Spalte beispielsweise vollständig 0
s, sodass die Ausgabe nur x
0
s ist.
Für Eingabe n = 15
und x = 6
Ausgabe wäre [1, 3, 4, 10, 11, 0]
.
Für Eingabe n = 29
und x = 15
Ausgabe wäre [1, 0, 6, 8, 15, 0, 0, 34, 39, 0, 0, 0, 0, 0, 120]
.
Für Eingabe n = 99
und x = 25
Ausgabe wäre [1, 3, 4, 0, 15, 0, 0, 0, 37, 55, 56, 0, 87, 93, 0, 0, 151, 163, 176, 0, 0, 0, 0, 0, 325]
.
I / O und Regeln
- Die Eingabe und Ausgabe kann durch jede bequeme Methode erfolgen .
- Es kann davon ausgegangen werden, dass die Eingabe und Ausgabe in den Typ Ihrer Muttersprache passen.
- 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.
- Standardlücken sind verboten.
- Dies ist Codegolf, daher gelten alle üblichen Golfregeln, und der kürzeste Code (in Byte) gewinnt.
n=1
da das ergebnis von sapply nicht mehr in einer matrix ist. Dieses Update ist teuer. Ich frage mich, ob es ein Golfspiel gibt.rep
mit einemn
in das zu indizierensapply
, was ein Byte sparte, aber dann fiel mir ein, dassfor
Schleifen kürzer sind alssapply
da ich keine Funktion definieren müsste.Python 2 , 69 Bytes
Probieren Sie es online!
quelle
APL (Dyalog Classic) ,
272423 Bytes-1 danke an @FrownyFrog
Probieren Sie es online!
quelle
MATL ,
2518 BytesProbieren Sie es online!
Danke an Luis Mendo für die 6 Bytes!
Dies ist im Wesentlichen ein MATL-Port meiner R-Antwort.
quelle
K (ngn / k) ,
3331 BytesProbieren Sie es online!
quelle
Schale , 14 Bytes
Das Argument
n
(zuerst) ist 1-indiziert, versuchen Sie es online!Alternativ könnten wir
↑!TṠzo¢+†K0CNN
für die gleiche Anzahl von Bytes verwenden.Erläuterung
quelle
Schale ,
21 bis19 BytesNimmt Argumente als
n
(1-indiziert) anx
.Dank BMO 2 Byte gespart, aber immer noch nicht so kurz wie die Antwort von BMO.
Mein erster Versuch mit Husk.
Probieren Sie es online!
quelle
Haskell , 75 Bytes
Probieren Sie es online!
quelle
Python 2 , 55 Bytes
Probieren Sie es online!
Unabhängig entwickelt; aber ich stelle fest, dass dies eine Portierung von Arnauld 's Javascript-Antwort ist.
quelle
Perl 5
-n
, 52 BytesProbieren Sie es online!
quelle
Jelly , 11 Bytes
Probieren Sie es online!
-1 Danke an Jonathan Allan .
Argument 1: x
Argument 2: n + 1
quelle
0ṁ;Ɗ
->¬;$
speichert ein Byte.’R
... (zumindest für mich) Das Seltsame ist, dass ich in den letzten Tagen an die Thue-Morse-Sequenz (die in Jelly enthalten ist;¬$
) gedacht habe .05AB1E , 25 Bytes
Probieren Sie es online!
05AB1E passt zu Matrizen wie Zahnpasta und Orangensaft, aber keine schlechte Byteanzahl, wenn man bedenkt, wie schlecht meine Implementierung ist. Sogar mein Code lacht mich aus "
LO©L
".quelle
Holzkohle , 19 Bytes
Probieren Sie es online! Link ist eine ausführliche Version des Codes. Erläuterung:
Das Snippet
EιL⊞Oυω
generiert die nächsteni
Ganzzahlen, indem es einen Dummy-Wert zu einem Array schiebt, der die Schleife durchläuft, und die Länge des resultierenden Arrays nimmt.quelle
Java 8,
656360 Bytesn
ist 0-indiziert,x
ist 1-indiziert, gibt die durch Zeilenumbrüche getrennten und umgekehrten Zahlen aus.Antwort von Port of @ Arnauld auf JavaScript (ES6) .
Probieren Sie es online aus.
Ein hübsch gedrucktes Ergebnis in der richtigen Reihenfolge ist
8 bis6 Byte länger: Probieren Sie es online aus.quelle
Haskell, 67 Bytes
Probieren Sie es online!
quelle