Notação de Knuth

Fonte: testwiki
Saltar para a navegação Saltar para a pesquisa

Predefinição:Sem-fontes Em matemática, a Notação de Knuth (em inglês:Knuth's up-arrow notation) é um método de notação para inteiros muito grandes, introduzido por Donald Knuth em 1976 . É intimamente relacionada com a função de Ackermann e, especialmente, para a sequência de hiperoperações. A ideia é baseada no fato de que a multiplicação pode ser visto como uma adição iterada e a exponenciação como uma multiplicação iterada. Continuando desta forma se leva a exponenciação iterada (tetração) e para o restante da sequência de hiperoperação, que é comumente denotada pela notação da seta de Knuth.

Introdução

As operações aritméticas simples de adição, multiplicação e exponenciação são naturalmente estendidas em uma sequência de hiperoperações como segue.

Multiplicação por um número natural pode ser definida como uma adição iterada:

a×b=a+a++ab cópias de a

Por exemplo,

4×3=4+4+4=123 cópias de 4

Exponenciação para uma potência natural b pode ser definida como uma multiplicação iterada, denotada por Knuth por uma simples seta para cima:

ab=ab=a×a××ab cópias de a

Por exemplo,

43=43=4×4×4=643 cópias de 4

Para estender a sequência de operações para além exponenciação, Knuth definiu um operador “seta dupla” para denotar a exponenciação iterada (tetração):

ab= ba=aa...a=a(a(a))b cópias de ab cópias de a

Por exemplo,

43= 34=444=4(44)=42561.3×101543 cópias de 43 cópias de 4

Aqui e abaixo a avaliação é para ser realizada da direita para a esquerda, uma vez que os operadores de seta de Knuth (como exponenciação) são definidos para serem associativos à direita.

Segundo esta definição,

32=33=27
33=333=327=7.625.597.484.987
34=3333=37625597484987
35=33333=337625597484987
etc.

Isso já leva a alguns números bastante grandes, mas Knuth estendeu a notação. Ele passou a definir um operador de seta "tripla" para a aplicação iterada do operador de seta dupla (também conhecido como pentação):


ab=a(a(a))b cópias de a

seguido por um operador de 'seta quádrupla':

ab=a(a(a))b cópias de a

e assim por diante. A regra geral é que um operador-n seta expande-se em uma série associativa à direita de (n1)-operadores seta. Simbolicamente,

a  b=a  a  a  a  a  n   n1 n1   n1     b cópias de a

Exemplos:

32=33=333=327=7.625.597.484.987

33=333=3(333)=333333 cópias de 3=3337.625.597.484.987 cópias de 3

A notação anb é comumente usada para denotar ab com n setas.

Notação

Em expressões tais como ab, a notação para a exponenciação consiste geralmente em se escrever o expoente b como um número sobrescrito em relação ao número base a. Mas muitos ambientes — tais como nos fontes de linguagens de programação e em textos em formato de texto simples como mensagens de e-mail - não dispõe deste formato bidimensional. As pessoas adotaram a notação linear ab para tais ambientes, a seta para cima sugere 'elevar à potência'. Se o conjunto de caracteres não contém uma seta para cima, o acento circunflexo ^ é usado em seu lugar.

A notação sobrescrita ab não se presta bem a generalização, o que explica a razão de Knuth optar por trabalhar a partir da notação cursiva ab em vez disso.

Escrevendo a notação de seta para cima em termos de potências

A tentativa de se escrever ab usando a notação familiar com números sobrescritos resulta em uma torre de potências.

Por exemplo: a4=aaaa=aaaa

Se b é uma variável (ou é muito grande), a torre de potências pode ser escrita usando pontos e uma nota indicando a altura da torre.

ab=aa...ab

Continuando com esta notação, ab poderia ser escrita com uma pilha destas torres de potências, cada uma descrevendo o tamanho daquela que está acima de si.

a4=aaaa=aa...aaa...aaa...aa

Novamente, se b é uma variável ou é muito grande, a pilha pode ser escrita usando pontos e uma nota indicando a sua altura.

ab=aa...aaa...aa}b

Além disso, ab pode ser escrito usando-se várias colunas destas pilhas como torres de potências, cada coluna descrevendo o número de torres de potências na pilha à sua esquerda:

a4=aaaa=aa...aaa...aa}aa...aaa...aa}aa...aaa...aa}a

E de forma mais geral:

ab=aa...aaa...aa}aa...aaa...aa}}ab

Isso pode ser realizado indefinidamente para representar anb como uma exponenciação iterada de exponenciações iteradas para qualquer a,n e b(embora ele torna-se claramente bastante pesado).

Usando tetração

A notação de tetração ba nos permite fazer estes diagramas de forma um pouco mais simples, ainda empregando uma representação geométrica (que poderíamos chamar estas de torres de tetração).


ab=ba
ab=a...aab
ab=a...aaa...aaa}b

Finalmente, a título de exemplo, o quarto número de Ackermann 444 poderia ser representado como:

4...444...444...444=4...444...444444

Generalizações

Alguns números são tão grandes que o uso de várias setas da notação de seta para cima de Knuth torna-se demasiado pesado; então um operador n-setan é útil (e também para as descrições com um número variável de setas), ou de forma equivalente, hiper operadores.

Alguns números são tão grandes que até mesmo esta notação não é suficiente. O número de Graham é um exemplo. A Notação de seta encadeada de Conway pode ser usada: uma cadeia de três elementos é equivalente ao de outras notações, mas uma cadeia de quatro ou mais é ainda mais poderosa.

anb=hyper(a,n+2,b)=abn(Knuth)(Conway)

Em geral, é sugerido que a seta de Knuth deva ser usada para números de menor magnitude, e a seta encadeada de Conway ou hiper operadores para os de maior magnitude.

Definição

A notação de seta para cima é formalmente definida por

