sábado, 11 de setembro de 2010

O olho do camelo

Amina riu quando finalmente encontrou o templo. Um neon vermelho iluminava uma pequena porta com as palavras "Digital Guru". Mesmo para a Índia, era demais.

Seguindo o som de música, ela subiu uma escada estreita que desembocava imediatamente num quarto. Quando seus olhos finalmente alcançaram o nível do chão, viu um homem magro e sem camisa flutuando a cinco centímetros do chão. Ela gritou um grito muito curto e agudo e o homem imediatamente abriu os olhos de uma maneira ainda mais assutada.

Quando finalmente chegou perto do guru, Amina percebeu a madeira que surgia da parede e o sustentava, aparententemente, no ar.

-Você é um charlatão! Que truque barato!
-Eu coloquei uma madeira num buraco na parede e sentei sobre ela. Os suecos venderiam isso por muito dinheiro numa loja IKEA. Porque eu sou indiano, sou charlatão?

Amina desculpou-se e logo apresentou sua dúvida:

-Guru digital, por que não há soluções inteiras para a enésima raiz da soma de inteiros elevados à enésima potência?

O guru mostrou-se impaciente:

-Você quer uma solução simples para um problema que precisa de tantas palavras? Vocês filhos de Abraão sempre procuram uma singularidade. Na Índia, temos 36 milhões de Deuses e todo dia nasce um novo Deus. Para cada problema, temos um Deus. Temos tanto de tudo, que não nos interessa a simplicidade. A beleza, a procuramos na complexidade. Olhe no olho do camelo e veja todos os Deuses que existem entre 2 e 3.

Amina compreendeu imediatamente. Voltando ao hotel, escreveu o seguinte em seu computador:


use GD;

my $img=new GD::Image(255,255);

my @colours=();

for my $c (0..255) {
$colours[$c]=$img->colorAllocate($c, $c, $c),
};

my $index=0;
for(my $i=2; $i<=3; $i+=0.05) {
for my $a (1..255) {
for my $b (1..255) {

my $c=($a**$i+$b**$i)**(0.5);

my $d=int(255*($c-int($c)));
$img->setPixel($a, $b, $colours[$d]);
}
}
open(IMAGE, sprintf(">still%02d.gif", $index));
binmode IMAGE;
print IMAGE $img->gif;
close IMAGE;
$index++;
}

Esse programa gerou 20 imagens, com tons de cinza indicando a diferença entre cada c e sua parte inteira.

Usando gifsicle, ela juntou as imagens numa animação.


gifsicle --loop --delay 20 still*.gif > anim.gif


Existem muitos Deuses, mas como na Índia, nenhuma solução. Amina contentou-se em admirar a complexidade.

Nenhum comentário: