Una conocida propiedad de Stern-Brocot árbol es que existe una correspondencia uno a uno
entre las fracciones en el intervalo de $[0,1]$ y las fracciones en el intervalo de
$[1,\infty]$. Pero es mucho más simple para inicializar el árbol con el intervalo de $[0,1]$.
Haciendo así tenemos el (Pascal) algoritmo de abajo para viajar dos caminos en el
Stern-Brocot árbol que nos llevan a la fracción $5/7$ al encerrarla entre
un límite inferior $m1/n1$ y un límite superior $m2/n2$ con cada paso. El algoritmo
se detiene porque se sabe que cualquier racional número está en el árbol.
programa de Kevin;
procedimiento Stern_Brocot(cajeros,noemer : integer);
{
Caminar a través de Stern-Brocot árbol
hasta fracción = cajero/noemer
(Inglés: numerador/denominador)
}
var
m1,m2,n1,n2 : integer;
comenzar
{ Inicializar árbol }
m1 := 0; n1 := 1;
m2 := 1; n2 := 0;
mientras que el verdadero ¿
comenzar
{ si cajeros/noemer < (m1+m2)/(n1+n2) entonces }
si (n1+n2)*cajeros < (m1+m2)*noemer, a continuación,
{ Apretando }
comenzar
{ Límite Superior }
m2 := m1+m2;
n2 := n1+n2;
end else begin
{ Límite Inferior }
m1 := m1+m2;
n1 := n1+n2;
end;
Writeln(m1,'/',n1,' < ',cajeros,'/',noemer,' < ',m2,'/',n2);
si (cajero/noemer = m1/n1)
o (cajero/noemer = m2/n2) entonces Break;
end;
end;
comenzar
Stern_Brocot(5,7);
final.
Salida:
0/1 < 5/7 < 1/1
1/2 < 5/7 < 1/1
2/3 < 5/7 < 1/1
2/3 < 5/7 < 3/4
5/7 < 5/7 < 3/4
A partir de este resultado se deriva de la secuencia requerida por la mano (bueno, toda la
la cosa podría haber sido hecho por la mano en este caso simple, pero es muy útil tener un
un programa de ordenador para, por ejemplo, la aproximación de números irracionales).
1/1 < 7/5 < 1/0
1/1 < 7/5 < 2/1
1/1 < 7/5 < 3/2
4/3 < 7/5 < 3/2
4/3 < 7/5 < 7/5
Tenga en cuenta que el más cercano de pequeños y grandes antepasados están en el árbol justo antes de que el algoritmo se detiene.
EDIT. Mi favorito de referencia es esta:
Más impresionantes ejemplos son obtenidos mediante el cálculo de
los números irracionales, tales como $1/\sqrt{2}$:
si (n1+n2)(n1+n2) < (m1+m2)(m1+m2)*2 entonces
Dando, por ejemplo, después de 45 iteraciones:
$$
\frac{318281039}{225058681} < \sqrt{2} < \frac{768398401}{543339720}
$$