Erstellen Sie ein Pascal-Dreieck, das eine verschachtelte Liste ist und an den nicht verwendeten Stellen Nullen enthält.
Im Ausgabearray werden die Zahlen des Pascalschen Dreiecks durch Nullen getrennt und auf jeder Seite durch Nullen aufgefüllt, so dass sie zentriert sind. Beispielsweise darf die untere Zeile (letztes Unterarray) links und rechts keine Nullen haben. Das vorletzte Sub-Array hat auf jeder Seite eine Null-Auffüllung und so weiter.
Hier ist die Ausgabe für die Eingabe 5
:
[[0,0,0,0,1,0,0,0,0],
[0,0,0,1,0,1,0,0,0],
[0,0,1,0,2,0,1,0,0],
[0,1,0,3,0,3,0,1,0],
[1,0,4,0,6,0,4,0,1]]
Wie üblich gewinnt die Lösung mit den wenigsten Bytes.
print("def pascal(n):\n #make the nested list\n a=[[0 for i in range(2*n+1)] for j in range(n+1)] #make the list\n a[0][n]=1 #add the initial 1\n for i in range(1,n+1):\n for j in range(2*n+1):\n a[i][j]=a[i-1][j-1]+a[i-1][(j+1)%(2*n+1)] #the main part\n return a")
Antworten:
Mathematica,
7068 BytesÄhnlich wie bei der MATL-Lösung.
quelle
Mathematica, 48 Bytes
CellularAutomation
ist fantastisch.quelle
Gelee, 12 Bytes
Probieren Sie es hier aus.
Erläuterung
quelle
Haskell, 66 Bytes
Anwendungsbeispiel:
q 4
->[[0,0,0,1,0,0,0],[0,0,1,0,1,0,0],[0,1,0,2,0,1,0],[1,0,3,0,3,0,1]]
.Wie es funktioniert:
quelle
Python 3,
172158133 BytesWird immer besser
quelle
MATL ,
242221 BytesBEARBEITEN (20. Mai 2016): Ab Version 18.0.0 der Sprache benötigt der obige Code einige Änderungen, um ausgeführt zu werden. Der folgende Link enthält diese Änderungen
Probieren Sie es online aus!
Dies verwendet eine Schleife, um jede neue Zeile auf den Stapel zu schieben. Aus der vorherigen Zeile wird eine neue Zeile berechnet, wobei die Faltung angewendet wird
[1,0,1]
und nur die gewünschte Größe beibehalten wird. Nach der Schleife werden alle Zeilen zu einem 2D-Array verkettet, das angezeigt wird. 2D-Arrays werden in MATL als spaltenausgerichtete numerische Tabellen angezeigt.quelle
Javascript,
152146 BytesCode-Snippet anzeigen
quelle
Im Ernst, 33 Bytes
Probieren Sie es online aus
Ich bin mir ziemlich sicher, dass mindestens 7 dieser Bytes abgeschabt werden können, also werde ich warten, um eine Erklärung zu veröffentlichen, bis ich mit dem weiteren Golfen fertig bin.
quelle
PHP , 106 Bytes
Probieren Sie es online aus!
quelle