Die Funktion TREE (k) gibt die Länge der längsten Folge von Bäumen T 1 , T 2 , ... an, wobei jeder Scheitelpunkt mit einer von k Farben gekennzeichnet ist, der Baum T i höchstens i Scheitelpunkte hat und kein Baum a ist minor jeden Baum folgenden es in der Sequenz.
BAUM (1) = 1, mit zB T 1 = (1)
.
BAUM (2) = 3: zB T 1 = (1)
; T 2 = (2)--(2)
; T 3 = (2)
.
TREE (3) ist eine große Zahl. Noch größer als Grahams Zahl. Ihre Aufgabe ist es, eine noch größere Zahl auszugeben !
Dies ist ein Codegolf, daher ist es das Ziel, das kürzeste Programm in jeder Sprache zu schreiben, das deterministisch eine Zahl größer oder gleich TREE (3) (zur Standardausgabe) ausgibt.
- Sie dürfen keine Eingaben machen.
- Ihr Programm muss eventuell beendet werden, Sie können jedoch davon ausgehen, dass der Computer über unendlich viel Speicher verfügt.
- Sie können davon ausgehen, dass der Zahlentyp Ihrer Sprache einen beliebigen endlichen Wert enthalten kann , müssen jedoch erläutern, wie dies in Ihrer Sprache genau funktioniert (Beispiel: Hat ein Gleitkomma eine unendliche Genauigkeit?)
- Unendlichkeiten sind als Ausgabe nicht erlaubt.
- Unterlauf eines Zahlentyps löst eine Ausnahme aus. Es wickelt sich nicht um.
- Da Baum (3) , wie eine komplexe Zahl ist , kann man die Verwendung schnell wachsende Hierarchie Approximation f θ (& OHgr; & ohgr; & ohgr;) + 1 (3) , wenn die Anzahl zu schlagen.
- Sie müssen erklären, warum Ihre Nummer so groß ist, und eine unbenutzte Version Ihres Codes angeben, um zu überprüfen, ob Ihre Lösung gültig ist (da es keinen Computer mit genügend Speicher zum Speichern von TREE gibt (3) ).
Hinweis: Keine der Antworten zur Zeit gefunden hier Arbeit.
code-golf
math
number
busy-beaver
PyRulez
quelle
quelle
TREE(3)+1
dort gewinne ichAntworten:
Neuer Rubin, 135 Bytes, >> H ψ (φ 3 (Ω + 1)) (9)
wobei H die Hardy-Hierarchie ist, ψ eine erweiterte Version von Madores OCF ist (wird unten erklärt) und φ die Veblen-Funktion ist.
Probieren Sie es online!
Ungolfed: (mit Funktionen, nicht Lambdas)
Madores erweitertes OCF:
Und (grob) Veblens Phi-Funktion:
Erklärung ohne Ordnungszahlen:
Mein Programm wird gestartet
k = 9, h = [[],9,9]
. Es gilt dannk = k*k
undh = f(h,k)
bish == 0
und Ausgängek
.Erklärung mit Ordnungszahlen:
ψ '(ω ∙ α) ≈ ψ (α), die im obigen Bild beschriebene Ordinalkollabierfunktion.
Mein Programm leitet
k = 9
und mehr oder weniger ein undh = Ω(↑9)9
gilt dannk ← k²
undh ← h[k,h]
bish = 1
und kehrt zurückk
.Und wenn ich das richtig gemacht habe,
[[],9,9]
ist es viel größer als die Bachmann-Howard-Ordnungszahl ψ (Ω Ω Ω ... ), die viel größer als ϑ (Ω ω ω) +1 ist.ψ (Ω (↓ 9) 9)> ψ (Ω (↓ 4) 3)> ψ ( Ω Ω ) +1> ψ ( Ω ω ω ) +1> ϑ (Ω ω ω) +1
Und wenn meine Analyse korrekt ist, sollten wir ψ '(Ω Ω ~ x) ~ = ψ * (Ω Ω ∙ x) haben, wobei ψ * die normale psi-Funktion von Madore ist. Wenn dies zutrifft, ist meine Ordnungszahl ungefähr ψ * (φ 3 (Ω + ω)).
Old Rubin, 309 Bytes, H ψ‘ 0 (Ω 9 ) (9) (siehe Revisionsgeschichte neben der neue ist viel besser)
quelle
a.class!=Array
, am idiomatischsten,!a.is_a? Array
aber am kürzesten, was ich mir vorstellen kanna!=[*a]
. Und die Methoden können in Lambdas umgewandelt werden:f=->a,n=0,b=a{...}...f[x,y]
um einige Zeichen zu speichern und möglicherweise Refactoring-Möglichkeiten zu eröffnen, indem sie als erstklassige Objekte verwendet werden.Haskell, 252 Bytes, TREE (3) +1
Vielen Dank für die Hilfe von H.PWiz, Laikoni und Ørjan Johansen für die Hilfe beim Golfspielen des Codes!
Wie von HyperNeutrino vorgeschlagen , gibt mein Programm genau TREE (3) +1 aus (TREE ist berechenbar, wie sich herausstellt).
T n c
ist ein Baum mit Labelc
und Knotenn
.c
sollte es sein1
,2
oder3
.l t
ist die Anzahl der Knoten in einem Baumt
.t1 # t2
ist wahr, wennt1
homöomorph eingebettet istt2
(basierend auf Definition 4.4 hier ), und falsch, wenn nicht.a n
gibt eine große Liste von Bäumen aus. Die genaue Liste ist nicht wichtig. Die wichtige Eigenschaft ist , dassa n
jeder Baum enthält auf bisn
Knoten mit Knoten mit abgestempelt zu werden1
,2
oder3
, und vielleicht noch einige mehr Bäume als auch (aber die anderen Bäume werden auch beschriftbar mit1
,2
oder3
). Es ist auch garantiert, dass eine endliche Liste ausgegeben wird.s n
listet alle Sequenzen der Längen
von Bäumen auf, so dass das Gegenteil (da wir es rückwärts bauen) dieser Sequenz gültig ist. Eine Sequenz ist gültig, wenn das n-te Element (bei dem wir mit 1 beginnen) höchstens n Knoten hat und kein Baum homöomorph in einen späteren eingebettet ist.main
druckt die kleinsten
so aus, dass es keine gültigen Längenfolgen gibtn
.Da
TREE(3)
als Länge die längste gültige Folge definiert ist,TREE(3)+1
ist die kleinsten
so, dass es keine gültigen Längenfolgenn
gibt, was mein Programm ausgibt.quelle
Python 2, 194 Bytes, ~ H ψ (& OHgr; & OHgr; & OHgr; ) (9)
Dabei ist H die Hardy-Hierarchie und ψ die Ordinalkollabierfunktion unter der von Pohlers definierten Bachmann-Howard-Ordinalzahl.
Vielen Dank an Jonathan Frech für -3 Bytes.
Probieren Sie es online!
Besser verteilte Version:
Erläuterung:
Dieses Programm implementiert eine Variante der Buchholz-Hydra , wobei nur die Bezeichnungen 0 und 1 verwendet werden. Grundsätzlich sehen wir uns bei jedem Schritt den ersten Blattknoten des Baums an und prüfen, ob er mit 0 oder 1 gekennzeichnet ist.
-Wenn der Blattknoten mit einer 0 gekennzeichnet ist, löschen wir den Blattknoten und kopieren dann den Baum ab dem Elternknoten c-mal, wobei alle Kopien mit dem Großelternteil des Blattknotens verbunden sind.
-Wenn der Blattknoten mit einer 1 gekennzeichnet ist, suchen wir zurück zur Wurzel, bis wir einen mit einer 0 gekennzeichneten Ahnenknoten erreichen. Sei S der Baum, der von diesem Ahnenknoten ausgeht. Sei S 'S, wobei der Blattknoten mit 0 neu beschriftet ist. Ersetzen Sie den Blattknoten durch S'.
Dann wiederholen wir den Vorgang, bis wir nur noch den Wurzelknoten haben.
Dieses Programm unterscheidet sich vom normalen Buchholz-Hydra-Verfahren in zweierlei Hinsicht: Zuerst führen wir, nachdem wir das oben beschriebene Verfahren durchgeführt haben, eine Rekursion des Baums durch und führen das oben beschriebene Verfahren zum Kopieren der Bezeichnung 0 für jeden Vorfahrknoten des ursprünglichen Blattknotens durch. Dies vergrößert den Baum, so dass unser Verfahren länger dauert als die normale Buchholz-Hydra und daher am Ende zu einer größeren Anzahl führt. Es wird jedoch immer noch beendet, da die Ordnungszahl, die dem neuen Baum zugeordnet ist, immer noch kleiner ist als der alte Baum. Der andere Unterschied ist, anstatt mit c = 1 zu beginnen und jedes Mal 1 zu erhöhen, beginnen wir mit c = 9 und quadrieren es jedes Mal, weil warum nicht.
Der Baum [[[1,1], 1], 0] entspricht die Ordinalzahl ψ (& OHgr; & OHgr; & OHgr; ), die wesentlich größer als die Ordnungs θ ist (& OHgr; & ohgr; & ohgr;), und so unsere resultierende Endzahl von etwa H ψ (Ω Ω Ω ) (9) wird TREE (3) definitiv überschreiten.
quelle
Rubin, 140 Bytes, ~ H ψ (& OHgr; & OHgr; & OHgr; ) (81)
Dabei ist H die Hardy-Hierarchie und ψ die Standard-Ordinalkollabierfunktion unterhalb der hier definierten Bachmann-Howard-Ordinalzahl .
Probieren Sie es online!
Ungolfed-Version:
Dieses Programm implementiert die Buchholz-Hydra mit Knoten, die mit [] und 1 gekennzeichnet sind, wie in meinem Python 2-Eintrag beschrieben.
Der Baum [[], [1, [1,1]]] entspricht der Ordinalzahl ψ (& OHgr; & OHgr; & OHgr; ), die wesentlich größer als die Ordnungs θ ist (& OHgr; & ohgr; & ohgr;) = ψ (& OHgr; & OHgr; & ohgr; & ohgr; ), und so unsere Endzahl von etwa H resultierenden ψ (& OHgr; & OHgr; & OHgr; ) (81) übersteigt TREE (3).
quelle
u==0?v:u==[]?v
, könnte man schreibenu==0?||u[0]?v
, was zwei Bytes spart.Julia, 569 Bytes, Ladernummer
Um mir ein wenig Arbeit zu ersparen, entschloss ich mich, Loader.c fast eins zu eins auf Julia zu portieren und es in den obigen Codeblock zu komprimieren. Für diejenigen, die die Vergleiche selbst durchführen möchten (entweder um meine Wertung zu überprüfen oder um mir zu helfen, Fehler zu finden oder meinen Code zu verbessern), ist eine ungolfed Version unten aufgeführt:
Keine vorherigen Zählungen, weil ich beim aggressiven Golfen viel zu viele Byte-Fehlzählungen gemacht habe.
quelle
JavaScript, 190B, H ψ (ε Ω + 1 ) (9) Basierend auf dieser Analyse
Dieses Programm ist eine modifizierte Version dieser 225B-Übersetzung von Paarbildern in JavaScript . Die Pair-Sequenz-Nummer und ihren Originalcode finden Sie hier .
Die vorgenommenen Änderungen:
quelle