1 Punkte von GN⁺ 2025-02-24 | 1 Kommentare | Auf WhatsApp teilen
  • Das Rätsel, Zahlen nur mit vier Zweien zu bilden, erweitert sich je nachdem, wie weit man die erlaubten Operationen fasst, von einem Grundrechenarten-Puzzle zu einem fortgeschrittenen mathematischen Spiel.
  • Mit Brüchen und den vier Grundrechenarten lassen sich die Zahlen von 1 bis 6 bilden; fügt man Exponenten und Fakultäten hinzu, sind auch große Zahlen wie 18, 28, 256 und 65536 konstruierbar.
  • Wenn man 2en aneinanderhängt und als 22 oder 222 betrachtet oder komplexe Zahlen und den Absolutbetrag verwendet, lassen sich auch Zahlen auf vielfältige Weise darstellen, die mit einfacher Rechnung schwer zu erreichen sind.
  • 7 gilt als schwer darstellbare Zahl, aber wenn Werkzeuge wie die Gammafunktion erlaubt sind, lässt sie sich mit vier Zweien direkt bilden.
  • Paul Diracs allgemeine Lösung verwendet verschachtelte Quadratwurzeln und den Logarithmus zur Basis 2, um beliebige Zahlen auszudrücken, und erreicht mit der Ersetzung 2 = √(2+2) genau vier Zweien.

Grundregeln, um mit vier Zweien Zahlen zu bilden

  • Die Bedingung des Rätsels ist, die Ziffer 2 genau viermal zu verwenden und die Zielzahl ohne andere Ziffern nur mit mathematischen Operationen zu erzeugen.
  • Schon mit den vier Grundrechenarten und Brüchen lassen sich kleine Zahlen relativ leicht bilden.
    • 1 = (2+2)/(2+2)
    • 2 = 2/2 + 2/2
    • 3 = 2·2 - 2/2
    • 4 = 2+2+2-2
    • 5 = 2·2 + 2/2
    • 6 = 2·2·2 - 2
  • Erlaubt man Exponenten und Fakultäten, erweitert sich der darstellbare Bereich erheblich.
    • 18 = 2^(2^2) + 2
    • 28 = (2+2)! + 2 + 2
    • 256 = (2+2)^(2+2)
    • 65536 = 2^(2^(2^2))
  • Auch das Aneinanderhängen von Ziffern ist in solchen Rätseln ein häufig genutzter Trick.
    • 26 = 22 + 2 + 2
    • 11 = 22 / √(2+2)
    • 444 = 222 · 2
  • Besonders 7 ist schwierig zu bilden, aber mit der Gammafunktion lässt sie sich als 7 = Γ(2) + 2 + 2 + 2 ausdrücken.
  • Im Math StackExchange-Thread gibt es Beispiele mit Integralen, periodischen Dezimalzahlen, Kombinationsoperatoren und mehr.
  • Mit komplexen Zahlen und dem Absolutbetrag sind auch Ausdrücke wie 12 = |2 + 2√-2|² möglich.

Diracs allgemeine Lösung

  • Paul Dirac fand eine allgemeine Lösung, die auf alle Zahlen anwendbar ist; das zentrale Hilfsmittel sind verschachtelte Quadratwurzeln.
  • Wendet man auf 2 wiederholt die Quadratwurzel an, lässt sich das wie folgt in Exponentialform schreiben.
    • √2 = 2^(1/2) = 2^(2^-1)
    • √√2 = 2^(1/4) = 2^(2^-2)
    • √√√2 = 2^(1/8) = 2^(2^-3)
  • Wendet man die Quadratwurzel n-mal an, erhält man die Form √√...√2 = 2^(2^-n).
  • Nimmt man darauf einmal den Logarithmus zur Basis 2, erhält man 2^-n, und nach einem weiteren Logarithmus wird daraus -n.
  • Daher lässt sich ein beliebiges n in der Form n = -log₂(log₂(√√...√2)) ausdrücken.
  • Da die ursprüngliche Formel die Ziffer 2 nur dreimal verwendet, kann man mit 2 = √(2+2) eine einzelne 2 ersetzen und so eine Formel mit genau vier Zweien erhalten.
  • Zum Beispiel lässt sich 7 durch siebenfach verschachtelte Quadratwurzeln so ausdrücken: 7 = -log_{√(2+2)}(log₂(√√√√√√√2))
  • Das n in der Formel ist keine Zahl, die in den eigentlichen Ausdruck eingeht, sondern eine Hilfsschreibweise, um die Anzahl der Wurzelwiederholungen zu zählen.
  • Damit ist der Weg geöffnet, letztlich jede Zahl auszudrücken — übrig bleibt nur, die benötigte Anzahl von Wurzelzeichen korrekt zu schreiben.

