A função TREE (k) fornece o comprimento da sequência mais longa de árvores T 1 , T 2 , ... onde cada vértice é rotulado com uma das k cores, a árvore T i tem no máximo i vértices e nenhuma árvore é uma menor de qualquer árvore após a sequência.
ÁRVORE (1) = 1, com, por exemplo, T 1 = (1)
.
ÁRVORE (2) = 3: por exemplo, o t 1 = (1)
; T 2 = (2)--(2)
; T 3 = (2)
.
ÁRVORE (3) é um grande número grande . Ainda maior que o número de Graham. Seu trabalho é produzir um número ainda maior que ele!
Este é um código-golfe, portanto, o objetivo é escrever o programa mais curto em qualquer idioma que produza deterministicamente um número maior ou igual a TREE (3) (ao stdout).
- Você não tem permissão para receber informações.
- Seu programa deve terminar eventualmente, mas você pode assumir que a máquina possui memória infinita.
- Você pode assumir que o tipo de número do seu idioma pode conter qualquer valor finito, mas precisa explicar como isso funciona exatamente no seu idioma (por exemplo: um flutuador tem precisão infinita?)
- Infinidades não são permitidas como saída.
- O fluxo insuficiente de um tipo de número gera uma exceção. Não envolve.
- Como TREE (3) é um número tão complexo, você pode usar a aproximação da hierarquia de crescimento rápido f ϑ (Ω ω ω) +1 (3) como o número a ser batido.
- Você precisa fornecer uma explicação do motivo pelo qual seu número é tão grande e uma versão não-gasta do seu código para verificar se sua solução é válida (já que não há computador com memória suficiente para armazenar o TREE (3) )
Nota: Nenhuma das respostas atualmente encontradas aqui funciona.
code-golf
math
number
busy-beaver
PyRulez
fonte
fonte
TREE(3)+1
ai eu ganhoRespostas:
Ruby novo, 135 bytes, >> H ψ (φ 3 (Ω + 1)) (9)
onde H é a hierarquia Hardy, ψ é uma versão estendida do OCF de Madore (será explicado abaixo) e φ é a função Veblen.
Experimente online!
Ungolfed: (usando funções, não lambdas)
OCF estendido de Madore:
E (grosseiramente) a função phi de Veblen:
Explicação sem ordinais:
Meu programa inicia
k = 9, h = [[],9,9]
. Em seguida, aplica-sek = k*k
eh = f(h,k)
atéh == 0
e saídask
.Explicação com os ordinais:
ψ '(ω ∙ α) ≈ ψ (α), a função de colapso ordinal descrita na imagem acima.
Meu programa inicia mais ou menos
k = 9
eh = Ω(↑9)9
, em seguida, aplicak ← k²
eh ← h[k,h]
atéh = 1
e retornak
.E assim, se eu fiz isso direito,
[[],9,9]
é muito maior que o ordinal de Bachmann-Howard ψ (Ω Ω Ω ... ), que é muito maior que ϑ (Ω ω ω) +1.ψ (Ω (↓ 9) 9)> ψ (Ω (↓ 4) 3)> ψ (Ω Ω Ω ) +1> ψ (Ω Ω ω ω ) +1> ϑ (Ω ω ω) +1
E se minha análise estiver correta, deveríamos ter ψ '(Ω Ω ∙ x) ~ = ψ * (Ω Ω ∙ x), onde ψ * é a função psi normal de Madore. Se isso acontecer, meu ordinal é aproximadamente ψ * (φ 3 (Ω + ω)).
Old Ruby, 309 bytes, H ψ ' 0 (Ω 9 ) (9) (consulte o histórico de revisões , além do novo ser muito melhor)
fonte
a.class!=Array
, o mais idiomático é o!a.is_a? Array
mais curto que consigo pensara!=[*a]
. E os métodos podem ser convertidos em lambdas:f=->a,n=0,b=a{...}...f[x,y]
para salvar alguns caracteres e talvez abrir possibilidades de refatoração usando-os como objetos de primeira classe.Haskell, 252 bytes, ÁRVORE (3) +1
Obrigado pela ajuda de H.PWiz, Laikoni e Ørjan Johansen pela ajuda no golfe!
Conforme sugerido pelo HyperNeutrino , meu programa gera TREE (3) +1, exatamente (TREE é computável como se vê).
T n c
é uma árvore com rótuloc
e nósn
.c
deve ser1
,2
ou3
.l t
é o número de nós em uma árvoret
.t1 # t2
é verdadeiro set1
incorporado homeomorficamentet2
(com base na definição 4.4 aqui ) e falso caso contrário.a n
gera uma grande lista de árvores. A lista exata não é importante. A propriedade importante é quea n
contém todas as árvores atén
nós, com nós de ser rotulado com1
,2
, ou3
, e talvez algumas mais árvores, bem como (mas essas outras árvores também será marcado com1
,2
ou3
). Também é garantido a saída de uma lista finita.s n
lista todas as sequências de comprimenton
das árvores, de modo que o inverso (desde que a construamos para trás) dessa sequência seja válido. Uma sequência é válida se o enésimo elemento (onde começamos a contar com 1) tiver no máximo n nós e nenhuma árvore homeomorficamente se incorporar a um nó posterior.main
imprime o menor, den
modo que não haja seqüências válidas de comprimenton
.Como
TREE(3)
é definido como o comprimento da maior seqüência válida,TREE(3)+1
é o menor, den
modo que não haja sequências válidas de comprimenton
, que é o que meu programa gera.fonte
Python 2, 194 bytes, ~ H ψ (Ω Ω Ω ) (9)
onde H é a hierarquia de Hardy e ψ é a função de colapso ordinal abaixo do ordinal de Bachmann-Howard definido por Pohlers.
Agradecimentos a Jonathan Frech por -3 bytes.
Experimente online!
Versão melhor espaçada:
Explicação:
Este programa implementa uma variante da hidra de Buchholz , usando apenas rótulos de 0 e 1. Basicamente, a cada passo, observamos o primeiro nó da folha da árvore e verificamos se está marcado com 0 ou 1.
-Se o nó folha é rotulado com 0, excluímos o nó folha e copiamos a árvore a partir do pai do nó folha c vezes, todas as cópias conectadas ao avô do nó folha.
-Se o nó folha é rotulado com 1, então pesquisamos de volta para a raiz até chegarmos a um nó ancestral rotulado com 0. Seja S a árvore que começa nesse nó ancestral. Seja S 'S com o nó da folha rotulado novamente com 0. Substitua o nó da folha por S'.
Em seguida, repetimos o processo até não termos mais nada além do nó raiz.
Este programa difere do procedimento normal da hidra de Buchholz de duas maneiras: Primeiro, depois de executar o procedimento acima, recuamos novamente na árvore e fazemos o procedimento de cópia do rótulo 0 descrito acima para cada nó ancestral do nó folha original. Como aumenta o tamanho da árvore, nosso procedimento levará mais tempo que a hidra normal de Buchholz e, portanto, levará a um número maior no final; no entanto, ele ainda será encerrado porque o ordinal associado à nova árvore ainda será menor que a árvore antiga. A outra diferença é que, em vez de começar com c = 1 e aumentar 1 a cada vez, começamos com c = 9 e o colocamos ao quadrado toda vez, porque por que não?
A árvore [[[1,1], 1], 0] corresponde ao ordinal ψ (Ω Ω Ω ), que é consideravelmente maior que o ordinal ϑ (Ω ω ω) e, portanto, nosso número final resultante de cerca de H ψ (Ω Ω Ω ) (9) excederá definitivamente a ÁRVORE (3).
fonte
Ruby, 140 bytes, ~ H ψ (Ω Ω Ω ) (81)
onde H é a hierarquia de Hardy e ψ é a função de recolhimento ordinal padrão abaixo do ordinal de Bachmann-Howard, conforme definido aqui .
Experimente online!
Versão não destruída:
Este programa implementa a hidra de Buchholz com nós rotulados com [] e 1, conforme descrito na minha entrada do Python 2.
A árvore [[], [1, [1,1]]] corresponde ao ordinal ψ (Ω Ω Ω ), que é consideravelmente maior que o ordinal ϑ (Ω ω ω) = ψ (Ω Ω ω ω ) e portanto, nosso número final resultante de cerca de H ψ (Ω Ω Ω ) (81) excederá ÁRVORE (3).
fonte
u==0?v:u==[]?v
você pode escreveru==0?||u[0]?v
, o que economiza dois bytes.Julia, 569 bytes, Número do carregador
Para economizar um pouco de trabalho braçal, decidi portar o Loader.c para Julia quase um por um e compactá-lo no bloco de código acima. Para aqueles que desejam fazer as comparações eles mesmos (para verificar minha pontuação ou para me ajudar a encontrar erros ou melhorar meu código), uma versão não-gasta está abaixo:
Nenhuma contagem anterior porque fiz muitos erros de bytes no golfe agressivo que fiz.
fonte
JavaScript, 190B, H ψ (ε Ω + 1 ) (9) Baseado nesta análise
Este programa é uma versão modificada desta tradução de número de sequência de pares 225B em JavaScript . Para o número de sequência de pares e seu código original, consulte aqui .
As modificações feitas:
fonte