Masalah
Diberi nilai n, bayangkan lanskap gunung yang tertulis dalam referensi (0, 0) hingga (2n, 0). Tidak ada ruang putih di antara lereng dan juga gunung tidak turun di bawah sumbu x. Masalah yang harus dipecahkan adalah: mengingat n (yang menentukan ukuran lanskap) dan jumlah k puncak (k selalu kurang dari atau sama dengan n), berapa banyak kombinasi gunung yang mungkin dengan k puncak?
Memasukkan
n yang mewakili lebar lanskap dan k yang merupakan jumlah puncak.
Keluaran
Jumlah kombinasi yang dimungkinkan.
Contoh
Diberikan n = 3 dan k = 2 jawabannya adalah 3 kombinasi.
Hanya untuk memberikan contoh visual, mereka adalah sebagai berikut:
/\ /\ /\/\
/\/ \ / \/\ / \
adalah 3 kombinasi yang mungkin menggunakan 6 (3 * 2) posisi dan 2 puncak.
Edit: - lebih banyak contoh -
n k result
2 1 1
4 1 1
4 3 6
5 2 10
Kondisi menang
Aturan standar kode-golf berlaku. Pengajuan terpendek dalam byte menang.
sumber
n
pasangan kurung yang cocok yang persis sama dengank
contoh()
"?k
nol harus ditangani? Jika demikian haruskah input dengann
sama dengan nol (dengank
juga nol menurut definisi) ditangani?Jawaban:
Python, 40 byte
Cobalah online!
Menggunakan pengulanganSebuahn , 1= 1 , Sebuahn , k= n ( n - 1 )k ( k - 1 )Sebuahn - 1 , k - 1 .
sumber
Jelly , 7 byte
Cobalah online!
Mengambil input saat
n
ituk
. Menggunakan formulayang saya temukan di Wikipedia .
7 byte
Setiap baris berfungsi sendiri.
Mengambil input saat
k
itun
.7 byte
sumber
Ṫ
) yang hanya mengambil elemen terakhir dari satu argumen dan yang saya gunakan (ṫ
) yang mengambil dua argumen. Argumen pertama adalah daftar dan yang kedua adalah angka (Dalam kasus saya-1
diwakili oleh-
dalam kode) yang memberi tahu Anda berapa banyak elemen yang harus disimpan. Setelah-1
memberikan dua elemen adalah cara golf untuk mendefinisikanṫ
cⱮ×ƝṪ÷⁸
JavaScript (ES6),
3330 byteDisimpan 3 byte berkat @Shaggy
Mengambil input sebagai
(n)(k)
.Cobalah online!
Menerapkan definisi rekursif yang digunakan oleh Anders Kaseorg .
JavaScript (ES7),
59584945 byteMengambil input sebagai
(n)(k)
.Cobalah online!
Menghitung:
Berasal dari A001263 (rumus pertama).
sumber
Bahasa Wolfram (Mathematica) , 27 byte
Tiga versi, semuanya memiliki panjang yang sama:
Cobalah online! (Hanya versi pertama, tetapi Anda dapat menyalin dan menempel untuk mencoba yang lain.)
sumber
J ,
1711 byteCobalah online!
Dibawa
n
sebagai argumen yang benar,k
sebagai argumen kiri. Menggunakan rumus yang sama dengan jawaban Jelly dylnan dan solusi APL Quintec.Penjelasan:
sumber
APL (Dyalog),
19181612 byteTerima kasih kepada @Galen Ivanov untuk -4 byte
Menggunakan identitas dalam urutan OEIS. Mengambil k di kiri dan n di kanan.
TIO
sumber
⊢÷⍨!×⊢!⍨¯1+⊣
untuk 12 byte , argumen dibalikRuby , 50 byte
Cobalah online!
sumber
Common Lisp , 76 byte
Cobalah online!
sumber
(*(1- x)x)
alih-alih(* x(1- x))
Perl 6 , 33 byte
Cobalah online!
Menggunakan formula
Penjelasan
Versi alternatif, 39 byte
Cobalah online!
Menggunakan rumus dari jawaban Arnauld:
sumber
Jelly , 8 byte
Tautan diad menerima
n
di sebelah kiri dank
di sebelah kanan yang menghasilkan hitungan.Cobalah online!
sumber
Stax , 9 byte
Jalankan dan debug itu
Saya menggunakan formula dylnan di stax.
Membongkar, tidak bertali, dan berkomentar programnya terlihat seperti ini
Jalankan yang ini
sumber
APL (NARS), 17 karakter, 34 byte
uji:
sumber