Die Idee dazu stammt hauptsächlich aus dem ersten Quartal 2017 der BIO . Die Idee, diese Herausforderung zu posten, kam mir durch meine Herausforderung mit binären Sequenzen , da es vielen Leuten zu gefallen schien.
Dies ist auch die erste Herausforderung, die ich veröffentlicht habe, ohne sie in der Sandbox zu veröffentlichen. Ich werde es löschen, wenn es niemand mag.
Regeln
Geben Sie eine Folge von ternären Ziffern ein (Basis 3). Dies kann eine Zeichenfolge, ein Array oder der numerische Wert zusammen mit der Anzahl der vorangestellten Nullen sein.
Für jede Zeile im Dreieck wird eine Zeile darunter generiert, bis die letzte Zeile nur noch eine Ziffer enthält. Um eine Ziffer unter zwei anderen Ziffern zu finden, ist die Ziffer dieselbe wie zwei darüber, wenn diese beiden anderen Ziffern gleich sind. Andernfalls ist es die Ziffer, die keiner von beiden entspricht. Hier ist ein Beispiel:
0 0 1 2 0 1 2 2
0 2 0 1 2 0 2
1 1 2 0 1 1
1 0 1 2 1
2 2 0 0
2 1 0
0 2
1
Es wird nur erwartet, dass Sie die letzte Zeile zurückgeben.
Machen Sie Ihren Code kurz.
Testfälle
0 -> 0
11 -> 1
10 -> 2
000 -> 0
012 -> 1
21102 -> 2
201021 -> 1
111111 -> 1
1020202020 -> 2
0212121210 -> 0
3&(|2+/\-)~<:@#
3|((2<.#)-@+/\])^:_
- deins ist wirklich nett.Batch, 122 Bytes
Verwendet Binomialerweiterung. Wie @MartinEnder hervorhebt, muss die Summe negiert werden (Modulo 3), wenn die Anzahl der Werte (die in der ersten Schleife gezählt werden) gerade ist, und daher
n
entweder1
oder2
entsprechend festgelegt werden. Die zweite Schleife berechnet dann die Summe über die Binomialkoeffizienten.quelle
APL (Dyalog) , 17 Bytes
Probieren Sie es online!
Wie?
2+/⍵
- Summiere jeweils zwei benachbarte Gegenstände3-
- vektorisierte subtrahieren von drei3|
- vektorisiertes Modulo um drei⍣
- wiederhole bis...1=≢⍺
- Es ist nur noch ein Artikel übrigquelle
APL + WIN,
3028 Bytes2 Bytes mit freundlicher Genehmigung von Uriel gespeichert.
Erläuterung:
Dies ist eine Möglichkeit, Schleifencode in APL in eine einzelne Zeile zu schreiben.
quelle
3|
Javascript (ES6), 58 Byte
quelle