Não sei se muitos de vocês sabem, mas por muito tempo, a base da computação era madeira, bronze, metal e latão. Peraí, como assim? Ábacos te dizem alguma coisa? =D

Antes de 1700 já tinham algumas calculadoras rudimentares feitas, à base de engrenagens metálicas. E o computador mais antigo já feito é o mecanismo de Antikythera, um impressionante mecanismo capaz de prever eclipses e órbitas planetárias, entre outras coisas.
E o que esses objetos e, digamos, as engrenagens vitorianas (tanto as reais como as das histórias ficcionais) têm em comum? As engrenagens… Você já parou para pensar em como os engenheiros calculavam os números de dentes necessários em cada roda para o melhor desempenho do sistema como um todo? Ou para que um dado mecanismo tenha a velocidade desejada?
É aí que entra a teoria dos números
Existe um tipo de árvore binária com propriedades interessantes chamada de Stern-Brocot, sugerida por Moritz Abraham Stern, primeiro aluno de doutorado de Gauss e que o sucedeu no cargo de professor de matemática em Göttingen. As folhas e as arestas dessa árvore são números racionais, razões de inteiros como 4/6 ou 8/11. Ela se constrói assim: sejam quaisquer dois números racionais, a/b e c/d, e entre eles, temos o que chamamos de “mediante” (mediant em inglês), que é composto por (a+b)/(c+d). Começando com esses três números, obtemos novamente outra mediante entre o primeiro e o segundo número e entre o segundo e o terceiro número. E assim segue.
Na figura abaixo temos um exemplo:

A figura nos mostra a árvore canônica, que começa com 0/1 e 1/0 (er, ignore a divisão por zero). Aí temos 1/1 (no topo) e o nível seguinte tem (0+1)/(1+1) = 1/2 e (1+1)/(1+0) = 2/1 e assim segue.
O negócio interessante é que todo número racional aparece na árvore, mas nenhum número se repete. Ainda tem outras propriedades, mas não me estenderei aqui (recomendo ver o primeiro link no final do post). Já já voltaremos a essa árvore.
Em uma roda, a haste pode girar uma volta por um minuto ou por uma hora (ou pelo tempo que quiser). Então, como especificar o tempo que a haste de uma roda deve girar? A primeira lei dos construtores de rodas é que a velocidade de uma roda é inversamente proporcional ao número dos seus dentes (ranhuras). Para isso se usam várias rodas auxiliares, como veremos nas imagens abaixo:

Na imagem acima, a roda verde, com 20 dentes, “gerencia” a maior, com 60 dentes (no jargão da arte de fazer relógios, a roda pequena é chamada de pinion enquanto que a maior é uma roda). Enquanto a verde avança em um dente, assim o faz também a roxa. Uma revolução da verde ocasionará em 20/60 ou 1/3 da revolução da roda roxa. Então podemos dizer que a velocidade angular da roda roxa é 1/3 da verde.
Ampliando o esquema para 2 rodas grandes A e B (com seus respectivos pinions, a e b), a razão será de a/A x b/B e aí você poderá escolher os melhores valores de a, b, A e B que produzam um determinado número (que seria a velocidade desejada de uma revolução). Como exemplo, rodas com 6/200 e 5/216 produziriam 30/43200, que é igualzinho a 1/1440 (que seria uma rotação por dia).
O problema é: como achar esses números? Usando fatoração! Se quisermos apenas números inteiros nas razões, a fatoração resolve o problema. Mas o que fazer caso a razão de duas velocidades seja um número fracionário ou algo como o pi? A fatoração falha nesse caso e vai contra a tal lei que estabelece que o número de dentes deve ser um inteiro.
Achille Brocot, um eminente relojoeiro francês, sugeriu um algoritmo para isso. Vamos supor que temos uma roda menor que faz 1 revolução em 23 minutos e outra roda maior, que faz uma revolução em 3h e 11 minutos (191 minutos). Tanto 23 como 191 são números primos e a razão entre eles não dará um número racional.
Pode-se verificar que 191/23 está entre 8 e 9 (8,304…), então a razão deve ficar entre 8 para 1 e 9 para 1. Em um papel, na primeira linha anota-se:
Os 2 primeiros números representam a razão 8 para 1 e o terceiro representa o erro associado, 8/1 * 23/23 = 184/23, e 191-184 = –7, o que significa que a roda maior (a de 191 min) terminará sua rotação 7 minutos antes. Na última linha da folha de papel escreve-se:
…
com o mesmo princípio da linha anterior. Aí começa a parte iterativa do algoritmo, adiciona-se as 2 linhas (a primeira e a final) e põe no meio (que é a mediante).
…
…
Escolhe-se somar essa linha do meio com a de cima ou com a de baixo. Geralmente, é com a de cima, então temos:
…
E assim se segue iterativamente até chegar na tabela final:
| 8 |
1 |
-7 |
| 33 |
4 |
-5 |
| 58 |
7 |
-3 |
| 83 |
10 |
-1 |
| 191 |
23 |
0 |
| 108 |
13 |
+1 |
| 25 |
3 |
+2 |
| 17 |
2 |
+9 |
| 9 |
1 |
+16 |
Aí dá para se notar que a melhor aproximação para 191/23 é a razão 83/10 (um minuto adiantado) e 108/13 (um minuto atrasado).
Para diminuir mais ainda o erro, recorre-se a mais rodas dentadas. O algoritmo se aplica perfeitamente a mais rodas. Enquanto Stern viu o lado puramente matemático da coisa, Brocot usou a árvore para ajudar a calcular a melhor razão entre rodas, uma aplicação bem prática. Fascinante ver uma estrutura tanto do ponto de vista da matemática pura e da engenharia!
Depois que li sobre isso, passei a ver com outros olhos as engrenagens… E quem sabe alguém se anima de escrever uma história steampunk com esses elementos matemáticos?
Para saber mais:
Trees, Teeth, and Time: The mathematics of clock making – by David Austin
Stern-Brocot tree – Wikipedia
On the teeth of wheels – by Brian Hayes (no qual foi baseado o post)