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")
Respuestas:
Mathematica,
7068 bytesSimilar a la solución MATL.
fuente
Mathematica, 48 bytes
CellularAutomation
es fantastico.fuente
Jalea, 12 bytes
Pruébalo aquí.
Explicación
fuente
Haskell, 66 bytes
Ejemplo de uso:
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]]
.Cómo funciona:
fuente
Python 3,
172158133 bytesSigue mejorando
fuente
MATL ,
242221 bytesEDITAR (20 de mayo de 2016): a partir de la versión 18.0.0 del lenguaje, el código anterior necesita algunos cambios para ejecutarse. El siguiente enlace incluye esas modificaciones
Pruébalo en línea!
Esto usa un bucle para empujar cada nueva fila a la pila. Se calcula una nueva fila a partir de la fila anterior aplicando convolución
[1,0,1]
y manteniendo solo el tamaño deseado. Después del bucle, todas las filas se concatenan en una matriz 2D, que se muestra. La matriz 2D se muestra en MATL como tablas numéricas alineadas con columnas.fuente
Javascript,
152146 bytesMostrar fragmento de código
fuente
En serio, 33 bytes
Pruébalo en línea
Estoy relativamente seguro de que al menos 7 de esos bytes se pueden eliminar, por lo que esperaré para publicar una explicación hasta que termine de jugar más.
fuente
PHP , 106 bytes
Pruébalo en línea!
fuente