Cree un Triángulo de Pascal que sea una lista anidada y que contenga ceros en los puntos no utilizados.
En la matriz de salida, los números del Triángulo de Pascal están separados por ceros y rellenados por ceros en cada lado para que estén centrados. Por ejemplo, la fila inferior (última submatriz) no debe tener ceros a la izquierda ni a la derecha; el penúltimo subarreglo tiene un relleno cero en cada lado, y así sucesivamente.
Aquí está la salida para la entrada 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]]
Como de costumbre, la solución con la menor cantidad de bytes gana.
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")