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 21 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