Calkin–Wilf tree - Calkin–Wilf tree

L'albero di Calkin-Wilf
Come i valori sono derivati ​​dal loro genitore
L'albero dalle Harmonices Mundi di Keplero (1619)

In teoria dei numeri , l' albero di Calkin-Wilf è un albero in cui i vertici corrispondono uno a uno ai numeri razionali positivi . L'albero è radicato nel numero 1 e qualsiasi numero razionale espresso in termini più semplici come frazione un/B ha come due figli i numeri un/a + b e a + b/B. Ogni numero razionale positivo appare esattamente una volta nell'albero.

La sequenza di numeri razionali in un attraversamento in ampiezza dell'albero di Calkin-Wilf è nota come sequenza di Calkin-Wilf . La sua sequenza di numeratori (o, spostati di uno, denominatori) è la serie biatomica di Stern e può essere calcolata dalla funzione fusc .

L'albero Calkin-Wilf prende il nome da Neil Calkin e Herbert Wilf , che lo considerarono nel loro articolo del 2000. L'albero è stato introdotto in precedenza da Jean Berstel e Aldo de Luca come albero di Raney , poiché hanno tratto alcune idee da un articolo di George N. Raney. La serie biatomica di Stern è stata formulata molto prima da Moritz Abraham Stern , un matematico tedesco del XIX secolo che inventò anche l' albero strettamente correlato Stern-Brocot . Ancor prima, un albero simile appare nelle Harmonices Mundi di Keplero (1619).

Definizione e struttura

L'albero Calkin-Wilf, disegnato utilizzando un layout ad albero H.

L'albero di Calkin-Wilf può essere definito come un grafo orientato in cui ogni numero razionale positivoun/Bsi verifica come vertice e ha un arco in uscita da un altro vertice, il suo genitore. Supponiamo cheun/Bè in termini più semplici; cioè, il massimo comun divisore di a e b è 1. Seun/B< 1 , il genitore diun/B è un/ba; Seun/B> 1 , il genitore diun/B è ab/B. Quindi, in entrambi i casi, il genitore è una frazione con una somma minore di numeratore e denominatore, quindi una riduzione ripetuta di questo tipo deve alla fine raggiungere il numero 1. Come un grafo con un arco uscente per vertice e una radice raggiungibile da tutti gli altri vertici , l'albero Calkin-Wilf deve essere davvero un albero.

I figli di ogni vertice nell'albero di Calkin-Wilf possono essere calcolati invertendo la formula per i genitori di un vertice. ogni verticeun/B ha un figlio il cui valore è inferiore a 1, un/a + b, perché questo è l'unico valore minore di 1 la cui formula padre riconduce a un/B. Allo stesso modo, ogni verticeun/B ha un figlio il cui valore è maggiore di 1, a + b/B.

Sebbene sia un albero binario (ogni vertice ha due figli), l'albero di Calkin-Wilf non è un albero binario di ricerca : il suo ordine non coincide con l'ordine dei suoi vertici. Tuttavia, è strettamente correlato a un diverso albero binario di ricerca sullo stesso insieme di vertici, l' albero Stern-Brocot : i vertici a ciascun livello dei due alberi coincidono e sono correlati tra loro da una permutazione di inversione di bit .

Larghezza prima traversata

La sequenza Calkin-Wilf, raffigurata come la spirale rossa che traccia attraverso l'albero Calkin-Wilf

La sequenza di Calkin-Wilf è la sequenza di numeri razionali generati da un attraversamento in ampiezza dell'albero di Calkin-Wilf,

1/1, 1/2, 2/1, 1/3, 3/2, 2/3, 3/1, 1/4, 4/3, 3/5, 5/2, 2/5, 5/3, 3/4, ….

Poiché l'albero di Calkin-Wilf contiene ogni numero razionale positivo esattamente una volta, lo stesso vale per questa sequenza. Il denominatore di ogni frazione è uguale al numeratore della frazione successiva nella sequenza. La sequenza Calkin-Wilf può anche essere generata direttamente dalla formula

dove q i denota l' i- esimo numero della sequenza, partendo da q 1 = 1 , e q i rappresenta la parte integrale .

È anche possibile calcolare q i direttamente dalla codifica run-length della rappresentazione binaria di i : il numero di 1 consecutivi a partire dal bit meno significativo, quindi il numero di 0 consecutivi a partire dal primo blocco di 1, e così via . La sequenza di numeri così generata fornisce la rappresentazione in frazione continua di q i .Esempio:

