Índice
- Disciplinas Atuais
- Disciplinas Antigas
Combatendo as trevas da ignorância, neste semestre usaremos a poderosa linguagem C para explicar um dos maiores mistérios da vida na terra e derrubar por vez com certas teorias criacionistas que pipocam por aí: Como as espécies evoluem! Mais que isso, vamos provar que pequenas mudanças aleatórias, direcionadas por um processo chamado seleção natural, podem levar a grandes saltos evolutivos! Para isso, faremos um programa muito simples na nossa linguagem mais amada.
Primeiro, expliquemos a teoria como foi formulada por Charles Darwin, há 150 anos: a seleção natural atua escolhendo os indivíduos mais aptos. Estes passam seus genes para as gerações futuras e assim evoluem uma espécie. A seleção natural não é um processo aleatório. O meio determina quem serão os escolhidos para passar seus genes adiante. Ou como Darwin escreveu em seu livro A Origem das Espécies
”Pode-se dizer que a seleção natural realiza seu escrutínio dia a dia, hora a hora, pelo mundo, de qualquer variação, mesmo as mais sutis; rejeitando aquelas que são ruins e preservando e fazendo prosperar todas as que são boas; trabalhando silenciosa e imperceptivelmente, onde e quando surgir a oportunidade na melhora de cada ser orgânico em relação a suas condições orgânicas e inorgânicas de vida. Não vemos nada desse lento progresso, até que os ponteiros do relógio das eras tenham marcado um longo lapso de tempo e assim tão imperfeita é a nossa visão sobre o profundo passo das eras geológicas que tudo o que podemos ver é que as formas de vida são agora diferentes daquelas que existiam antes”.
Mas como usar C para provar isso?
A ideia é a seguinte: escolhemos uma frase que será nosso objetivo, ela atuará como molde da seleção natural, escolhendo os indivíduos mais aptos. No nosso caso “CELACANTO PROVOCA MAREMOTO” e tentaremos, a partir de frases de mesmo tamanho, mas com caracteres variando aleatoriamente, atingir esta frase. Começamos com uma frase aleatória do mesmo tamanho da frase objetivo, e desta frase geramos x frases filhas, iguais à frase genitora, mas com uma probabilidade y em cada letra, dela sofrer uma “mutação”. Das frases filhas, escolhemos a que mais se aproxima da frase objetivo (a seleção). Isto pode ser feito dando uma pontuação para cada frase filha, por exemplo, cada letra correta na posição correta vale 1 ponto. Se alguma frase gerada é igual à frase objetivo, o programa para. Senão, ele pega a frase mais “apta”, ou seja, com maior pontuação e gera outra geração de frases filhas, reiniciando o processo.
Seu programa deverá ter algumas características:
Limitamos a entrada das frases a usar apenas letras maiúsculas, sem sinal nenhum de pontuação ou letras acentuadas.
O que é o Celacanto? É um peixe considerado um fóssil vivo. Se imaginava extinto, mas foi redescoberto em 1938. Celacanto provoca maremoto? Ora, procurem no Google. Dica: ele era personagem do National Kid.