Successioni numeriche con Python

 

di

 

Morena De Poli

 

  • Parte 1

 

 

    1. Definita una successione come una particolare funzione avente come dominio l’insieme dei numeri naturali e come codominio, in generale, l’insieme dei numeri reali, consideriamo la successione dei numeri   triangolari.

 

  • Essa può essere così rappresentata:

 

 

   1°          2°          3°          4°          . . .

   1           3            6           10          . . .

 

   *           *            *            *

               * *         * *         * *         . . .

                           * * *       * * *

                                        * * * *

 

Posto quindi che il primo numero triangolare sia 1, si osserva che per ottenere un numero tringolare basta sommare al precedente la posizione occupata dal numero stesso nella successione.

 

Infatti, ad esempio, il numero triangolare 10 si ottiene come somma del precedente 6 e 4, cioè la posizione di 10 nella successione.

 

Quindi, la definizione matematica di tale successione è:

 

            a1 = 1 ,  an = an-1 + n    

 

Definiamo ora la funzione Python per calcolare un numero triangolare nota la sua posizione nella successione:

 

def tri(n):

       an=1

       for i in range(2,n+1):

               an=an+i

       return an

 

In questa definizione si assegna alla variabile an il valore 1, cioè il primo numero triangolare; di seguito, il ciclo for assegna alla variabile indice i tutti i valori da 2 fino a n, in quanto la funzione range(2,n+1) restituisce la lista [2,3, .. , n]. Quando n vale 1 il ciclo for non ralizza nessuna iterazione poiché range(2,2) restituisce una lista vuota []; se invece n valesse 2, range(2,3) restituisce la lista [2] e quindi viene calcolato dal ciclo for il secondo numero della successione mediante un’unica iterazione, e così via per i valori di n maggiori di 2.


La figura seguente mostra la definizione della funzione tri e due esempi di invocazione della funzione stessa, con i relativi risultati nella shell:

 

 

 

Il programma Python così definito ci permette di notare una proprietà interessante dei numeri  triangolari: la somma di due numeri triangolari consecutivi dà un numero quadrato.

 

Esercizio: scrivere una funzione che verifichi se un numero è quadrato.

 

La funzione tri  è stata definita utilizzando il ciclo di iterazione per enumerazione for, ma può essere interessante dare una diversa definizione Python della funzione che tenga conto della caratteristica di ricorsività della definizione matematica della successione dei numeri triangolari:

 

    def tri_ric(n):

           if n==1:

                   return 1

           else:

                   return tri_ric(n-1)+n

Vai alla barra degli strumenti