Buat Segitiga Pascal yang merupakan daftar bersarang dan berisi nol di tempat yang tidak digunakan.
Dalam array output, jumlah Segitiga Pascal dipisahkan oleh nol dan diisi dengan nol di setiap sisi sehingga mereka berpusat. Misalnya, baris bawah (sub-larik terakhir) harus tidak memiliki nol di sebelah kiri dan kanan; sub-array kedua-terakhir memiliki satu bantalan nol di setiap sisi, dan seterusnya.
Berikut ini adalah output untuk input 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]]
Seperti biasa, solusi dengan byte paling sedikit menang.
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")
Jawaban:
Mathematica,
7068 byteMirip dengan solusi MATL.
sumber
Mathematica, 48 byte
CellularAutomation
fantastis.sumber
Jelly, 12 byte
Coba di sini.
Penjelasan
sumber
Haskell, 66 byte
Contoh penggunaan:
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]]
.Bagaimana itu bekerja:
sumber
Python 3,
172158133 byteSemakin membaik
sumber
MATL ,
242221 byteEDIT (20 Mei 2016): pada versi bahasa 18.0.0, kode di atas perlu beberapa perubahan untuk dijalankan. Tautan di bawah ini mencakup modifikasi tersebut
Cobalah online!
Ini menggunakan loop untuk mendorong setiap baris baru ke stack. Baris baru dihitung dari baris sebelumnya yang menerapkan konvolusi dengan
[1,0,1]
dan hanya mempertahankan ukuran yang diinginkan. Setelah loop, semua baris digabungkan menjadi array 2D, yang ditampilkan. Array 2D ditampilkan dalam MATL sebagai tabel numerik yang disejajarkan dengan kolom.sumber
Javascript,
152146 byteTampilkan cuplikan kode
sumber
Serius, 33 byte
Cobalah online
Saya relatif yakin setidaknya 7 atau lebih dari byte tersebut dapat dicukur, jadi saya akan menunggu untuk mengirim penjelasan sampai saya selesai bermain golf ini lebih lanjut.
sumber
PHP , 106 byte
Cobalah online!
sumber