Te dan cuatro números. Los tres primeros son , , y , respectivamente, para la secuencia:
Puede ingresar estos cuatro números de cualquier manera. La salida debe ser una de las dos salidas distintas mencionadas en su respuesta, una significa que el cuarto número es un término en la secuencia (la ecuación anterior tiene al menos una solución para que es un entero cuando , , y son sustituido por los valores dados), el otro significa lo contrario.
Este es el código de golf, por lo que gana la respuesta más corta en bytes. Su programa debería funcionar para cualquier entrada de donde los números sean negativos o positivos (o 0), decimales o enteros. Para evitar problemas pero mantener cierta complejidad, los no enteros siempre terminarán en . Orificios de bucle estándar no permitidos.
Casos de prueba
a |b |c |T_n |Y/N
------------------------
1 |1 |1 |1 |Y #n=0
2 |3 |5 |2 |N
0.5 |1 |-2 |-0.5|Y #n=1
0.5 |1 |-2 |15.5|Y #n=5
0.5 |1 |-2 |3 |N
-3.5|2 |-6 |-934|Y #n=-16
0 |1 |4 |7 |Y #n=3
0 |3 |-1 |7 |N
0 |0 |0 |1 |N
0 |0 |6 |6 |Y #n=<anything>
4 |8 |5 |2 |N
fuente
JavaScript (ES7), 70 bytes
Devuelve un valor booleano.
Pruébalo en línea!
¿Cómo?
En aras de la claridad, definimos . (La misma variable se reutiliza para almacenar este resultado en el código JS).d=Tn−c t
Casoa≠0
La ecuación realmente es cuadrática:
Con , el discriminante es:a′=2a
y las raíces son:
La ecuación admite una raíz entera si es un entero y:Δ−−√
Casoa=0,b≠0
La ecuación es lineal:
Admite una raíz entera si .d≡0(modb)
Casoa=0,b=0
La ecuación ya no depende de :n
fuente
05AB1E , 35 bytes
Puerto de la respuesta de JavaScript de @Arnauld , ¡así que asegúrese de votarlo!
Toma la entrada en el formato .[t,c],a,b
Pruébalo en línea
Explicación:
fuente
Ų
Guardaría algunos bytes? (Probablemente no, ya que más tarde necesitamos calcular la raíz cuadrada de todos modos.)Ų
con valores negativos de alguna manera da el valor en sí mismo en lugar de0
.. 2.Ų
con valores decimales (incluso con.0
) da en0
lugar de1
si son un cuadrado o no (este es un error que haré informar a Adnan). 3. Incluso si ambos hubieran funcionado y-4.0
hubieran resultado en0
lugar de,-4.0
y4.0
hubieran resultado en1
lugar de0
, seguirían siendo +2 bytes ya que necesitamos la raíz cuadrada y el triplicado serían duplicados separados:tÐdi
vsDŲitD
; o actualmenteDÄïŲitD
para solucionar los otros dos problemas mencionados.Ų
las entradas negativas son inconsistentes .Wolfram Language (Mathematica) , 38 bytes
Pruébalo en línea!
fuente
Jalea , 15 bytes
Pruébalo en línea!
La función incorporada ayuda aquí, pero no maneja a = b = 0, por lo que esto se maneja especialmente.
fuente