La secuencia N-bonacci, originalmente inventada por @DJMcMayhem en esta pregunta , es una secuencia generada al comenzar con los enteros 0 y 1, y luego agregar los números N anteriores para generar el siguiente número. La secuencia especial de N-bonacci es una secuencia de N-bonacci que comienza con un par de números distintos de 0 y 1, que se denominarán X e Y. Si N es mayor que el número de términos que ya están en la secuencia, simplemente agregue todos los disponibles condiciones.
Entonces, por ejemplo, la secuencia normal de Fibonacci tiene un N de 2 (toma los dos elementos anteriores) y una X e Y de 0 y 1, o 1 y 1, dependiendo de a quién le pregunte.
Tu tarea:
Debe escribir un programa o función que verifique si un entero ingresado (A) es parte de la secuencia especial de N-bonacci generada por los siguientes tres enteros (utilizando la segunda entrada como N, y el tercero y cuarto como X e Y) . Asegúrese de manejar el caso especial de N = 1.
Entrada:
Cuatro enteros no negativos, A, N, X e Y.
Salida:
Un valor verdadero / falso que indica si A es parte de la secuencia N-bonacci generada por las entradas N, X e Y.
Casos de prueba:
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.
Puntuación:
Este es el código de golf , por lo que gana la puntuación más baja en bytes.

N==1Es un caso tan extraño.N=1, es posible que desee mencionarlo en la pregunta, ya que muchas respuestas (incluidas todas las respuestas actuales, creo) tendrán una condición de falla que supone una serie estrictamente creciente. Además, ¿puedeXyYser negativo? Eso probablemente también invalidará todas las respuestas existentes.8,1,8,9y9,1,8,9asegurarse de que elN=1manejo de casos detecte elXvalor no repetido y elYvalor. (Si desea manejar0,0casos, debe agregar eso también.)Respuestas:
Jalea , 12 bytes
Una toma de programa completo
[X,Y],N,A.Pruébalo en línea!
¿Cómo?
fuente
⁵edel final; mucho más fácil decir que funcionará entonces (observando que el orden de los dos primeros términos no tiene ninguna consecuencia).05AB1E , 18 bytes
Pruébalo en línea!
Usos:
[X,Y], N, ASiento que alguna funcionalidad no deseada hizo que fuera más difícil de lo necesario.
No hay mayor que o igual a, nunca antes lo había notado.
Y
#³no funcionó, y requirió a], para +1 bytes#]³.fuente
Python 2 ,
5956 bytesPruébalo en línea!
Toma entrada como
A,N,[X,Y]fuente
Perl 6 , 47 bytes
Pruébalo
Expandido:
fuente
Python 2, 50 bytes
Toma entrada como
A,N,[Y,X]. Salidas a través del código de salida.Pruébalo en línea!
fuente
R ,
6960 bytesPruébalo en línea!
Devuelve una función anónima, tomando
a,ny un vectorl=c(y,x). Construye la secuencia de N-bonacci hacia atrás (es decir, un índice más pequeño está más adelante en la secuencia), ya quewhile(l<a)solo verifica el primer elemento del.fuente
Lisp común, 164 bytes
Esta función devuelve
NILfalso, no NIL para verdadero (según la definición de booleano generalizado de Common Lisp).fuente
N=1detectar unaAde, por ejemplo, ambas1y / o2cuándoX=1 Y=2? Mis habilidades de lectura Lisp no son excelentes, pero parece que solo se puede compararAcon uno de los dos valores iniciales.k, 29 bytes
Pruébalo en línea!
1es verdad,0es falsey. Entrada es[A;N;X,Y].fuente
PHP> = 7.1, 103 bytes
Casos de prueba
fuente
Mathematica, 94 bytes
formato de entrada
fuente