Verwandte: Lassen Sie uns Design eine Ziffer Mosaik , Print / Output der L-Phabet . Sandbox-Post hier
Bei 2 Eingaben C = columns and rows, S = starting point
wird eine Matrix wie folgt ausgegeben:
Input 4, 3
1 2 3 0
2 2 3 0
3 3 3 0
0 0 0 0
Erläuterung
Gegeben C = 4, S = 3
1) Erstellen Sie eine C x C
Matrix gefüllt mit0
4 columns
4 _____|____
| |
r --0 0 0 0
o | 0 0 0 0
w | 0 0 0 0
s --0 0 0 0
2) Füllen Sie die S
Zeilen und Spalten mit Werten S
, subtrahieren Sie dann 1 von S
und wiederholen Sie den Vorgang bis S = 0
. Dieser FallS = 3
Column 3
S = 3 |
v
0 0 3 0
0 0 3 0
Row 3-->3 3 3 0
0 0 0 0
Column 2
S = 2 |
v
0 2 3 0
Row 2-->2 2 3 0
3 3 3 0
0 0 0 0
Column 1
S=1 |
v
Row 1-->1 2 3 0
2 2 3 0
3 3 3 0
0 0 0 0
Final Result
1 2 3 0
2 2 3 0
3 3 3 0
0 0 0 0
Regeln
- Annehmen
C >= S >= 0
- Die Ausgabe kann eine Matrix, eine Liste von Listen, ein Array (eindimensional oder zweidimensional) usw. sein.
- Sie können Eingaben über jedes Standard-E / A-Format vornehmen
- Ihr Programm, Ihre Funktion usw. können 1-indiziert oder 0-indiziert sein. Bitte geben Sie an, um welche es sich handelt.
Hinweis: Erläuterung ist 1-Indizierung
Gewinnkriterien Code-Golf
Oktave , 31 Bytes
Anonyme Funktion, die eine Matrix zurückgibt. Verwendet 1-basierte Indizierung.
Probieren Sie es online!
quelle
Haskell ,
4745 Bytes-2 Bytes durch Ändern des Ausgabeformats in eine eindimensionale Liste.
Probieren Sie es online!
Erläuterung
Der Begriff
x >>= (<$> x) . max
ist eine Golfversion vondie auswertet zu
[1,2,3,4..c, 2,2,3,4..c, 3,3,3,4..c, ..., c,c,c,c..c]
. Jetzt müssen wir die Werte nur zwingen,0
sobald sie die Werte überschreiten, mits
denen wir sie erreichensum [ j | j <= s]
.quelle
APL (Dyalog Classic), 12 Byte
Probieren Sie es online!
Tipps, wie man daraus einen Zug macht, sind willkommen.
quelle
APL (Dyalog) , 12 Bytes
Probieren Sie es online!
quelle
o×⎕≥o←∘.⌈⍨⍳
erlaubt oder müssten Sie es einer Funktion zuordnen, damit das zählt?JavaScript (ES6), 61 Byte
Übernimmt Eingaben in Currying-Syntax
(c)(s)
, wobei s 1-indiziert ist. Gibt ein eindimensionales Array zurück.Probieren Sie es online!
quelle
Gelee , 6 Bytes
Ein vollständiges Programm *, das Ganzzahlen aufnimmt
C
undS
das die Jelly-Darstellung einer Liste von definierten Ganzzahlenlisten (1-indiziert) ausgibt.Probieren Sie es online! (formatiert das Ergebnis der Dyade als Zahlenraster zum leichteren Ablesen)
Wie?
* Der Grund dafür ist ein volles Programm ist auf die Verwendung des Programms Argument Zugang nach unten
⁴
. Als dyadische Verknüpfung würde dieser Code davon abhängen, wie das Programm, das ihn verwendet, aufgerufen wird.Wiederverwendbare dyadische Verknüpfung in 8 Bytes (mit S links und C rechts): Wiederverwendbare dyadische Verknüpfung in 8 Bytes (mit C links und S rechts):
RiⱮⱮ»þ`}
RiⱮⱮ⁹»þ¤
quelle
Java 10, 88 Bytes
Probieren Sie es online aus.
Erläuterung:
quelle
PHP , 92 Bytes
Dies ist "1-Indizierung".
Um es auszuführen:
Beispiel:
Oder versuchen Sie es online!
quelle
Stax , 10 Bytes
Führen Sie es aus und debuggen Sie es
Wie es funktioniert:
quelle
Excel VBA, 65 Bytes
Eine Sofortfensterfunktion, die Eingaben aus
[A1:B1]
dem Bereich und Ausgaben in den Bereich übernimmt[C1].Resize([A1],[A1])
.Input-Output
Die Eingabe ist in Reichweite
[A1:B1]
quelle
J , 18 Bytes
Viel länger als beide APL-Lösungen.
Probieren Sie es online!
quelle
MATLAB, 58 Bytes (Dank anonymer Benutzer)
Füllen Sie einfach die Elemente der Matrix mit der entsprechenden Nummer und führen Sie eine Schleife aus. Möglicherweise möglich, klüger mit zu sein
arrayfun
quelle
zeros(c)
was einige Bytes sichert. Haben Sie auch diese Antwort von Octave gesehen, ich denke, es würde auch in Matlab funktionieren?max()
müssen gleichartige Argumente nehmenfunction o=f(c,s);o=zeros(c);for j=s:-1:1;o(1:s,1:s)=j;end
.o(1:j,1:j)=j
C # (.NET Core) , 85 Byte
Probieren Sie es online!
Eine Portierung von Kevin Cruijssens Antwort , die viel besser war als meine.
quelle
Python 2 , 58 Bytes
Probieren Sie es online!
Gibt eine 1D-Längenliste aus
C*C
.quelle
Holzkohle , 19 Bytes
Probieren Sie es online! Link ist eine ausführliche Version des Codes. 3 Bytes zum Konvertieren der Ausgabe in eine Dezimalzahl und zum Formatieren. Erläuterung:
quelle
Sauber , 67 Bytes
Probieren Sie es online!
Definiert das
$ :: Int Int -> [[Int]]
Geben einer Antwort mithilfe der 1-basierten Indizierung.quelle
Perl 6 , 37 Bytes
Probieren Sie es online!
Gibt die Matrix als eindimensionales Array zurück.
quelle
Mathematica 44 Bytes
quelle