In einer mehrdimensionalen Steampunk-Welt möchte unser Chef gedruckte Indexetiketten an jeder Schublade im mehrdimensionalen Aktenschrank unseres Konglomerats anbringen.
Der Chef möchte den gesamten Beschriftungsbogen als eine einzige Form mit einer nur für diesen Zweck gekauften Schrift setzen, also müssen wir die Sortierungen ( Metallsymbolstücke) bestellen . Da Sorten sehr teuer sind, muss in unserer Bestellung die genaue Anzahl der einzelnen Ziffern angegeben werden.
Geben Sie für einen gegebenen Satz von Längen mit Dimensionen ≥ 0 (mit allen Mitteln) unsere Reihenfolge zurück, die die Häufigkeitstabelle der Ziffern ist, die zum Setzen aller kartesischen Koordinaten erforderlich ist. Es muss nach der Reihenfolge des Aussehens der Tastatur geordnet sein (dh 0 nach 9) und darf keine Sortierungen von 0 enthalten. Wenn also überhaupt keine Sortierungen bestellt werden sollen (weil eine Dimension die Länge 0 hat), muss die Reihenfolge der Sortierungen 0 sein. drucke nichts.
- Bonus von -3 Sortierungen, wenn Ihr Code auch 0 Dimensionen verarbeiten kann (dh nichts drucken kann).
- Letzte Zeilenumbrüche sind akzeptabel.
- Es gilt das Verbot von Standardlücken.
- Wie gesagt , Sorten sind teuer, das ist also Codecolf .
Eine freundliche Seele kann diese Herausforderung so bearbeiten, dass sie automatisiertes Scoring enthält. Fügen Sie daher einen Header wie den folgenden hinzu:# LanguageName, 123 sorts
Testfälle
Gegeben 11
, drucken:
1 4
2 1
3 1
4 1
5 1
6 1
7 1
8 1
9 1
0 1
weil die benötigten Etiketten 1
, 2
, 3
, 4
, 5
, 6
, 7
, 8
, 9
, 10
, und 11
.
Gegeben 2 3
, drucken:
1 5
2 5
3 2
weil die benötigten Etiketten 1 1
, 1 2
, 1 3
, 2 1
, 2 2
, und 2 3
.
Gib 2 0
eine leere Zeile aus:
oder nichts.
Gegeben 1 2 3
, drucken:
1 11
2 5
3 2
weil die benötigten Etiketten 1 1 1
, 1 1 2
, 1 1 3
, 1 2 1
, 1 2 2
, und1 2 3
Gegeben 5 5 5 5
, drucken:
1 500
2 500
3 500
4 500
5 500
Und nein, ich werde nicht alle 625 Labels auflisten.
Antworten:
Dyalog APL,
107Der Code ist 10 Bytes lang und qualifiziert sich für den Bonus.
Danke an user46915 für 3 Bytes!
Beachten Sie, dass
⎕
(Eingabe) bei TryAPL nicht funktioniert. Sie können die Funktion Form versuchen hier .Ich verstehe den
⌸
Operator nicht ganz, liste aber{⍺}⌸
die eindeutigen Werte auf und{⍵}⌸
liste deren Stellen im Argument auf.Dies hat die richtige Reihenfolge, da es die Reihenfolge ist, in der Ziffern in dem mehrdimensionalen Array von Beschriftungen angezeigt werden.
quelle
⌸
Key-Operators beitragen .,∘≢⌸
ohne äußere Produkte mit einzigartigen und solchen erstellen ?! Dyalog ist sicher großartig. Ist auch,∘≢⌸
kürzer als{⍺,≢⍵}⌸
.Mathematica, 48 Bytes - 3 = 45
quelle
Mathematica,
111-85BytesDie meiste Arbeit wird hier von erledigt
DigitCount
.quelle
Grid[Thread@{Range@10~Mod~10,DigitCount@Tuples@Range@#~Total~2}~DeleteCases~{_,0}]&
R, 110 Bytes
4 Dank an Alex A. gespart (danke!)
quelle
x
einmal, also solltest du in der Lage sein, das eine Vorkommen vonx
durch zu ersetzenscan()
. Auch warum zuweisenz
?x
. Ich habe die AusgabeMap
einerz
Variablen zugewiesen , sonstMap
würde die Ausgabe auf stdout ausgegeben. Eine bessere Praxis wäre zu wickelnMap
inneninvisible()
aber das ist eine Menge von Zeichen ...Ruby, 92 Bytes
Nimmt die Längen als Kommandozeilenargumente:
quelle
CJam, 31 Bytes
Probieren Sie es online aus
Der Code ist 34 Byte groß und benötigt einen 3-Byte-Bonus für die Arbeit mit leeren Eingabelisten. Die Eingabe ist eine Liste im CJam-Format, zB:
Erläuterung:
quelle
Pyth, 15 Bytes
quelle
Haskell, 125 Bytes
quelle