Como sugería Raymond Manzoni en su comentario, la mejor aproximación de un número decimal suele conseguirse transformándolo en una fracción continua. Intentaré explicar cómo funciona con un ejemplo.
Tomemos $z=0.29411764$ como sugeriste, y calcular su recíproco $1/z=3.4000000816$ . La parte entera de este número ( $3$ ) es el primer término de la expansión de la fracción continua, y $z=1/3$ es la primera aproximación.
Consideremos ahora la parte fraccionaria de $1/z$ es decir $0.4000000816$ y calcular su recíproco $2.4999994900001$ . La parte entera ( $2$ ) es el segundo término de la expansión de la fracción continua y $z=1/(3+1/2)$ es, pues, la segunda aproximación. La parte fraccionaria restante es $0.4999994900001$ cuyo recíproco es $2.00000204000168$ esto da $2$ como tercer término en la expansión de la fracción continua, lo que lleva a $z=1/(3+1/(2+1/2))$ . El resto fraccionario $0.00000204000168$ es muy pequeño: eso significa que la aproximación a la que hemos llegado es muy buena. De hecho, se puede comprobar que $$ {1\over\displaystyle3+{1\over2+{1\over2}}}={5\over17}. $$
Este ejemplo sugiere una posible estrategia: calcular la expansión de fracción continua de $z$ hasta obtener un pequeño resto. Esto funciona bien si $z$ es la representación decimal truncada de una fracción que tiene enteros pequeños como numerador y denominador.
Si, por el contrario, $z$ es la raíz cuadrada de dicha fracción, entonces no se obtendrá ningún resto pequeño, y los términos de la fracción continua mostrarán un patrón periódico. En ese caso se puede calcular la expansión de la fracción continua de $z^2$ para obtener una fracción aproximada $a/b$ de modo que $z=\sqrt{a}/\sqrt{b}$ .
Ejemplo: $z=1.29099445=1+0.29099445$ . El recíproco de la parte fraccionaria es $3.43649165817424=3+0.43649165817424$ y de nuevo el recíproco de la parte fraccionaria es $2.29099452709545=2+0.29099452709545$ . Observa que el último resto es muy parecido al primero: si continúas con la expansión obtendrás una fracción continuada (cuasi) periódica: $$ z=1+\cfrac{1}{2+\cfrac{1}{3+\cfrac{1}{2+\cfrac{1}{3+\dots}}}} $$ Esto no es exactamente periódico debido a la limitada precisión, pero no vas a obtener un pequeño resto en unos pocos ciclos.
Probemos entonces $z^2=1.6666666699308=1+0.6666666699308$ . Obtenemos a su vez $1.4999999926557=1+0.4999999926557$ y $2.0000000293772=2+0.0000000293772$ . El resto fraccionario es pequeño, por lo que podemos parar con: $$ z^2=1+\cfrac{1}{1+\cfrac{1}{2}}=\frac{5}{3}, \quad\hbox{and}\quad z=\frac{\sqrt5}{\sqrt3}. $$
0 votos
Yo esperaría que tuvieras que hacer alguna factorización de primos en un punto, de los cuales no conozco ningún algoritmo "remotamente" rápido para hacerlo.
0 votos
Hay infinitas fracciones que cumplen tus criterios: deberías aclarar qué tipo de resultado esperas.
0 votos
Las respuestas que obtuviste pueden darte alguna idea. Podría añadir otro par, pero es una pérdida de tiempo si no nos dices qué necesitas exactamente.
0 votos
Las respuestas están bien y el segundo proporcionará coprime $x$ , $y$ si lo simplificas.
2 votos
Este hilo puede ayudar,