Angka Catalan ( OEIS ) adalah urutan bilangan alami yang sering muncul dalam kombinatorik.
Angka Catalan ke-n adalah jumlah kata-kata Dyck (string kurung kurung atau kurung seimbang seperti [[][]]
; secara resmi didefinisikan sebagai string menggunakan dua karakter a dan b sehingga setiap substring mulai dari awal memiliki jumlah karakter lebih besar atau sama dengan angka dari b karakter, dan seluruh string memiliki jumlah a dan b karakter yang sama) dengan panjang 2n. Angka Catalan ke-n (untuk n> = 0) juga secara eksplisit didefinisikan sebagai:
Mulai dari n = 0, 20 angka Catalan pertama adalah:
1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790, 477638700, 1767263190...
Tantangan
Tulis program atau fungsi lengkap yang mengambil bilangan bulat n-negatif melalui STDIN atau alternatif yang dapat diterima, dan menampilkan angka Catalan ke-n. Program Anda harus bekerja minimal untuk input 0-19.
I / O
Memasukkan
Program Anda harus mengambil input dari STDIN, argumen fungsi atau salah satu alternatif yang dapat diterima per pos meta ini. Anda dapat membaca nomor yang dimasukkan sebagai representasi desimal standar, representasi unary, atau byte.
- Jika (dan hanya jika) bahasa Anda tidak dapat mengambil input dari STDIN atau alternatif lain yang dapat diterima, itu mungkin mengambil input dari variabel hardcoded atau setara yang sesuai dalam program.
Keluaran
Program Anda harus menampilkan nomor Catalan ke STDOUT, hasil fungsi atau salah satu alternatif yang dapat diterima per pos meta ini. Anda dapat menampilkan nomor Catalan dalam representasi desimal standar, representasi unary, atau byte.
Output harus terdiri dari angka Catalan yang sesuai, secara opsional diikuti oleh satu atau lebih baris baru. Tidak ada output lain yang dapat dihasilkan, kecuali output konstan dari juru bahasa Anda yang tidak dapat ditekan (seperti salam, kode warna ANSI atau lekukan).
Ini bukan tentang menemukan bahasa yang terpendek. Ini tentang menemukan program terpendek dalam setiap bahasa. Karena itu, saya tidak akan menerima jawaban.
Dalam tantangan ini, bahasa yang lebih baru daripada tantangan dapat diterima selama mereka memiliki implementasi. Diperbolehkan (dan bahkan dianjurkan) untuk menulis sendiri penerjemah ini untuk bahasa yang sebelumnya tidak diterapkan. Selain itu, semua aturan standar kode-golf harus dipatuhi. Kiriman dalam kebanyakan bahasa akan dinilai dalam byte dalam pengkodean yang sudah ada sebelumnya (biasanya UTF-8). Perhatikan juga bahwa built-in untuk menghitung angka Catalan ke-n diizinkan.
Katalog
Cuplikan Stack di bagian bawah posting ini menghasilkan katalog dari jawaban a) sebagai daftar solusi terpendek per bahasa dan b) sebagai leaderboard keseluruhan.
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
Jika Anda ingin memasukkan beberapa angka dalam tajuk Anda (mis. Karena skor Anda adalah jumlah dari dua file atau Anda ingin membuat daftar hukuman penterjemah secara terpisah), pastikan bahwa skor sebenarnya adalah angka terakhir di tajuk:
## Perl, 43 + 2 (-p flag) = 45 bytes
Anda juga dapat membuat nama bahasa menjadi tautan yang kemudian akan muncul di cuplikan:
## [><>](http://esolangs.org/wiki/Fish), 121 bytes