Successioni ricorsive di numeri

Successioni ricorsive di numeri
Gentile Alessandro
Laboratorio di matematica discreta A.A. 2006/07
In queste pagine si vogliono prendere in esame alcune tra le più famose successioni ricorsive,
presentandone alcune caratteristiche.
1. Introduzione
Una successione si dice ricorsiva, o definita in modo ricorsivo, quando il suo n-esimo termine è
calcolato come funzione di alcuni dei precedenti, avendo posto delle condizioni iniziali per i primi
termini:
an = f (an−1 ,..., a0 )
(dove non tutti i termini precedenti all’n-esimo sono necessariamente argomento della funzione).
Nelle relazioni ricorsive più semplici, l’n-esimo termine è calcolato come funzione del suo
precedente: tali relazioni sono dette del prim’ordine.
Di queste si possono dare molti semplici esempi, tra cui:
- I numeri interi
con la condizione iniziale
- I fattoriali
con
an = an−1 + 1
a0 = 0
n ! = n ⋅ ( n − 1)!
0! = 1
- Le potenze, o più in generale le successioni geometriche:
g0 = p
g n = g n−1 ⋅ q
- Le successioni aritmetiche:
1
a0 = c
an = an−1 + d
- I numeri triangolari, cioè le somme dei primi n numeri naturali:
Tn = Tn−1 + n
E’ a volte possibile, anche se non sempre facile, passare da una relazione ricorsiva ad una formula
diretta che calcoli l’n-esimo termine della successione senza essere funzione dei precedenti; almeno
negli esempi sopra elencati è immediato.
Questo perché le successioni in esame erano del primo ordine: in generale, una relazione ricorsiva è
detta di ordine k quando nell’espressione per il calcolo dell’n-esimo termine compaiono i k termini
precedenti.
Nel contesto delle successioni ricorsive, è d’obbligo anche se un po’ scontato trattare dei famosi
numeri di Fibonacci.
2. Numeri di Fibonacci
La relazione che dà i numeri di Fibonacci è del secondo ordine, e i primi due termini della
successione sono uguali ad 1.
f1 = f 2 = 1
f n = f n−1 + f n−2
Il classico esempio con cui vengono presentati questi numeri è quelli della riproduzione dei conigli:
spesso infatti in natura si trovano fenomeni in cui compaiono dei termini della successione di
Fibonacci.
Anche per questa successione è possibile trovare una formula diretta; questa contiene nella sua
espressione la sezione aurea, molto utilizzato come proporzione nell’arte a partire dagli antichi
greci. Esso è il numero irrazionale
φ=
5 +1
2
e la formula diretta per l’n-esimo numero di Fibonacci è
fn =
1
φ
(
5
n
− φ −n )
Se consideriamo la sola relazione di ricorrenza, senza condizioni iniziali, si può osservare che essa
può essere soddisfatta da diverse successioni, tra cui potrebbe esisterne una geometrica: la relazione
diventerebbe
2
f n = f n−1 + f n−2
e dividendo per f n − 2 si ha l’equazione di secondo grado in f,
f 2 − f −1 = 0
le cui soluzioni sono proprio φ e − φ −1 . Essendo la relazione lineare, anche una combinazione
lineare di queste soluzioni sarà una successione che soddisfa la relazione:
φ n = φ n−1 + φ n−2
( −φ −1 ) = ( −φ −1 )
n
n −1
+ ( −φ −1 )
n−2
⇓
Aφ n + B ( −φ −1 ) = Aφ n−1 + B ( −φ −1 )
n
n −1
+ Aφ n−2 + B ( −φ −1 )
n−2
imponendo quindi a questo punto le condizioni iniziali sui coefficienti della combinazione lineare si
ha:
 f1 = 1 ⇒ Aφ − Bφ −1 = 1

2
−2
 f 2 = 1 ⇒ Aφ + Bφ = 1
da cui risolvendo si ottiene
A=B=
1
5
e quindi la formula diretta.
Questa è l’applicazione di un metodo più generale che permette di trovare una formula diretta per
successioni ricorsive lineari omogenee di ordine k.
3. Numeri di Catalan
Consideriamo il seguente problema: dato un insieme su cui è definita un’operazione non
associativa, calcoliamo il risultato dell’operazione su n oggetti di questo insieme: poiché non è
associativa, tale risultato dipenderà dala disposizione delle parentesi.
a1 ⋅ (a2 ⋅ a3 ⋅ (a4 ⋅ (...)...)...) ⋅ an
Quanti sono i possibili risultati distinti?
3
Questo problema, detto problema delle parentesi, è equivalente a tanti problemi di combinatoria, e
la risposta è data dai numeri di catalan. Denotato con Cn l’n-esimo numero di Catalan, avremo
che saranno Cn i risultati possibili.
Ora troveremo una formula ricorsiva che permetterà di calcolarli.
Quando n=1, non viene effettuato il prodotto, quindi il risultato è unico ed è il numero stesso. Per
n=2 anche esiste chiaramente un solo risultato; abbiamo quindi come condizioni iniziali
C1 = C2 = 1 .
Per arrivare a calcolare i successivi, consideriamo il prodotto in questione come prodotto di due
termini, p e q, che siano rispettivamente i prodotti dei primi i termini e dei restanti n-i. Fissato i,
abbiamo per ipotesi Ci valori di p distinti: analogamente per q avremo Cn −i valori distinti. In totale
quindi, il valori distinti che si ottengono da questo prodotto sono Ci ⋅ Cn −i . Facendo infine variare i
tra 1 ed n-1 otteniamo il totale dei prodotti possibili, cioè l’n-esimo numero di Catalan:
Cn = ∑ i =1 Ci Cn−i
n −1
Tale relazione ricorsiva, che calcola l’n-esimo numero di Catalan in funzione di tutti i suoi
precedenti, è detta relazione di Segner.
Ora consideriamo un problema equivalente al precedente, ma che ci porterà a trovare
un’espressione diretta per il calcolo dei numeri di Catalan.
Consideriamo di avere n coppie (+1,-1) e di voler ordinare i 2n termini a disposizione con la
condizione che non ci siano somme parziali negative, cioè che per ogni k<2n la somma dei primi k
addendi non sia negativa.
L’equivalenza col problema precedente si ha sostituendo i “+1” con “(“ e i “-1” con “)”, e la
condizione sulle somme parziali equivale a non chiudere parentesi che non siano ancora state
aperte.
Immaginando di avere 2n celle in cui disporre i termini a disposizione, osservando che le tutte
sequenze possibili (senza condizione) disponendo in tutti i modi possibili gli n “+1” in queste 2n
 2n 
celle; il loro numero allora è quello delle combinazioni semplici di 2n oggetti a n a n, quindi   .
n
Ora però da queste dobbiamo sfrondare quelle con somme parziali negative. Se ad ogni termine
della sequenza associamo la rispettiva somma parziale, definiamo con il termine eccedenza il
numero di termini “-1” a cui corrisponda una somma parziale negativa. Se si percorre la sequenza e
si arriva ad una somma parziale negativa, si continua a seguirla finchè questa non torna a 0; tenendo
fisso l’ultimo “+1” che ha riportato la somma parziale a 0, si scambiano la parte della sequenza
precedente ad esso con quella successiva. Ora la parte che sta “prima” avrà la stessa eccedenza,
mentre dal “+1” considerato fino alla fine avremo l’eccedenza diminuita di 1.
Vediamo un esempio:
+1 −1 −1 +1 +1 −1 +1 −1
1
0
−1
0
1
0
1
0
Il quarto termine è il “+1” che riporta la somma parziale da negativa a zero: allora scambiamo la
sequenza dei tre precedenti con quella dei quattro successivi e otteniamo
+1 −1 +1 −1 +1 +1 −1 −1
1
0
1
0
1
4
2
1
0
Questo procedimento è invertibile: se si percorre la sequenza dall’ultimo al primo, il primo termine
“+1” che riporta la somma parziale a 0 verrà tenuto fisso e si scambieranno la sottosequenza
precedente con quella successiva.
Nell’esempio precedente si ha
+1 −1 +1 −1 +1 +1 −1 −1
0
−1
0
−1
0
−1 − 2 − 1
e il termine cercato è il quinto (il quarto dal fondo); effettuando lo scambio si ottene di nuovo la
sequenza di partenza, che ha eccedenza aumentata di 1:
+1 −1 −1 +1 +1 −1 +1 −1
1
0
−1
0
1
0
1
0
Abbiamo quindi costruito un procedimento reversibile che se applicato ad una sequenza la
trasforma in un’altra con eccedenza diminuita di 1; abbiamo come conseguenza che due diverse
sequenze con uguale eccedenza non potranno essere ottenute l’una dall’altra mediante questa
procedura.
Detta S e T due sequenze, e F questo algoritmo, che può essere visto come funzione dell’insieme di
tali sequenze in sé stesso, si può definire la relazione di equivalenza
S T
⇔ ∃n ∈ : F n ( S ) = T
Non stiamo a verificare che sia una relazione di equivalenza, si tratta di semplici considerazioni.
Se suddividiamo l’insieme di tutte le sequenze nelle rispettive classi di equivalenza, è chiaro che per
quanto detto prima in ogni classe esiste una e una sola sequenza con eccedenza k per ogni k tra 0 ed
n. In ogni classe avremo quindi n+1 sequenze, ed esattamente una con eccedenza 0. Ma avere
eccedenza 0 significa non avere somme parziali negative, quindi le sequenze cercate sono una per
classe. Il loro numero è uguale a quello delle classi, cioè la cardinalità dell’insieme delle sequenze
divisa per la cardinalità di ogni classe:
1  2n 
 
