È risaputo che ogni numero intero non negativo può essere riscritto come la somma di quattro numeri quadrati. Ad esempio il numero 1 può essere espresso come . O, in generale, per qualsiasi numero intero non negativo , esistono numeri interi tali che
Joseph-Louis Lagrange lo dimostrò nel 1700 e quindi viene spesso chiamato Teorema di Lagrange .
Questo è talvolta discusso in relazione ai quaternioni - un tipo di numero scoperto da William Hamilton nel 1800, rappresentato come
Rudolf Lipschitz studiò i quaternioni con solo componenti interi, chiamati quaternioni di Lipschitz. Usando il quadrante, possiamo immaginare che ogni quaternione di Lipschitz possa pensare di avere un amico negli interi. Ad esempio quaternione può essere considerato come associato all'intero . Inoltre, se torniamo indietro, si può pensare che ogni numero intero abbia un amico nei quaternioni di Lipschitz.
Ma c'è un dettaglio interessante del teorema di Lagrange: la sommatoria non è unica. Ogni numero intero può avere diversi set di quattro quadrati che possono essere sommati per crearlo. Ad esempio, il numero 1 può essere espresso in 4 modi usando numeri interi non negativi (consideriamo solo i non negativi per questa sfida):
I riepiloghi sono sempre quadrati di 0 o 1, ma possono trovarsi in posizioni diverse nell'espressione.
Per questa sfida, cerchiamo anche di "ordinare" le nostre somme dal più basso al più alto, per eliminare i duplicati, in modo da poter considerare, per questo esercizio, che 1 ha un solo modo di essere rappresentato come la somma di quattro quadrati:
Un altro esempio è il numero 42, che può essere espresso in quattro modi (di nuovo, considerando solo a, b, c, d non negativi ed eliminando le disposizioni dei componenti duplicati)
E se immaginiamo che ognuno di questi diversi modi di esprimere un numero intero sia associato a un quaternione specifico? Quindi potremmo dire che il numero 42 è associato a questi quattro quaternioni:
Se immaginiamo l'interpretazione standard della computer grafica di un quaternione, dove , e sono vettori nello spazio euclideo tridimensionale , e quindi i componenti , e del quaternione sono coordinate cartesiane tridimensionali , quindi possiamo immaginare che ogni numero intero, attraverso questo processo di pensiero, possa essere associato a un insieme di coordinate tridimensionali nello spazio. Ad esempio, il numero 42 è associato alle seguenti quattro coordinate :
Questo può essere pensato come una nuvola di punti o un insieme di punti nello spazio. Ora, una cosa interessante di un insieme di punti finiti nello spazio è che puoi sempre disegnare un riquadro di delimitazione minimo attorno a loro - un riquadro abbastanza grande da contenere tutti i punti, ma non più grande. Se immagini il riquadro come un normale riquadro allineato con gli assi , viene chiamato riquadro di delimitazione allineato agli assi . Il rettangolo di selezione ha anche un volume, calcolabile determinandone larghezza, lunghezza e altezza e moltiplicandoli insieme.
Possiamo quindi immaginare il volume di un rettangolo di selezione per i punti formati dai nostri quaternioni. Per l'intero 1, abbiamo, usando i criteri di questo esercizio, un quaternione il cui quadrante è 1, . Questa è una nuvola di punti molto semplice, ha solo un punto, quindi il suo riquadro di delimitazione ha volume 0. Per l'intero 42, tuttavia, abbiamo quattro quaternioni e quindi quattro punti, attorno ai quali possiamo disegnare un riquadro di delimitazione. Il punto minimo della casella è e il massimo è risultando in larghezza, lunghezza e altezza di 2, 2 e 2, dando un volume di 8.
Diciamo che per un numero intero , il volume è il volume del riquadro di delimitazione allineato all'asse di tutti i punti 3D formati da quaternioni che hanno un quadrante uguale a , dove i componenti del quaternione sono non negativi e .
Crea un programma o una funzione che, dato un singolo numero intero non negativo , genererà nvolume di .
Esempi:
input -> output
0 -> 0
1 -> 0
31 -> 4
32 -> 0
42 -> 8
137 -> 96
1729 -> 10032
Questo è code-golf, il minor numero di byte vince.