Qual é o maior número que existe?

Suponhamos que estão reunidos quatro amigos numa mesa de bar, um médico, um advogado (os outros estão de olho nas suas carteiras…), um matemático e um engenheiro de computação. Depois de muitas cervejas, para decidir quem paga a conta eles fazem a seguinte disputa: “em quinze segundos, quem escrever o maior número não paga”.

Antes que o advogado garfasse eles escrevendo o maior número que todo mundo escreveu mais 10%, ele costumava cobrar “10 purça” nos seus negócios com o governo, o pessoal estabeleceu algumas regras: não vale escrever algo que não seja calculável (assim elimina o truque do advogado), nem escrever coisas não numéricas como infinito, \aleph_0, etc.

Cada um pegou seu guardanapo e deram a largada.

O advogado escreveu 10000000000000000000000000000 e acabou o tempo.

O médico, um pouco mais sabedor de matemática escreveu 10^{10000000000000000000000000} e acabou o tempo.

O matemático escreveu 10^{10^{10^{10^{10^{10^{10}}}}}} e acabou o tempo.

E o cara da computação escreveu A(100,100), onde A é a função de Ackerman.

Não preciso dizer quem ganhou …

A função de Ackerman é definida para números inteiros maiores ou iguais a 0 pela seguinte descrição:

A(m,n) = n + 1 se m = 0
A(m,n) = A(m-1,1) se m > 0 e n = 0
A(m,n) = A(m-1,A(m,n-1)) se m>0 e n>0

Ou em Python de forma simples:

def A(m,n):
    if m==0:
       return n+1
    if n==0:
       return A(m-1,1)
    return A(m-1,A(m,n-1))

Esta inocente função produz resultados brutalmente gigantes rapidamente. A(4,4) = 2^2^2^2^2^2^2 – 3

Se você quiser ter uma idéia do dano causado por isto vá no seu python e digite: 2**2

A seguir digite: 2**2**2

Depois digite 2**2**2**2

Se fizer isto mais uma vez vai comer toda sua memória e não vai terminar o cálculo.

A(100,100) é um número tão gigante que nós nem temos bytes suficientes no mundo para representá-lo.

Portanto o advogado, o médico e o matemático pagaram as bebidas do cara da computação. Não sabiam eles, que no próximo encontro, iriam pagar de novo, pois o cara da computação sabia uma função ainda mais brutal que a de Ackerman.

Se você quiser saber mais sobre este assunto leia o artigo: “Who Can Name the Bigger Number?.”

numbers

Comments on this entry are closed.