Ok, ich war in letzter Zeit auf einem Dreieckskick, also hier ist noch einer.
Clark's Triangle ist ein Dreieck, bei dem der Eintrag ganz links in jeder Zeile 1 ist und der Eintrag ganz rechts aus Vielfachen von 6 besteht, die mit zunehmender Zeilennummer zunehmen. Hier ist eine Visualisierung
1 6
1 . 12
1 . . 18
1 . . . 24
1 . . . . 30
1 . . . . . 36
Genau wie bei Pascals Dreieck sind alle anderen Einträge die Summe der Zahlen oben rechts und oben links.
Hier sind die ersten Zeilen ausgefüllt
1 6
1 7 12
1 8 19 18
1 9 27 37 24
1 10 36 64 61 30
1 11 46 100 125 91 36
Aufgabe
Bei einer gegebenen Zeilennummer (von oben beginnend) und einer Spaltennummer (beginnend mit dem ersten Nicht-Null-Element in dieser Zeile) wird der Wert in dieser bestimmten Zelle ausgegeben. Beide Eingänge können entweder 1 oder 0 indiziert sein (Sie können mischen und anpassen, wenn Sie dies wünschen). Außerhalb der Grenzen des Dreiecks ist undefiniert und Sie können tun, was Sie möchten, wenn Sie nach diesen Werten gefragt werden.
Dies ist Code-Golf . Ziel ist es, die Anzahl der Bytes in Ihrer Lösung zu minimieren.
Antworten:
MATL , 15 Bytes
Die erste Eingabe ist eine 0-basierte Zeile. Die zweite ist eine 1-basierte Spalte.
Probieren Sie es online aus!
Erläuterung
quelle
Pascal , 132 Bytes
Probieren Sie es online aus!
1-indiziert.
quelle
CJam ,
2218 Bytes-4 Bytes dank Martin Ender
Eingabe ist
(0-based row) (0-based column)
Probieren Sie es online aus!
Erläuterung
quelle
.+
. Normalerweise hat dies das Problem, dass das nachfolgende Element beibehalten wird, ohne es zu summieren (was das Entfernen von Bytes kostet), aber in diesem Fall werden tatsächlich Bytes gespart, da Sie dann nicht6
bei jeder Iteration ein hinzufügen müssen . Sie können noch mehr Bytes speichern, da das Verschieben nach links kostenlos ist, wenn Sie nur0
eine Kopie voranstellen :X6_]ri{0X$+.+}*ri=
_0\+
stattdessen0X$+
ist die gleiche Byteanzahl, wenn Sie es vorziehen.C #, 157 Bytes
Probieren Sie es online aus
quelle
Python 2 , 67 Bytes
Probieren Sie es online aus!
Brute-Force-Ansatz, berechnen Sie die
a
dritte Zeile und drucken Sie dann dieb
dritte Zahl. Beide Eingaben basieren auf 0quelle
Python 3 ,
646052 BytesProbieren Sie es online aus!
Rekursive Lösung mit 1-Indexierung. Gibt "True" anstelle von 1 aus, um Golf zu spielen.
Dank an:
quelle
Haskell , 41 Bytes
Probieren Sie es online aus!
Rufen Sie mit
n # m
wheren
die Zeilennummer undm
die Spaltennummer an, beide 1-indiziert.quelle
Mathematica, 32 Bytes
Eingang
quelle
JavaScript (ES6), 38 Byte
Absturz für negative Spalten und Rückgabe eines Vielfachen von sechs für negative Zeilen oder übergroße Spalten.
quelle
C # (.NET Core) , 44 Byte
Nimmt Spalte dann Zeile, beide 1-indiziert. Kann Zeile und Spalte durch Vertauschen der Eingaben übernehmen :
(r,c)
. Gibtrow * 6
für Koordinaten außerhalb der Grenzen rechts (dhcolumn > row + 1
) und1
für Koordinaten außerhalb der Grenzen links (dhcolumn < 1
) zurück.quelle
PHP , 64 Bytes
rekursive Funktion
Zeilen 1-Indizierung Spalten 0-Indizierung
Die Ausgabe für Zeile = 0 und Spalte = 0 ist wie in der OEIS-Sequenz 0
Probieren Sie es online aus!
PHP , 126 Bytes
Zeilen 1-Indizierung Spalten 0-Indizierung
Die Ausgabe für Zeile = 0 und Spalte = 0 ist wie in der OEIS-Sequenz 0
Probieren Sie es online aus!
quelle
R , 77 Bytes
Benötigt die
zoo
Bibliothek; liest aus stdin (die Eingaben sind durch zwei Zeilenumbrüche getrennt) und gibt den Wert mitNA
einer Auswahl außerhalb der Grenzen zurück.Probieren Sie es online aus!
quelle
Gelee , 13 Bytes
Ein monadischer Link, der eine Liste von
[row, entry]
(0-Indizierung für Einträge, 1-Indizierung für Zeilen) erstellt und den Wert zurückgibt.Probieren Sie es online aus!
Wie?
quelle