Problème
Étant donné une valeur n, imaginez un paysage de montagne inscrit dans une référence (0, 0) à (2n, 0). Il ne doit pas y avoir d'espaces blancs entre les pentes et la montagne ne doit pas descendre en dessous de l'axe x. Le problème à résoudre est: étant donné n (qui définit la taille du paysage) et le nombre k de pics (k toujours inférieur ou égal à n), combien de combinaisons de montagnes sont possibles avec k pics?
Contribution
n qui représente la largeur du paysage et k qui est le nombre de pics.
Production
Juste le nombre de combinaisons possibles.
Exemple
Étant donné n = 3 et k = 2, la réponse est 3 combinaisons.
Juste pour donner un exemple visuel, ils sont les suivants:
/\ /\ /\/\
/\/ \ / \/\ / \
sont les 3 combinaisons possibles en utilisant 6 (3 * 2) positions et 2 pics.
Modifier: - plus d'exemples -
n k result
2 1 1
4 1 1
4 3 6
5 2 10
Condition gagnante
la norme code-golfles règles s'appliquent. La soumission la plus courte en octets l'emporte.
la source
n
paires de parenthèses correspondantes qui contiennent exactement desk
instances de()
»?k
zéro doit être gérée ou non? Dans l'affirmative, faut-il gérer une entréen
égale à zéro (aveck
également zéro par définition)?Réponses:
Python, 40 octets
Essayez-le en ligne!
Utilise la récurrencean,1=1 , unen , k=n ( n - 1 )k ( k - 1 )unen - 1 , k - 1 .
la source
Gelée , 7 octets
Essayez-le en ligne!
Prend l'entrée comme
n
alorsk
. Utilise la formuleque j'ai trouvé sur Wikipedia .
7 octets
Chaque ligne fonctionne seule.
Prend l'entrée comme
k
alorsn
.7 octets
la source
Ṫ
) qui prend juste le dernier élément d'un seul argument et celui que j'ai utilisé (ṫ
) qui prend deux arguments. Le premier argument est une liste et le second est un nombre (dans mon cas-1
représenté par un-
dans le code) qui vous indique le nombre d'éléments à enregistrer. Ayant-1
Citez deux éléments a été la façon de définir golfiestṫ
cⱮ×ƝṪ÷⁸
JavaScript (ES6),
3330 octetsEnregistré 3 octets grâce à @Shaggy
Prend l'entrée comme
(n)(k)
.Essayez-le en ligne!
Implémente la définition récursive utilisée par Anders Kaseorg .
JavaScript (ES7),
59584945 octetsPrend l'entrée comme
(n)(k)
.Essayez-le en ligne!
Calcule:
Dérivé de A001263 (première formule).
la source
Wolfram Language (Mathematica) , 27 octets
Trois versions, toutes de même longueur:
Essayez-le en ligne!(Juste la première version, mais vous pouvez copier et coller pour essayer les autres.)
Tous ces éléments sont une sorte de variante surn ! ( n - 1 ) !k ! ( k - 1 ) ! ( n - k ) ! ( n - k - 1 ) !
qui est la formule qui circule. J'espérais arriver quelque part avec la fonction bêta, qui est une sorte de réciproque binomiale, mais il y avait alors trop de divisions.
la source
J ,
1711 octetsEssayez-le en ligne!
Prend
n
comme argument de droite,k
comme argument de gauche. Utilise la même formule que la réponse Jelly de dylnan et la solution APL de Quintec.Explication:
la source
APL (Dyalog),
19181612 octetsMerci à @Galen Ivanov pour -4 octets
Utilise l'identité dans la séquence OEIS. Prend k à gauche et n à droite.
TIO
la source
⊢÷⍨!×⊢!⍨¯1+⊣
pour 12 octets , argument inverséRubis , 50 octets
Essayez-le en ligne!
la source
Lisp commun , 76 octets
Essayez-le en ligne!
la source
(*(1- x)x)
place de(* x(1- x))
Perl 6 , 33 octets
Essayez-le en ligne!
Utilise la formule
Explication
Version alternative, 39 octets
Essayez-le en ligne!
Utilise la formule de la réponse d'Arnauld:
la source
Gelée , 8 octets
Un lien dyadique acceptant
n
à gauche etk
à droite ce qui donne le compte.Essayez-le en ligne!
la source
Stax , 9 octets
Exécuter et déboguer
J'utilise la formule de Dylnan dans Stax.
Décompressé, non golfé et commenté, le programme ressemble à ceci.
Exécutez celui-ci
la source
APL (NARS), 17 caractères, 34 octets
tester:
la source