Yo realmente no tienen una buena educación formal en matemáticas teóricas, así que por favor no se moleste si esta es la pregunta obvia, pero por otro lado no creo que yo soy el primero en pensar de tal problema. Así que vamos a p,q ser números Naturales p != 0 (vamos a pensar en ellos como un dividendo y el divisor de una fracción) y el procedimiento se ve más o menos así:
f(p,q):
if (gcd(p,q) > 1) return f(p/gcd(p,q), q/gcd(p,q))
if (p/q > 1/3) then return f(p+1, q+4)
if (p/q < 1/3) then return f(p+1, q+1)
if (p/q == 1/3) then return WIN
para el caso de que se debe terminar en algún número infinito de pasos es intuitivo: cuando estamos de más de 1/3 de que el paso hacia 1/4 y si somos más pequeños, damos un paso hacia 1. La ejecución de un script determinado resultado que para todos los pares de números (hasta el 5 de dígitos decimales en tamaño) termina en algún momento, así que mi pregunta es "¿alguien Puede demostrar que este procedimiento termina después de algún número finito de pasos y no los bucles infinitamente para cualquiera de los números p y q, como se describe?"