Führen Sie bei einer positiven Ganzzahl n
die folgenden Schritte aus (und geben Sie jede Stufe aus):
- Beginnen Sie mit einer Liste mit
n
Kopien vonn
. - mache die folgenden
n
Zeiten: - im
i
ten Schritt verringert allmählich deni
te Eintrag in der Liste , bis es erreichti
So zum Beispiel , wenn die angegebenen n
ist 4
, dann mit Sie beginnen [4,4,4,4]
und dann im ersten Schritt haben Sie [3,4,4,4]
, [2,4,4,4]
, [1,4,4,4]
. Im zweiten Schritt haben Sie [1,3,4,4]
, [1,2,4,4]
. Im dritten Schritt haben Sie [1,2,3,4]
. Beim vierten Schritt wird nichts unternommen.
Ihre Ausgabe ist also [[4,4,4,4],[3,4,4,4],[2,4,4,4],[1,4,4,4],[1,3,4,4],[1,2,4,4],[1,2,3,4]]
.
Jedes sinnvolle Eingabe- / Ausgabeformat ist zulässig.
Es gelten Standardlücken . Das ist Code-Golf : Die Antwort mit der geringsten Anzahl an Bytes gewinnt.
code-golf
array-manipulation
Undichte Nonne
quelle
quelle
i
th immer 1-indiziert ist.Antworten:
Gelee , 9 Bytes
Probieren Sie es online!
Wie?
* Es ist möglicherweise einfacher zu sehen, was mit dem oben verwendeten kartesischen Produkt mit einer anderen Eingabe passiert:
quelle
R ,
838274 BytesProbieren Sie es online!
Anstelle einer doppelten for-Schleife
while
genügt hier eine Schleife: Wir finden den ersten Index, bei dem die Liste größer als der Index ist, und dekrementieren dort.K
hatTRUE
wo auch immerN[i]>i
,which(K)
gibt die wahren Indizes zurück, und wir nehmen die ersten mit[1]
.quelle
Gelee , 12 Bytes
Probieren Sie es online!
quelle
JavaScript (ES6), 75 Byte
Probieren Sie es online!
quelle
APL + WIN, 54 Bytes
Fordert zur Eingabe einer Ganzzahl auf
Gibt eine Matrix aus, wobei jede Zeile das Ergebnis jedes Schritts darstellt, z. B. für 4:
quelle
Jelly , 11 Bytes
Probieren Sie es online!
Wie es funktioniert
quelle
Python 3 , 91 Bytes
Probieren Sie es online!
quelle
Java (OpenJDK 8) , 135 Byte
Probieren Sie es online!
Erläuterung:
Kredit:
-8 Bytes dank Jonathan Frech !
-16 Bytes dank Kevin Cruijssen !
-1 Byte danke an Okx !
quelle
import java.util.*;
ist ein Teil der Byteanzahl, fürchte ich. Und @ JonathanFrech Code kann durch die Umsetzung von 4 weiterem Bytes golfed werden ,,i=0
nachdem dasr[]
und das Ändern<-~a
an<=a
. ( Versuchen Sie es online. 144 Bytes ) (und ich änderte~-i
,i-1
um es lesbarer zu machen ..)import java.util.*;
Verwendung vonjava.util.Arrays x=null;
undx.fill
und loszuwerdenx.toString
. (Beachten Sie, dass Ihre aktuelle Lösung 155 Bytes mit der erforderlichen istimport java.util.*;
.)for(;r[i-1]>i;
anstattfor(;r[i-1]!=i;
.++i<=a
auf gespeichert werdeni++<a
.for(r[0]++;i<a;r[i++]++)for(;--r[i]>i;System.out.print(x.toString(r)));
. :) Versuchen Sie es online 135 BytesHaskell,
69 67 6563 BytesRekursive Definition:
Danke an Laikoni für 2 Bytes!
quelle
map
ist bei einem Listenverständnis zwei Bytes kürzer: Probieren Sie es online aus!PHP, 153 Bytes
Probieren Sie es online!
Code
Ich werde versuchen, die Bytes zu verringern oder die rekursive Funktion zu beenden
Erläuterung
quelle
Python 2 ,
8076 BytesProbieren Sie es online!
Etwas verschwenderisch, wenn man zwei
print
Aussagen hat, aber ich kann mir im Moment keinen besseren Weg vorstellen.quelle
Python 2 , 70 Bytes
-2 Bytes dank @LeakyNun
-2 Bytes dank @JonathanFrech
Probieren Sie es online!
quelle
(I-1)
->~-I
i=I
und dekrementieren.Java (JDK 10) , 112 Byte
Probieren Sie es online!
quelle
J ,
17-15BytesProbieren Sie es online!
Erläuterung
quelle
Retina , 49 Bytes
Probieren Sie es online! Erläuterung:
Konvertieren Sie die Eingabe in Unary.
Erstellen Sie eine Liste von n Kopien, von
i,n
deneni
der Index der Kopie ist.Drucken Sie nichts (wenn die Schleife beendet ist).
Schleife, bis sich das Muster nicht mehr ändert.
Löschen Sie vorübergehend das
i
s und konvertieren Sie dasn
s in dezimal und geben Sie es aus.Nehmen Sie den ersten Listeneintrag, dessen Wert den Index überschreitet, und dekrementieren Sie ihn.
quelle
Python 3 ,
706765 BytesProbieren Sie es online!
Ungolfed-Version:
quelle
C (Klirren) ,
131141 BytesProbieren Sie es online!
Dies funktioniert für alle
n
bis zu 99. TIO schneidet die Ausgabe ab. Es kann beliebig größer unterstützt werden,n
indem die Größe des Arrays geändert wird,m
wenn der Speicher dies zulässt.Das Folgende ist auf n = 1..9 begrenzt, aber wesentlich kürzer
C (Klirren) ,
8992 BytesProbieren Sie es online!
Aktualisiert: Geändert, um Abhängigkeit von statischer Initialisierung zu vermeiden
quelle
static/global initialization because multiple test cases
ist nicht erlaubt, da Funktionen mehrfach aufrufbar sein müssen.m[j]--,p()
aufp(m[j]--)
und speichern ein Byte.Clojure, 132 Bytes
Ich hatte gehofft, dass es kürzer wird ...
Weniger statusbehaftet, aber länger bei 141 Bytes:
quelle
Python 3, 101 Bytes
Wahrscheinlich könnte ich mit dem Ausdruck mehr Golf spielen, aber ich bin nicht auf meinem Computer und bin mir nicht ganz sicher, welche Regeln Python 2 für das Festlegen einer zu druckenden Variablen anwendet. Ich werde später aktualisieren, wenn ich an einen Computer komme oder wenn jemand in den Kommentaren klarstellt.
quelle
K (ngn / k) ,
3432 BytesProbieren Sie es online!
quelle