Berikut ini adalah kode golf sederhana, berukuran gigitan (ukuran byte?): Diberi daftar bilangan bulat positif kurang dari 10, cetak matriks blok-diagonal , di mana daftar menentukan ukuran blok, secara berurutan. Blok harus terdiri dari bilangan bulat positif kurang dari 10. Jadi jika Anda diberikan sebagai input
[5 1 1 2 3 1]
Output Anda bisa, misalnya,
1 1 1 1 1 0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 1 1 0 0 0 0
0 0 0 0 0 0 0 1 1 0 0 0 0
0 0 0 0 0 0 0 0 0 1 1 1 0
0 0 0 0 0 0 0 0 0 1 1 1 0
0 0 0 0 0 0 0 0 0 1 1 1 0
0 0 0 0 0 0 0 0 0 0 0 0 1
atau
1 2 3 4 5 0 0 0 0 0 0 0 0
6 7 8 9 1 0 0 0 0 0 0 0 0
2 3 4 5 6 0 0 0 0 0 0 0 0
7 8 9 1 2 0 0 0 0 0 0 0 0
3 4 5 6 7 0 0 0 0 0 0 0 0
0 0 0 0 0 8 0 0 0 0 0 0 0
0 0 0 0 0 0 9 0 0 0 0 0 0
0 0 0 0 0 0 0 1 2 0 0 0 0
0 0 0 0 0 0 0 3 4 0 0 0 0
0 0 0 0 0 0 0 0 0 5 6 7 0
0 0 0 0 0 0 0 0 0 8 9 1 0
0 0 0 0 0 0 0 0 0 2 3 4 0
0 0 0 0 0 0 0 0 0 0 0 0 5
atau semacam itu. Elemen-elemen dalam matriks harus dipisahkan oleh spasi (tunggal), dan baris dipisahkan oleh baris baru (tunggal). Tidak boleh ada spasi awal atau akhir pada garis apa pun. Anda mungkin atau mungkin tidak mencetak baris baru.
Anda dapat menulis fungsi atau program, mengambil input melalui STDIN (atau alternatif terdekat), argumen baris perintah atau argumen fungsi, dalam string atau format daftar yang mudah digunakan (asalkan tidak diproses sebelumnya). Namun, hasilnya harus dicetak ke STDOUT (atau alternatif terdekat), bukan kembali dari fungsi, katakanlah.
Anda tidak boleh menggunakan fungsi bawaan yang dirancang untuk membuat matriks blok-diagonal.
Ini adalah kode golf, jadi pengiriman terpendek (dalam byte) menang.
Papan peringkat
Saya berharap bahasa berbasis array (seperti J dan APL) memiliki keunggulan di sini, tetapi saya tidak ingin hal itu membuat orang tidak mau mencoba melakukan sebaik yang mereka bisa dalam bahasa pilihan mereka. Jadi di sini adalah Cuplikan Stack untuk menghasilkan leaderboard reguler dan tinjauan pemenang berdasarkan bahasa. Jadi mengapa tidak mencoba dan mendapatkan tempat di yang terakhir?
Untuk memastikan bahwa jawaban Anda muncul, silakan mulai jawaban Anda dengan tajuk utama, menggunakan templat Penurunan harga berikut:
# Language Name, N bytes
di mana N
ukuran kiriman Anda. Jika Anda meningkatkan skor Anda, Anda dapat menyimpan skor lama di headline, dengan mencoretnya. Contohnya:
# Ruby, <s>104</s> <s>101</s> 96 bytes
[:=/~]#<\
dihitung terhadap skor Anda. Juga,=/~@#<\
untuk dua byte tambahan dicukur habis.