Matemática e algoritmos
A matemática escondida no jogo de adivinhar
Como um jogo de 1 a 300 ensina metades, potências de 2 e pensamento complexo sem uma única conta no quadro.
Por Paula Peclat, pedagoga e game developer
Na Missão Algoritmo 2, a aula começa com um jogo simples. O computador pensa num número de 1 a 300 e a criança tenta adivinhar, enquanto ele responde apenas se o palpite foi alto ou baixo demais. Quase todo mundo começa chutando ao acaso, e algumas crianças tentam 1, 2, 3 até acertar. Depois de algumas rodadas, porém, alguém percebe que chutar 150 elimina metade das possibilidades de uma vez, e é nesse momento que a matemática entra na brincadeira sem pedir licença.
A metade da metade
Quando a criança chuta sempre no meio, o tamanho do problema cai pela metade a cada palpite. Com 300 números possíveis, depois do primeiro palpite sobram no máximo 150, depois 75, depois 37, e assim por diante até restar um só.
300›150›75›37›18›9›4›2›1
Números que ainda podem estar certos antes de cada palpite, no pior caso.
Contando os passos, chegamos a 9 palpites no pior caso, enquanto quem chuta 1, 2, 3 pode precisar de 300. As duas estratégias acham o número, mas uma delas trabalha muito mais do que a outra.
Por que 9 e não 8
A explicação fica mais bonita quando pensamos ao contrário. Com 1 palpite eu consigo vencer 1 número, com 2 palpites consigo vencer 3 e com 3 palpites consigo vencer 7, porque cada palpite a mais me deixa escolher entre a metade de baixo e a metade de cima. A regra é dobrar e somar 1, o que a matemática escreve como 2 elevado a k, menos 1.
8 palpites → 2⁸ − 1 = 255 não alcança 300
9 palpites → 2⁹ − 1 = 511 alcança 300
Assim a criança descobre que 9 tentativas sempre bastam. Sem saber o nome, ela acabou de usar um logaritmo, que nada mais é do que a pergunta quantas vezes preciso dividir por 2 até chegar a 1?
Quando o problema cresce
A parte que mais surpreende, inclusive os adultos, aparece quando aumentamos a quantidade de números.
| números | busca linear | busca binária |
| 15 | 15 | 4 |
| 300 | 300 | 9 |
| 1.000 | 1.000 | 10 |
| 1 milhão | 1.000.000 | 20 |
| 1 bilhão | 1.000.000.000 | 30 |
Quando a quantidade de números fica mil vezes maior, a busca linear fica mil vezes mais lenta, enquanto a busca binária precisa de só 10 tentativas a mais. É por isso que quem programa fala tanto em eficiência, já que a escolha do algoritmo pode valer mais do que um computador mais rápido.
Onde entra o pensamento complexo
Edgar Morin lembra que a palavra complexo vem do latim complexus, aquilo que é tecido junto. Pensar de forma complexa, portanto, não significa pensar de forma complicada, e sim perceber como as partes se relacionam com o todo. O jogo mostra isso de um jeito concreto, porque cada palpite isolado parece pequeno, mas a estratégia inteira depende da relação entre os palpites. A resposta “alto demais” não vale só para aquele número, já que ela muda o tamanho de todo o caminho que ainda falta explorar.
Funcionar não é o mesmo que funcionar bem.
No laboratório da aula, as crianças montam dois algoritmos com blocos de código. Os dois acham o número, porém um precisa de até 300 tentativas e o outro de 9. Para decidir qual é o melhor, a criança precisa olhar o pior caso, imaginar o problema crescendo e pensar nas consequências da sua escolha, o que exige segurar várias ideias ao mesmo tempo em vez de olhar só para o resultado de uma rodada.
Do jogo ao sistema operacional
Depois do jogo, a turma usa o mesmo raciocínio para planejar um mini sistema operacional. Um computador procura arquivos em listas em ordem alfabética com a lógica da metade, decide qual janela fica na frente usando uma pilha e reveza os programas abertos numa fila. Desse modo a criança percebe que um sistema é um conjunto de algoritmos que conversam entre si, e que uma decisão pequena numa parte afeta o funcionamento do todo. Só então ela escreve o algoritmo do próprio sistema e o entrega para a IA, sabendo explicar cada escolha que fez.
Para brincar em casa
Esse jogo cabe numa conversa de jantar. Pense num número de 1 a 100 e responda apenas “maior” ou “menor”. Se a criança chutar sempre no meio, ela acerta em no máximo 7 tentativas, porque 2⁷ − 1 = 127. Depois vale perguntar por que 7 bastam e deixar que ela tente explicar, já que é nessa explicação que o pensamento matemático aparece de verdade.
Referências. MORIN, Edgar. Introdução ao pensamento complexo. O jogo de adivinhar é inspirado na atividade de busca binária de Thomas Cormen e Devin Balkcom (Dartmouth) com a Khan Academy, licenciada em CC BY-NC-SA.