Es ist altbekannt, dass jede nicht negative ganze Zahl als die Summe von vier quadratischen ganzen Zahlen umgeschrieben werden kann. Beispielsweise kann die Zahl 1 als ausgedrückt werden . Oder im Allgemeinen gibt es für jede nicht negative ganze Zahl ganze Zahlen so dass
Joseph-Louis Lagrange hat dies im 18. Jahrhundert bewiesen und wird daher oft als Satz von Lagrange bezeichnet .
Dies wird manchmal in Bezug auf Quaternionen diskutiert - eine Art Zahl, die William Hamilton im 19. Jahrhundert entdeckte und die als wobei sind reelle Zahlen und und sind verschiedene imaginäre Einheiten, die sich nicht kommutativ multiplizieren. Insbesondere wird in Bezug auf das Quadrieren jeder Komponente des Quaternions diskutiert . Diese Größe wird manchmal als Norm oder Quadratnorm oder auch Quadranz bezeichnet . Einige moderne Beweise des Satzes von Lagrange verwenden Quaternionen.
Rudolf Lipschitz studierte Quaternionen mit nur ganzzahligen Komponenten, sogenannte Lipschitz-Quaternionen. Mit der Quadranz können wir uns vorstellen, dass jede Lipschitz-Quaternion einen Freund in den ganzen Zahlen hat. Zum Beispiel kann man sich die Quaternion als der ganzen Zahl . Wenn wir rückwärts gehen, kann man sich jede ganze Zahl als Freund in den Lipschitz-Quaternionen vorstellen.
Es gibt jedoch ein interessantes Detail des Satzes von Lagrange - die Summe ist nicht eindeutig. Jede Ganzzahl kann verschiedene Sätze von vier Quadraten haben, die summiert werden können, um sie zu erstellen. Zum Beispiel kann die Zahl 1 auf vier Arten mit nicht negativen ganzen Zahlen ausgedrückt werden (betrachten wir für diese Herausforderung nur nicht negative Zahlen):
Die Summanden sind immer Quadrate von 0 oder 1, sie können sich jedoch in verschiedenen Positionen im Ausdruck befinden.
Für diese Herausforderung "sortieren" wir auch unsere Summanden von niedrig nach hoch, um Duplikate zu beseitigen, sodass wir in dieser Übung davon ausgehen können, dass 1 nur eine Möglichkeit hat, als Summe von vier Quadraten dargestellt zu werden:
Ein weiteres Beispiel ist die Zahl 42, die auf vier Arten ausgedrückt werden kann (wiederum nur unter Berücksichtigung von nichtnegativen a, b, c, d und Eliminierung doppelter Komponentenanordnungen).
Was ist, wenn wir uns jede dieser verschiedenen Arten, eine Ganzzahl auszudrücken, als mit einer bestimmten Quaternion assoziiert vorstellen? Dann könnten wir sagen, dass die Zahl 42 mit diesen vier Quaternionen assoziiert ist:
Wenn wir uns die standardmäßige Computergrafikinterpretation einer Quaternion vorstellen, bei der , und Vektoren im dreidimensionalen euklidischen Raum sind und die , und Komponenten der Quaternion dreidimensionale kartesische Koordinaten sind, können wir uns das jeweils vorstellen Eine Ganzzahl kann durch diesen Denkprozess mit einem Satz dreidimensionaler Koordinaten im Raum assoziiert werden. Beispielsweise ist die Zahl 42 den folgenden vier Koordinaten zugeordnet:
Dies kann als Punktwolke oder als Satz von Punkten im Raum betrachtet werden. Eine interessante Sache an einer Reihe von endlichen Punkten im Raum ist, dass Sie immer einen minimalen Begrenzungsrahmen um sie herum zeichnen können - einen Rahmen, der groß genug ist, um alle Punkte zu passen, aber nicht größer. Wenn Sie sich die Box als eine gewöhnliche Box vorstellen, die an den Achsen ausgerichtet ist, wird sie als achsenausgerichtete Begrenzungsbox bezeichnet . Der Begrenzungsrahmen verfügt auch über ein Volumen, das berechnet werden kann, indem Breite, Länge und Höhe ermittelt und miteinander multipliziert werden.
Wir können uns dann das Volumen eines Begrenzungsrahmens für die von unseren Quaternionen gebildeten Punkte vorstellen. Für die ganze Zahl 1 haben wir nach den Kriterien dieser Übung eine Quaternion, deren Quadranz 1, . Dies ist eine sehr einfache Punktwolke, sie hat nur einen Punkt, daher hat ihre Begrenzungsbox das Volumen 0. Für die Ganzzahl 42 haben wir jedoch vier Quaternionen und somit vier Punkte, um die wir eine Begrenzungsbox zeichnen können. Der minimale Punkt der Box ist und der maximale Punkt ist Daraus ergibt sich eine Breite, Länge und Höhe von 2, 2 und 2, was ein Volumen von 8 ergibt.
Nehmen wir an, dass für eine ganze Zahl das qVolumen das Volumen des achsenausgerichteten Begrenzungsrahmens aller 3D-Punkte ist, die durch Quaternionen gebildet werden, deren Quadranz gleich , wobei die Komponenten der Quaternion sind nicht negativ und .
Erstellen eines Programms oder der Funktion , dass bei einer einzigen nicht negative ganze Zahl , wird der Ausgang ‚s qvolume.
Beispiele:
input -> output
0 -> 0
1 -> 0
31 -> 4
32 -> 0
42 -> 8
137 -> 96
1729 -> 10032
Dies ist Code-Golf, die kleinste Anzahl von Bytes gewinnt.