1 Kommentare

 
GN⁺ 2025-02-24
Kommentare auf Hacker News
  • In dem Moment, in dem man Funktionen zulässt, fühlt es sich so an, als gäbe man die eigentliche Idee des Spiels auf.
    Die Gammafunktion ist zum Beispiel (n-1)!, also macht man jetzt gewissermaßen mit vier Zweien und einer Eins eine 7.
    Wenn man Zahlen in Funktionsaufrufen verstecken kann, wird es viel zu einfach, immer eine Lösung zu finden.

    • +, - (binär/unär), ×, ÷ sind ebenfalls Funktionen, und Potenzieren ist auch eine Funktion. Warum sollte man sie also zulassen?
      Bei solchen Rätseln kann man immer darüber streiten, was zum Bereich der elementaren Funktionen gehört, aber ich sehe keinen Grund, Quadratwurzeln zu verbieten.
      Zur Aussage, die Gammafunktion sei (n-1)!: Auch die 2 ist letztlich nur S(S(0)) (https://en.wikipedia.org/wiki/Peano_axioms).
      Paul Diracs Konstruktion lässt sich schwer als trivial bezeichnen; ich frage mich, ob du sie wirklich für trivial hältst oder eine noch einfachere Konstruktion kennst.
    • Genau das war auch mein erster Gedanke, sobald die Gammafunktion auftauchte.
      Warum ist die Gammafunktion erlaubt, andere Funktionen aber nicht? Wenn man beliebige Funktionen einsetzt, kann man das Spiel nach Belieben lösen.
      Letztlich ist es von Anfang an ein nicht sauber definiertes Problem. Man müsste die Menge der erlaubten Funktionen oder Operationen angeben; die Absicht, zu zeigen, wie sich das Problem je nach Wissensstand erweitert, bliebe auch mit dieser Korrektur erhalten.
    • Am Ende macht man das zum Spaß, und Gammafunktion und Quadratwurzel kann man durchaus als grundlegend genug ansehen.
      Wenn man möchte, kann man es auf verschiedene Teilmengen von Funktionen beschränken und dann beweisen, welche Zahlen darin möglich oder unmöglich sind.
      Im Artikel hieß es auch „mathematische Werkzeuge“, nicht beliebige Funktionen.
    • Der Einwand hat seine Berechtigung, aber wie andere gesagt haben, ist „Funktionen zulassen“ an sich nicht das Problem. Schließlich sind auch grundlegende mathematische Operationen Funktionen.
      Wenn man allerdings nur Funktionen zulässt, die Tupel ganzer Zahlen auf ganze Zahlen abbilden ((Z, Z, ...) -> Z), bleibt die ursprüngliche Idee des Spiels erhalten.
      Dann fallen Quadratwurzel und Logarithmus weg, Addition, Subtraktion und Multiplikation bleiben, Division fällt aber weg. Fakultät n! und Potenzieren mit nichtnegativen Exponenten wären ebenfalls zulässig.
      Ich frage mich, ob man unter dieser Einschränkung eine allgemeine Lösung konstruieren kann.
    • Die Dirac-Lösung enthält keine Gammafunktion und verwendet nur N Quadratwurzeln und zwei Logarithmen.
  • Wenn „beliebige mathematische Operationen verwenden“ erlaubt ist, ist es einfach: Man nimmt schlicht die Nachfolgerfunktion.
    S(n) = n+1
    6 = 2*2*2-2
    7 = S(2*2*2-2)
    8 = S(S(2*2*2-2))
    Und so kann man immer weitermachen.

    • Wenn man die Einschränkung „keine anderen Zahlen verwenden“ betrachtet, fühlt sich die 1 in der ersten Zeile wie Schummeln an.
    • Ich habe in der Schule viel Mathematik gelernt, arbeite im Engineering und nutze täglich Mathematik, außerdem abonniere ich viele Mathe-Kanäle auf YouTube, aber von dieser Funktion höre ich zum ersten Mal in meinem Leben.
      Dieses Rätsel hat zwar keine echten Regeln, aber diese Funktion scheint mir überhaupt nicht bekannt zu sein.
    • Eine interessantere Herausforderung wäre wohl, für eine gegebene ganze Zahl den kürzesten Ausdruck mit vier Zweien zu finden.
    • Dachte ich auch. Auch die Quadratwurzel versteckt im Grunde eine 2 in der Notation.
      Wenn nicht konkret festgelegt ist, welche Operatoren wie oft verwendet werden dürfen, ist das ganze Projekt nicht besonders konsistent.
    • Lambda-Kalkül ist in die Unterhaltung eingestiegen.
  • Passend dazu gibt es auch „Representing numbers using only one 4“, 1964 vom damals 26-jährigen Donald Knuth geschrieben (https://www.jstor.org/stable/2689238).
    Es wurde auch in Kapitel 10 seiner Selected Papers on Fun and Games erneut abgedruckt und verwendet nur eine einzige Ziffer 4 sowie die drei Operationen √x (Quadratwurzel), ⌊x⌋ (Abrundungsfunktion) und x! (Fakultät).
    Es endet mit einer bis heute ungelösten Vermutung dazu, ob sich alle ganzen Zahlen auf diese Weise darstellen lassen.
    Der Anhang zum Buch von 2011 verweist außerdem auf den noch früheren, eineinhalbseitigen Aufsatz „π in Four 4's“ von J. H. Conway und M. J. T. Guy aus dem Jahr 1962. Es ist eine ähnliche Idee aus ihrer Zeit als Studenten in Cambridge: https://archive.org/details/eureka-25/page/18/mode/1up?view=...
    Zum Beispiel gilt 5 = ⌊√√√√√(4!)!⌋, weil 24! zwischen 5^32 und 6^32 liegt.

  • Vielleicht geht es nur mir so, aber ich fand die Entscheidung, sqrt(2+2) statt sqrt(2*2) oder sqrt(2^2) zu verwenden, seltsam.
    Sie verschleiert unnötig, warum 2=sqrt(2+2) gilt.

    • Guter Punkt, aber ich würde es nicht einfach nur als seltsame Entscheidung des Autors sehen.
      Der gesamte Artikel, jedes Argument, die Gesamtthese, Formulierungen, Formatierung usw. beanspruchen kognitive Bandbreite, und möglicherweise gab es auch Zeitdruck.
      Als Kritiker kann man sich entspannt auf nur einen Punkt konzentrieren, daher wirkt es offensichtlich. :)
    • Vielleicht gibt es irgendwo eine Art Golf-Score, der Operationen mit niedrigen Kosten belohnt.
      Der „Dirac-Hack“ dürfte viele Punkte kosten.
    • Wirklich? Warum? 2+2, 2*2, 2^2 sind alle offensichtlich 4 und sqrt(4)=2; ich verstehe nicht, warum + seltsamer sein soll als die anderen.
  • Persönlich gefällt mir die Seite der Knappheit besser.
    Ich hatte eine Stack-Maschine mit Ein-Zeichen-Befehlen gebaut und musste eine Variante dieses Problems lösen. Es gab nur die Ziffern 0 bis 9, und die Zeichen 23 bedeuteten, erst 2 und dann 3 auf den Stack zu pushen. Um die tatsächliche Zahl 23 darzustellen, musste man etwas wie 45*3+ schreiben.
    Damit blieb das Problem, jede Ganzzahl mit möglichst wenigen Zeichen zu kodieren.
    Die verfügbaren Werkzeuge waren die Ziffern 0 bis 9, P: Pi, *: (a * b), /: (a / b), -: (a - b), +: (a + b), s: sin(a), c: cos(a), q: sqrt(a), l: log(a), ~: abs(a), #: round(a), $: Math.floor(a), C: clamp(a), <: min(a, b), >: max(a, b), ^: pow(a, b), a: atan2(a, b), %: positiveMod(a, b), !: (1 - a), ?: (a <= 0 ? 0 : 1), o: a xor b scaled by c; ((a*c) xor (b*c))/c, d: oberstes Stack-Element duplizieren, :: die obersten zwei Elemente vertauschen, ;: das oberste und das dritte Element vertauschen.
    Ich frage mich, was möglich wäre, wenn ich diese Stack-Maschine später einmal als Komplexzahlen-Stack neu bauen würde.
    Wenn ich das nächste Mal so etwas poste, werde ich es nicht am Handy schreiben.

    • Die allgemeine Antwort könnte nicht berechenbar sein.
      https://en.wikipedia.org/wiki/Kolmogorov_complexity
    • Wie wäre es, jede Zahl mit einem Befehl „mit 10 multiplizieren und diese Ziffer addieren“ zu erzeugen und zusätzlich einen eigenen Befehl zu haben, der wie ein Leerzeichen eine 0 pusht? Dann könnte man 23 als " 23" darstellen.
    • Das erinnert mich an https://www.hacker.org/hvm/ (2008).
    • Ziemlich viele Zahlen dürften in Basis 9 oder Basis 10 kodiert werden. Im Großen und Ganzen wohl als Wiederholung eines Musters wie digit + * digit + * oder einer äquivalenten Form.
  • Es ist zwar nur ein kleiner Makel bei „die Ziffer 2 nur dreimal verwenden“, aber das gilt nur, wenn man ignoriert, dass die Wurzelschreibweise einen gemeinsamen Wert als Standard annimmt und die Potenz 1/2 versteckt.
    Da sind ziemlich viele versteckte Zweien.

    • Es ist schwer zu behaupten, dass die Wurzelschreibweise wirklich etwas versteckt. Dass sie fast dasselbe wie eine halbe Potenz ist, ist ein Satz.
      Dann müsste man auch zugestehen, dass 2 1+1 versteckt, und wird das Spiel dadurch unmöglich?
      Da quadratische Polynome viel häufiger sind als Polynome höheren Grades, fühlt sich die Quadratwurzel grundlegender an als eine beliebige Potenz.
      Es gibt viele Hinweise darauf, dass das Spiel lächerlich wird, sobald man ausgefallene Funktionen zulässt, aber persönlich finde ich es gerade reizvoll, auch ohne konkrete Regelbeschränkungen zufriedenstellende Lösungen zu finden.
  • Dazu gab es einmal eine Reverse-Engineering/CTF-Aufgabe. Den Namen nenne ich nicht, um Cheating zu verhindern, aber meine Lösung bestand darin, Shellcode einzuschleusen, der einen bestimmten Wert zum Stack-Pointer addiert.
    Allerdings durfte der gesamte Shellcode, einschließlich der zu addierenden Zahl, nur aus alphanumerischen ASCII-Bytes bestehen.
    Also habe ich einen SAT-Solver verwendet, um eine Kombination von Zahlen zu finden, die ohne verbotene Bytes auf den gewünschten Wert addiert.
    https://docs.google.com/presentation/d/19K7SK1L49reoFgjEPKCF...

  • Das erinnert mich an das Mobile Game Tchisla. Man bekommt eine Zahl und einige Operatoren, Quadratwurzel und ! usw., und muss damit alle Zahlen bis 1000 oder 10000 erzeugen.
    Es macht ziemlich viel Spaß, man entwickelt mit der Zeit Strategien, und die User Experience ist schlicht und effizient. Man sollte nur vorher wissen, dass es unglaublich viel Zeit frisst.
    [0] https://apps.apple.com/fr/app/tchisla-number-puzzle/id110062...

  • Es gibt das klassische Problem der vier Vieren, das ich als Kind aus dem Buch „The Man Who Counted“ kennengelernt habe.
    https://en.wikipedia.org/wiki/Four_fours
    https://en.wikipedia.org/wiki/The_Man_Who_Counted

    • Das war auch die Version, die ich als Kind gelernt habe. Diese Seite, die ich gemacht habe, könnte ebenfalls interessant sein:
      The Definitive Four Fours Answer Key
      https://dwheeler.com/fourfours/
    • Genau das war es.
      Damit habe ich falsche Induktion gelernt. Mir gefiel auch die Geschichte, in der Leute in einer Reihe stehen, etwas auf dem Rücken kleben haben und erraten müssen, was es ist.
  • Beeindruckend ist es schon, aber in diesem sqrt-Symbol stecken einfach zu viele Zweien.