¿Qué métodos puedo usar para predecir el próximo número de una serie de números?
Conozco el número mínimo y máximo posible de antemano.
¿Qué métodos puedo usar para predecir el próximo número de una serie de números?
Conozco el número mínimo y máximo posible de antemano.
Hoy en día, el método número 1 para predecir el siguiente número de una secuencia (suponiendo que la secuencia haya surgido de forma "natural") es buscarlo en el Enciclopedia en línea de las secuencias de números enteros. En su libro de 1973, A Handbook of Integer Sequences, Sloane da algunas sugerencias sobre qué hacer si su secuencia no está en la Enciclopedia/Handbook. Éstas incluyen,
Suma o resta 1 o 2 a todos los términos y trata de buscarlo de nuevo;
Multiplica todos los términos por 2, o divídelos por cualquier factor común, e intenta buscarlo de nuevo;
Busca una recurrencia.
Sloane profundiza en esta última sugerencia. Menciona el método de las diferencias, en el que se sustituye la secuencia $a_0,a_1,\dots$ con $a_1-a_0,a_2-a_1,\dots$ y, si es necesario, repetir la diferenciación, hasta obtener algo con un patrón obvio. Por supuesto, luego hay que saber qué hacer con una recurrencia una vez que se tiene, pero esa es otra historia.
Sloane también dice que si una secuencia está cerca de una secuencia conocida, se puede intentar restar la secuencia conocida y luego tratar el residuo con uno de los métodos anteriores.
Si los ratios $a_{n+1}/a_n$ parecen estar cerca de una secuencia reconocible $r_n$ entonces mira la secuencia dada por $a_{n+1}-r_na_n$ .
La factorización de los números en una secuencia, o en una secuencia cercana a la secuencia dada, a menudo dará una pista sobre lo que está sucediendo.
Para ver ejemplos de todos estos principios (y otros que no he mencionado) en funcionamiento, le remito al Manual.
Una posibilidad es utilizar la función de Maple gfun para adivinar una función generadora. Véase http://algo.inria.fr/libraries/papers/gfun.html
De hecho, si alguien pregunta "qué métodos puedo utilizar", es muy razonable señalar el software real. También hay un paquete de adivinación en FriCAS, aunque nunca lo he utilizado. La documentación parece estar en el propio FriCAS, así que no puedo señalar una página web con la descripción. Sin duda hay algo de ese tipo para Mathematica también.
En cuanto al software, desde Página de inicio de Christian Krattenthaler:
Si necesitas adivinar secuencias de números muy a menudo, entonces mi máquina de adivinar" RATE de Mathematica (que ahora forma parte de la Enciclopedia de Sloane's Encyclopedia of Integer Sequences) puede ser útil para usted. El implementación en Maple de François Béraud y Bruno Gauthier se llama GUESS. Una implementación de Maxima, DEVINE, escrita por Martin Rubey, está también está disponible. El paquete de adivinación Axiom Guess, también escrito por Martin Rubey, es aún más potente ya que su gama de fórmulas detectadas es mayor.
Para los hipervínculos a los paquetes, vaya a la página en sí. En cuanto al paquete Guess, también está presente en FriCAS y ha habido cambios en él durante el año pasado.
Desde la versión 1.0 del Sympy también puede utilizar el módulo sympy.concrete.guess
(escrito por mí para el proyecto); eche un vistazo a la documentación del docstring en https://raw.githubusercontent.com/sympy/sympy/master/sympy/concrete/guess.py donde encontrará varios ejemplos.
Por ejemplo:
>>> from sympy.concrete.guess import guess_generating_function as ggf
>>> ggf([k+1 for k in range(12)], types=['ogf', 'lgf', 'hlgf'])
{'hlgf': 1/(-x + 1), 'lgf': 1/(x + 1), 'ogf': 1/(x**2 - 2*x + 1)}
>>> from sympy import sympify
>>> l = sympify("[3/2, 11/2, 0, -121/2, -363/2, 121]")
>>> ggf(l)
{'ogf': (x + 3/2)/(11*x**2 - 3*x + 1)}
>>> from sympy import fibonacci
>>> ggf([fibonacci(k) for k in range(5, 15)], types=['ogf'])
{'ogf': (3*x + 5)/(-x**2 - x + 1)}
>>> from sympy import simplify, factorial
>>> ggf([factorial(k) for k in range(12)], types=['ogf', 'egf', 'lgf'])
{'egf': 1/(-x + 1)}
>>> ggf([k+1 for k in range(12)], types=['egf'])
{'egf': (x + 1)*exp(x), 'lgdegf': (x + 2)/(x + 1)}
N-th root of a rational function can also be detected (below is an example
coming from the sequence A108626 from http://oeis.org).
The greatest n-th root to be tested is specified as maxsqrtn (default 2).
>>> ggf([1, 2, 5, 14, 41, 124, 383, 1200, 3799, 12122, 38919])['ogf']
sqrt(1/(x**4 + 2*x**2 - 4*x + 1))
Sin embargo, hay que tener en cuenta que el módulo está más bien orientado a la detección de funciones generadoras (y no de fórmulas directas).
I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.
5 votos
Cualquier método que funcione.
16 votos
Conecta tu secuencia (si está compuesta por enteros) aquí \=)
6 votos
Conoce a la persona que ha hecho la pregunta lo suficientemente bien como para adivinarla. Matemáticamente, no hay realmente una respuesta correcta.
1 votos
El siguiente número es siempre 42. Más seriamente, ejemplos como El problema de Moser debería hacerles desconfiar de la predicción de las próximas legislaturas a partir de una información limitada...
1 votos
Aquí es un meta-hilo apropiado.
3 votos
El ejemplar impreso de la Enciclopedia de Secuencias Enteras tenía una larga parte introductoria en la que se discutían los métodos. Por lo que veo, esa parte no llegó a la enciclopedia en línea.
0 votos
Curiosamente, se puede justificar bastante cualquier como el siguiente número de una secuencia determinada. No tengo la referencia delante de mí en este momento, pero leí un discurso metamatemático sobre esto mismo. El autor tomaba 1,2,4,8,16,__, y luego justificaba rellenar el espacio en blanco con 31. La gracia es que, a no ser que el que pregunta no entienda que los argumentos inductivos (diferentes de la inducción matemática) no demuestran que una conclusión concreta sea correcta, entonces sólo hay que encontrar algunos patrón, y luego justificarlo de alguna manera. Eso es lo que probablemente quiere decir @copper.hat.
1 votos
@Cameron, pon $n$ puntos de un círculo, dibujar todas las líneas que conectan los pares de puntos (teniendo cuidado de que ninguna de estas tres cuerdas se cruce en un punto interior del círculo), y el número de regiones formadas es $1,2,4,8,16,31,\dots$ .
1 votos
Sourav, ¿leíste alguno de los comentarios, y les diste seguimiento, antes de editar? Hay que comprometerse con nosotros para llegar a alguna parte, ya sabes.
3 votos
Tangencialmente relacionado está el fenómeno de los contraejemplos eventuales
0 votos
@Cam: efectivamente esa es la secuencia que se obtiene del problema de Moser...
12 votos
@mixedmath et al, me opongo al cierre de esto como "no es una pregunta real". Cuando una secuencia se presenta en la vida real, hay son métodos útiles para tratar de averiguar la regla que hay detrás y luego elaborar más términos. El hecho de que la mayoría de los comentaristas hayan optado por la respuesta fácil de "¡puede ser cualquier cosa!" no significa que las buenas respuestas más acordes con el espíritu de la pregunta sean imposibles.
0 votos
@Gerry Estoy de acuerdo. He emitido el 5º voto de reapertura.
0 votos
Sourav, tal vez quieras ver este documento . @Gerry, ¿tenías en mente este documento con respecto a esta pregunta?
0 votos
@J.M., no, no es lo que tenía en mente, pero gracias por enlazarlo.
0 votos
@GerryMyerson, gracias por elegir el ejemplo de 1,2,4,8,16,31 - Yo aporté la cifra en OEIS (no es gran cosa, la obtuve de El libro de Mill ). Lo más importante es que utilizo ese ejemplo para mostrar la limitación del principio de la navaja de Occam: dado 1,2,4,8,16 - 32 es la prolongación "más simple", pero puede no tener nada que ver con el problema en cuestión. Hay más de 500 secuencias OEIS que comienzan con esos 5 primeros valores.
0 votos
@alan, J. M. ya puso ese ejemplo unos comentarios antes que yo, con el enlace al "problema de Moser". Si hubiera seguido ese enlace antes, sólo habría remitido a Cameron al comentario de J. M.
2 votos
@GerryMyerson, sólo trataba de poner el foco en la cuestión más amplia -el límite del principio de la navaja de Occam- utilizando el problema de Moser como ejemplo (o más bien contraejemplo). Desafío matemático de DARPA #7 "La navaja de Occam en muchas dimensiones"