n +1 n 
Se infine ci riconduciamo all’equivalenza di questo problema con quello delle parentesi, vediamo
che questa espressione dà l’(n+1)esimo numero di Catalan.
Cn+1 =
1  2n 
 
n +1 n 
5
4. Numeri di Bell
In combinatoria può essere utile conoscere il numero delle partizioni possibili di un insieme di
cardinalità finita.
Dato un insieme di cardinalità n, il numero delle partizioni possibili è B(n), l’n-esimo numero di
Bell.
Procediamo a ricavare una formula ricorsiva che generi la successione dei numeri di Bell.
Intanto osserviamo che B1 = 1 perché esiste una sola partizione di un insieme con un solo elemento.
Per un insieme U di ordine n+1, fissato un suo elemento “a”, esiste uno e un solo insieme A di una
data partizione che lo contiene. Se A ha cardinalità i+1 è l’unione di {a} con un generico
n
sottoinsieme di U \ {a} , di ha cardinalità i; abbiamo quindi   possibili scelte per A. Per ognuna
i
di esse dobbiamo poi considerare le partizioni di U \ A , che saranno in numero Bn −i . Facendo infine
variare i tra 0 ed n, si ottiene la formula cercata:
n
Bn+1 = ∑  Bn−i
i =0  i 
n
Questa relazione di ricorrenza, detta formula di Aitken, coinvolge tutti i numeri di Bell precedenti
a quello che si vuole calcolare, perciò come la relazione di Segner per i numeri di Catalan ha ordine
non finito.
Un’altra espressione per calcolare i numeri di Bell fa uso dei numeri di Stirling di seconda specie;
questi ultimi sono definiti come S(n,k)= numero delle partizioni di un insieme di ordine n in k
sottoinsiemi. Da tale definizione è naturale concludere che
n
Bn = ∑ S (n, k )
k =1
Questa formula non è chiaramente ricorsiva sui Bi , e la sua convenienza dipende da come vengono
calcolati i numeri di Stirling.
Un ulteriore metodo per ricavare i numeri di Bell consiste nella costruzione di un triangolo in cui
essi compaiono, similmente a come si costruisce il triangolo di Pascal per ottenere i coefficienti
binomiali.
Si segue la seguente procedura: si inizia scrivendo “1” ed un altro “1” nella riga sotto, e alla sua
destra si scrive la somma del numero alla sua sinistra e in alto a sinistra:
1
1 1+1 = 2
La riga successiva si otterrà ponendo come primo elemento l’ultimo della riga precedente:
6
1
1 2
2
Dopodichè si continua con la costruzione.
Formalmente si può vedere il triangolo come una matrice triangolare inferiore infinita (ai , j )
costruita secondo le regole:
a1,1 = a2,1 = 1
ai , j = ai , j −1 + ai−1, j −1
1< j ≤ i
an ,1 = an−1,n−1
n>2
che per le prime righe dà
1
1
2
2
3
5
5
7
10
15
15
20
27
37
52
67
87
114 151 203
52
203 255 322 409 523 674 877
877
...
...
...
...
...
...
...
e sulla prima colonna e sulla diagonale si ritrova la sequenza dei numeri di Bell.
Anche per i numeri di Bell è possibile trovare una forma diretta: si può infatti dimostrare che
possono essere espressi come serie
1 ∞ kn
Bn = ∑
e k =1 k !
L’espressione data è detta formula di Dobinskj.
7
5. Numeri di Bernoulli
Si è in precedenza parlato di numeri triangolari: l’n-esimo numero triangolare è pari alla somma dei
primi n numeri naturali. Sono stati presentati in forma ricorsiva, ma non è difficile pervenire alla forma
esplicita per calcolarli:
n
n ( n + 1)
i =1
2
Tn = ∑ i =
Spingendoci un po’ più in là, possiamo chiederci quale sia la somma dei quadrati dei primi n numeri
naturali: con qualche calcolo si arriva all’espressione
n
∑ i2 =
i =1
n(2n + 1)(n + 1)
6
Infine, volendo generalizzare, ci si può chiedere se esista una formula che ci permetta di calcolare la
somma delle potenze k-esime dei primi n numeri naturali; è qui che entrano in gioco i numeri di
Bernoulli.
Johann Faulhaber, matematico di fine XVI secolo, si occupò di questo problema e arrivò a trovare
formule per le somme di potenze generiche, la cui espressione generale è
n
∑ ik−1 =
i =1

 k  k −3 1  k  k − 4