i = 1081 = 100000111001 2 : La frazione continua è [1;2,3,4,1] quindi q 1081 =53/37.
i = 1990 = 11111000110 2 : La frazione continua è [0;1,2,3,5] quindi q 1990 =37/53.

Nell'altra direzione, l'uso della frazione continua di qualsiasi q i come codifica della lunghezza di esecuzione di un numero binario restituisce i stesso. Esempio:

q io =3/4: La frazione continua è [0;1,3] quindi i = 1110 2 = 14.
q io =4/3: La frazione continua è [1;3]. Ma per usare questo metodo, la lunghezza della frazione continua deve essere un numero dispari . Quindi [1;3] dovrebbe essere sostituito dalla frazione continua equivalente [1;2,1]. Quindi i = 1001 2 = 9.

Una conversione simile tra numeri binari codificati in run-length e frazioni continue può essere utilizzata anche per valutare la funzione del punto interrogativo di Minkowski ; tuttavia, nell'albero Calkin-Wilf i numeri binari sono interi (posizioni nell'attraversamento in larghezza) mentre nella funzione punto interrogativo sono numeri reali compresi tra 0 e 1.

Sequenza biatomica di Stern

Grafico a dispersione di fusc(0...4096)

La sequenza biatomica di Stern è la sequenza intera

0, 1, 1, 2, 1, 3, 2, 3, 1, 4, 3, 5, 2, 5, 3, 4, ... (sequenza A002487 in OEIS ).

Usando la numerazione in base zero , l' n- esimo valore nella sequenza è il valore fusc( n ) della funzione fusc , denominata in base all'aspetto offuscante della sequenza di valori e definita dalle relazioni di ricorrenza

con i casi base fusc(0) = 0 e fusc(1) = 1 .

L' n- esimo numero razionale in un attraversamento in ampiezza dell'albero di Calkin-Wilf è il numerofuc( n )/fuc( n + 1). Pertanto, la sequenza biatomica forma sia la sequenza dei numeratori che la sequenza dei denominatori dei numeri nella sequenza di Calkin-Wilf.

La funzione fusc( n + 1) è il numero di coefficienti binomiali dispari della forma (nr
r
)
,0 ≤ 2 r < n , e conta anche il numero di modi di scrivere n come somma dipotenze di duein cui ogni potenza ricorre al massimo due volte. Questo può essere visto dalla ricorrenza che definisce fusc: le espressioni come somma di potenze di due per un numero pari2 n o non hanno 1 in esse (nel qual caso sono formate raddoppiando ogni termine in un'espressione per n ) o due 1s (nel qual caso il resto dell'espressione è formato raddoppiando ogni termine in un'espressione per n − 1), quindi il numero di rappresentazioni è la somma del numero di rappresentazioni per n e per n − 1, corrispondente alla ricorrenza. Allo stesso modo, ogni rappresentazione per un numero dispari2 n + 1è formata raddoppiando una rappresentazione per n e aggiungendo 1, ancora una volta corrispondendo alla ricorrenza. Ad esempio,

6 = 4 + 2 = 4 + 1 + 1 = 2 + 2 + 1 + 1

ha tre rappresentazioni come somma di potenze di due con al massimo due copie di ciascuna potenza, quindi fusc(6 + 1) = 3 .

Relazione con l'albero di Stern–Brocot

L'albero Calkin-Wilf assomiglia all'albero Stern-Brocot in quanto entrambi sono alberi binari con ogni numero razionale positivo che appare esattamente una volta. Inoltre, i livelli superiori dei due alberi appaiono molto simili e in entrambi gli alberi gli stessi numeri appaiono agli stessi livelli. Un albero può essere ottenuto dall'altro eseguendo una permutazione di inversione di bit sui numeri a ciascun livello degli alberi. In alternativa, il numero in un dato nodo dell'albero di Calkin-Wilf può essere convertito nel numero nella stessa posizione nell'albero di Stern-Brocot e viceversa, mediante un processo che comporta l'inversione delle rappresentazioni delle frazioni continue di questi numeri. Tuttavia, in altri modi, hanno proprietà diverse: per esempio, l'albero di Stern-Brocot è un albero di ricerca binario : l'ordine di attraversamento da sinistra a destra dell'albero è lo stesso dell'ordine numerico dei numeri in esso contenuti. Questa proprietà non è vera per l'albero di Calkin-Wilf.

Appunti

Riferimenti

link esterno