Problema
Dado um valor n, imagine uma paisagem de montanha inscrita em uma referência (0, 0) a (2n, 0). Não deve haver espaços em branco entre as encostas e a montanha não deve descer abaixo do eixo x. O problema a ser resolvido é: dado n (que define o tamanho da paisagem) e o número k de picos (k sempre menor ou igual a n), quantas combinações de montanhas são possíveis com k picos?
Entrada
n quem representa a largura da paisagem ek qual é o número de picos.
Resultado
Apenas o número de combinações possíveis.
Exemplo
Dado n = 3 e k = 2, a resposta são 3 combinações.
Apenas para dar um exemplo visual, eles são os seguintes:
/\ /\ /\/\
/\/ \ / \/\ / \
são as 3 combinações possíveis usando 6 posições (3 * 2) e 2 picos.
Editar: - mais exemplos -
n k result
2 1 1
4 1 1
4 3 6
5 2 10
Condição vencedora
Aplicam-se as regras de código-golfe padrão . O menor envio em bytes vence.
fonte
n
pares de parênteses correspondentes que contêm exatamentek
instâncias de()
"?k
zero deve ou não ser manipulada? Em caso afirmativo, uma entradan
igual a zero (comk
também zero por definição) deve ser manipulada?Respostas:
Python, 40 bytes
Experimente online!
Usa a recorrênciaan,1=1 , uman , k= n ( n - 1 )k ( k - 1 )uman - 1 , k - 1 .
fonte
Geléia , 7 bytes
Experimente online!
Recebe entrada como
n
entãok
. Usa a fórmulaque eu encontrei na Wikipedia .
7 bytes
Cada linha funciona por si só.
Recebe entrada como
k
entãon
.7 bytes
fonte
Ṫ
) que apenas pega o último elemento de um único argumento e o que eu usei (ṫ
) que usa dois argumentos. O primeiro argumento é uma lista e o segundo é um número (no meu caso,-1
representado por um-
no código), que informa quantos elementos salvar. Tendo-1
dar dois elementos era o modo para definir golfiestṫ
cⱮ×ƝṪ÷⁸
JavaScript (ES6),
3330 bytesGuardado 3 bytes graças a @Shaggy
Toma entrada como
(n)(k)
.Experimente online!
Implementa a definição recursiva usada por Anders Kaseorg .
JavaScript (ES7),
59584945 bytesToma entrada como
(n)(k)
.Experimente online!
Computa:
Derivado de A001263 (primeira fórmula).
fonte
Wolfram Language (Mathematica) , 27 bytes
Três versões, todas do mesmo comprimento:
Experimente online! (Apenas a primeira versão, mas você pode copiar e colar para experimentar as outras.)
fonte
J ,
1711 bytesExperimente online!
Toma
n
como argumento certo,k
como o esquerdo. Usa a mesma fórmula que a resposta Jelly de dylnan e a solução APL da Quintec.Explicação:
fonte
APL (Dyalog),
19181612 bytesObrigado a Galen Ivanov por -4 bytes
Usa a identidade na sequência OEIS. Pega k à esquerda en à direita.
TIO
fonte
⊢÷⍨!×⊢!⍨¯1+⊣
para 12 bytes , argumento invertidoRuby , 50 bytes
Experimente online!
fonte
Lisp comum , 76 bytes
Experimente online!
fonte
(*(1- x)x)
vez de(* x(1- x))
Perl 6 , 33 bytes
Experimente online!
Usa a fórmula
Explicação
Versão alternativa, 39 bytes
Experimente online!
Usa a fórmula da resposta de Arnauld:
fonte
Geléia , 8 bytes
Um link diádico aceitando
n
à esquerda ek
à direita que gera a contagem.Experimente online!
fonte
Stax , 9 bytes
Execute e depure
Estou usando a fórmula de dylnan em stax.
Descompactado, desmontado e comentado, o programa tem esta aparência.
Execute este
fonte
APL (NARS), 17 caracteres, 34 bytes
teste:
fonte