A sequência N-bonacci, originalmente inventada por @DJMcMayhem nesta pergunta , é uma sequência gerada iniciando com os inteiros 0 e 1 e adicionando os números N anteriores para gerar o próximo número. A sequência N-bonacci especial é uma sequência N-bonacci que começa com um par de números diferentes de 0 e 1, que será nomeado X e Y. Se N for maior que o número de termos já na sequência, basta adicionar todos os termos.
Por exemplo, a sequência normal de fibonacci tem um N de 2 (pega os dois itens anteriores) e um X e Y de 0 e 1, ou 1 e 1, dependendo de quem você perguntar.
Sua tarefa:
Você deve escrever um programa ou função que verifique se um número inteiro inserido (A) faz parte da sequência N-bonacci especial gerada pelos próximos três números inteiros (usando a segunda entrada como N e a terceira e quarta como X e Y) . Certifique-se de lidar com o caso especial de N = 1.
Entrada:
Quatro números inteiros não negativos, A, N, X e Y.
Resultado:
Um valor de verdade / falsidade que indica se A faz parte da sequência N-bonacci gerada pelas entradas N, X e Y.
Casos de teste:
Input: Output:
13,2,0,1->truthy
12,3,1,4->falsy
4,5,0,1-->truthy
8,1,8,9-->truthy
9,1,8,9-->truthy
12,5,0,1->falsy [0,1]>[0,1,1]>[0,1,1,2]>[0,1,1,2,4]>[0,1,1,2,4,8]>[0,1,1,2,4,8,16]>etc.
Pontuação:
Isso é código-golfe , então a pontuação mais baixa em bytes vence.
fonte
N==1
é um caso tão estranho.N=1
, convém mencioná-lo na pergunta, pois muitas respostas (incluindo todas as respostas atuais, eu acho) terão uma condição de falha que assume uma série estritamente crescente. Além disso, podeX
eY
é negativo? Isso provavelmente também invalidará todas as respostas existentes.8,1,8,9
e9,1,8,9
garantir que oN=1
tratamento de casos detecte oX
valor não repetido e oY
valor. (Se você quiser lidar com0,0
casos você deve adicionar isso também.)Respostas:
Gelatina , 12 bytes
A tomada programa completo
[X,Y]
,N
,A
.Experimente online!
Quão?
fonte
⁵e
do final; muito mais fácil dizer que funcionará então (observando que a ordem dos dois primeiros termos não tem importância).05AB1E , 18 bytes
Experimente online!
Usos:
[X,Y], N, A
Sinto que algumas funcionalidades não intencionais tornaram isso mais difícil do que precisava ser.
Não há maior ou igual a, nunca notei isso antes.
E
#³
não funcionou, e exigiu um]
, para +1 bytes#]³
.fonte
Python 2 ,
5956 bytesExperimente online!
Aceita entrada como
A,N,[X,Y]
fonte
Perl 6 , 47 bytes
teste-o
Expandido:
fonte
Python 2, 50 bytes
Toma entrada como
A,N,[Y,X]
. Saídas via código de saída.Experimente online!
fonte
R ,
6960 bytesExperimente online!
Retorna uma função anônima, taking
a,n
e um vetorl=c(y,x)
. Constrói a sequência N-bonacci para trás (ou seja, um índice menor está mais adiante na sequência), uma vez quewhile(l<a)
apenas verifica o primeiro elemento del
.fonte
Lisp comum, 164 bytes
Esta função retorna
NIL
para false, não NIL para true (de acordo com a definição de boolean generalizado do Common Lisp).fonte
N=1
detectar umA
de, por exemplo, ambos1
e / ou2
quandoX=1 Y=2
? Minhas habilidades de leitura de Lisp não são ótimas, mas parece que você pode comparar apenasA
com um dos dois valores iniciais.k, 29 bytes
Experimente online!
1
é verdade,0
é falsey. Entrada é[A;N;X,Y]
.fonte
PHP> = 7,1, 103 bytes
Casos de teste
fonte
Mathematica, 94 bytes
Formato de entrada
fonte