1  k 1  k  k −1 1  k  k −2
+
+
+
−
+
n
n
n
0
n
n
...


 
 
 3
 
k
21
6  2
30  4 
 

Molto simile allo sviluppo del binomio, tranne che per dei particolari coefficienti che moltiplicano gli
addendi. Jacob Bernoulli approfondì il lavoro di Faulhaber e studiò questi coefficienti, che appunto
presero poi il nome di numeri di Bernoulli.
I primi numeri della sequenza sono
B0 = 1 B1 =
1
2
B2 =
1
6
B3 = 0
1
1
B5 = 0 B6 =
B7 = 0
30
42
1
5
B8 = −
B9 = 0 B10 =
30
66
B4 = −
Abbiamo introdotto una notazione che ci permette di scrivere le formule in modo più compatto: invece
dell’indice in basso, scriviamo l’indice in alto come potenza simbolica, con la convenzione che B
elevato alla n sia l’n-esimo numero di Bernoulli. Trattiamo quindi i numeri di Bernoulli come se
fossero potenze di B (il quale di per sé non ha significato), anche se è chiaro che è solo una questione di
notazione.
8
Per esempio
 3
 3
 3
 3
3
1
(x + B)3 =   x 3 B0 +   x 2 B1 +   xB2 +   B3 = x 3 + x 2 + x + 0
2
2
0
1
 2
 3
Detto questo, facciamo uso di questa notazione per scrivere la formula di Faulhaber per ogni naturale n
e per ogni potenza k:
n
∑i
k −1
=
( n + B)
k
− Bk
k
i =1
Vediamo un esempio: vogliamo calcolare quanto vale la somma delle seste potenze dei primi 100
numeri naturali:
1 + 2 + ... + 100 =
6
6
6
(100 + B )
7
− B7
7
=
7
7
7
7
1007 + 7 ⋅ 1006 B1 +   1005 B2 +   1004 B3 +   1003 B4 +   1002 B5 + 7 ⋅ 100B6
 2
 3
 4
 5
=
=
7
7
7
7
1
1007 + 1006 + 1005 − 1003 + 100
.
.
2
2
6
6
=
= 14.790.714119
050
7
Quindi questi numeri di Bernoulli hanno qualche proprietà interessante. Ma come si trovano? Essendo
stati trattati qui, esiste un’espressione ricorsiva per calcolarli. Anche questo è un caso di relazione
ricorsiva di ordine non finito: posto B0 =1, i successivi si calcolano sviluppando la relazione
( B − 1)
k
= Bk
dalla quale noti i primi k-2 si ricava il (k-1)-esimo numero di Bernoulli.
Come esempio calcoliamo il quarto numero di Bernoulli:
(B − 1)5 = B5
B5 − 5B4 + 10B3 − 10B2 + 5B1 − 1 = B5
5B4 = −
10 5
1
1
+ − 1 = − ⇒ B4 = −
6 2
6
30
9
La relazione ricorsiva usata non vale per k=1: infatti (B − 1)1 = − 1
mentre B1 = 1 . Questo non ci
2
2
0
crea problemi, dato che B è per definizione uguale a 1. Anzi, questo fatto può portare a ricavare la
formula di Faulhaber a partire dalla relazione di ricorsione. Vediamo come.
Sviluppiamo
( n + B)
k
k
= n k + kB1n k −1 +   B2 n k −2 + ...
 2
e anche
k
k
1
2
(n − 1 + B) k = ( n + B − 1) = n k + k ( B − 1) n k −1 +   ( B − 1) n k −2 + ...
 2
Possiamo osservare che il primo termine è uguale nei due sviluppi, e anche i termini a partire dal
terzo in virtù della relazione di ricorsione. Il secondo invece differisce per il segno: sottraendo i due
primi membri arriviamo a
( n + B)
k
− ( n − 1 + B ) = k ⋅ n k −1
k
analogamente si avrà
( n − 1 + B)
k
− ( n − 2 + B ) = k ⋅ ( n − 1)
k
k −1
fino a
(1 + B) k − Bk = k ⋅ 1k −1
sommando ad entrambi i membri queste n uguaglianze, a primo membro si semplificano tutti i
termini intermedi, e si arriva a
( n + B)
k
− Bk = k(1 + 2k −1 + ... + n k −1 )
e dividendo per k si ottiene la formula di Faulhaber.
6. Riferimenti
-
J. Conway, Il libro dei numeri;
D. Romagnoli, Elementi di matematica discreta, quaderno didattico #23 Dipartimento di
matematica di torino;
G.C.Rota, Number of partitions of a set, American Mathematical Monthly, n 71 vol 5;
http://en.wikipedia.org
10