anb={ab,se n=1;1,se b=0;an1(an(b1)),em outro caso

para todos inteiros a,b,n com b0,n1.

Todos os operadores de seta para cima (incluindo a exponenciação normal, ab) são associativos à direita, ou seja, a avaliação é realizada da direita para a esquerda em uma expressão que contém dois ou mais desses operadores. Por exemplo, abc=a(bc), e não (ab)c; por exemplo
33=333 é 3(33)=327=7625597484987 e não (33)3=273=19683.

Há uma boa razão para a escolha desta ordem de avaliação da direita para à esquerda. Se usássemos a avaliação da esquerda para a direita, então ab seria igual a a(a(b1)), de modo que não seria uma operação essencialmente nova. A associatividade à direita também é natural porque nós podemos reescrever a expressão de seta iterada anna que aparece na expansão de an+1b como annan1, de forma que todos os as aparecem como operandos à esquerda dos operadores de seta. Isto é significativo uma vez que os operadores de seta não são comutativos.

Escrevendo (am)b para a b-ésima potência funcional da função f(x)=amx nós temos anb=(an1)b1.

A definição poderia ser extrapolada um passo, começando com anb=ab se n = 0, porque exponenciação é uma multiplicação repetida iniciando em 1. Extrapolando mais um passo, escrevendo a multiplicação como uma adição repetida, não é tão simples, porque a multiplicação é a adição repetida a partir de 0 ao invés de 1. "Extrapolando" novamente um passo a mais, além de escrever n como adições repetidas de 1, se requer o começo com o número a. Compare com a definição de operador hiperoperador, onde os valores de partida para a adição e multiplicação também são especificados separadamente.

Tabelas de valores

A Computação de 2mn pode ser reafirmada em termos de uma tabela infinita. Nós colocamos os números 2 n na linha superior, e preenchemos a coluna da esquerda com valores 2. Para determinar um número na tabela, pegamos o número imediatamente à esquerda, em seguida, procuramos o número necessário na linha anterior, na posição dada pelo número acabamos de tomar.

Valores de 2mn = hiper(2, m + 2, n) = 2 → n → m
m\n 1 2 3 4 5 6 7 formula
0 2 4 6 8 10 12 14 2n
1 2 4 8 16 32 64 128 2n
2 2 4 16 65536 2655362.0×1019,729 2265536106.0×1019,728 2226553610106.0×1019,728 2n
3 2 4 65536 22...265536 cópias de 2(10)65531(6.0×1019,728)       2n
4 2 4 22...265536 cópias de 2         2n

Nota: (10)k denota uma função de potência da função f(n)=10n (A função também é expressa pelo sufixo-plex como em googolplex).

A tabela é a mesma que a da função de Ackermann, com exceção de uma mudança em m e n, e um acréscimo de 3 a todos os valores.

Computando 3mn

Nós colocamos os números 3 n na linha superior, e preenchemos a coluna da esquerda com valores 3. Para determinar um número na tabela, pegue o número imediatamente à esquerda, em seguida, procura-se o número necessário na linha anterior, na posição dada pelo número acabado de tomar.

Valores de 3mn = hiper(3, m + 2, n) = 3 → n → m
m\n 1 2 3 4 5 fórmula
0 3 6 9 12 15 3n
1 3 9 27 81 243 3n
2 3 27 7.625.597.484.987 37.625.597.484.987   3n
3 3 7.625.597.484.987 33...37.625.597.484.987 cópias de 3     3n
4 3 33...37.625.597.484.987 cópias de 3       3n

Computando 10mn

Colocamos os números 10 n na linha superior, e preenchemos a coluna da esquerda com valores 10. Para determinar um número na tabela, se pega o número imediatamente à esquerda, em seguida, procura-se o número necessário na linha anterior, na posição dada pelo número que se acabou de tomar.

Valores de 10mn = hiper(10, m + 2, n) = 10 → n → m
m\n 1 2 3 4 5 fórmula
0 10 20 30 40 50 10n
1 10 100 1.000 10.000 100.000 10n
2 10 10.000.000.000 1010.000.000.000 101010.000.000.000 10101010.000.000.000 10n
3 10 1010...1010 cópias de 10 1010...101010 cópias de 10 1010...10101010 cópias de 10   10n
4 10 10...101010 cópias de 10 10...10101010 cópias de 10     10n

Observe que, para 2 ≤ n ≤ 9 a ordem numérica dos números 10mn é a ordem lexicográfica com m como o número mais significativo, assim, para os números dessas 8 colunas a ordem numérica é simplesmente linha por linha. O mesmo se aplica para os números das 97 colunas com 3 ≤ n ≤ 99, e se começarmos a partir de m = 1, mesmo para 3 ≤ n ≤ 9.999.999.999.

Sistemas de Numeração com base na sequência de hiperoperações

Goodstein [1947], com um sistema de notação diferente da notação de setas de Knuth, usou a sequência de hiperoperadores aqui denotada por (+, ×, , , ) para criar sistemas de numeração para os inteiros não negativos. Deixando sobrescritos ((1), (2), (3), (4), ) denotando os respectivos hiperoperadores (+, ×, , , ), a assim chamada representação hereditária completa do inteiro n, ao nível k e base b, pode ser expresso da seguinte forma usando apenas os k primeiros hiperoperadores e utilizando-se como dígitos apenas 0, 1, ...,b-1:

  • Para 0 ≤ nb-1, n é representado simplesmente por o dígito correspondente.
  • Para n > b-1, a representação de n é encontrada de forma recursiva, em primeiro lugar representando n na forma
b(k)xk(k1)xk1(k2)x2(1)x1
onde xk, ..., x1 são os maiores números inteiros que satisfazem (no turno)
b(k)xkn
b(k)xk(k1)xk1n
...
b(k)xk(k1)xk1(k2)x2(1)x1n.
Qualquer xi excedendo b-1 é então re-expressado da mesma forma, e assim por diante, repetindo este procedimento até que a forma resultante contenha apenas os dígitos 0, 1, ..., b-1.

O restante desta seção usará (+, ×, , , , ), ao invés de sobrescritos, para denotar o hiperoperadores.

Parênteses desnecessários podem ser evitados, dando maior precedência para operadores de maior nível na ordem de avaliação; assim,

representações de nível-1 têm a forma b+X, com X também desta forma;

representações de nível-2 têm a forma b×X+Y, com X,Y também desta forma;

representações de nível-3 têm a forma bX×Y+Z, com X,Y,Z também desta forma;

representações de nível-4 têm a forma bXY×Z+T, com X,Y,Z,T também desta forma;

e assim por diante.

As representações podem ser abreviadas, omitindo-se todas as instâncias de +0, ×1,1, 1, etc.; por exemplo, a representação de nível-3 base-2 do número 6 é 2(21×1+0)×1+(21×1+0), que abrevia a 22+2.

Exemplos: As únicas representações base-2 do número 266, nos níveis 1, 2, 3, 4, e 5 são as seguintes:

Nível 1:  266=2+2++2  (com 133 2s)
Nível 2:  266=2×(2×(2×(2×2×2×2×2+1))+1)
Nível 3:  266=22(2+1)+2(2+1)+2
Nível 4:  266=2(2+1)2+22×2+2
Nível 5:  266=222+22×2+2.

Ver também

Ligações externas

  • Knuth, Donald E., "Coping With Finiteness", Science vol. 194 n. 4271 (Dec 1976), pp. 1235–1242.
  • Robert Munafo, Large Numbers

Predefinição:Números muito grandes