Programmi > Esempio: funzioni ricorsive
  
Esempio: funzioni ricorsive
Utilizzare le funzionalità di programmazione di PTC Mathcad per definire funzioni ricorsive.
Esempio 1: definizione della funzione fattoriale
1. Definire la funzione Fac che calcola il fattoriale di n. Associare alla funzione l'etichetta Funzione.
Fare clic per copiare questa espressione
2. Calcolare il fattoriale di 6 utilizzando Fac, quindi verificarlo utilizzando l'operatore fattoriale di PTC Mathcad.
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
3. Definire un'altra funzione Fac con una condizione diversa per n e chiamare tale funzione, come illustrato di seguito.
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
PTC Mathcad produce lo stesso risultato, perché fa riferimento alla definizione precedente di Fac per eseguire il calcolo.
4. Per vedere la differenza dei risultati, disattivare la prima definizione diFac. Per evitare questa ambiguità è sufficiente non riutilizzare nomi di funzione uguali.
Esempio 2: calcolo del massimo comun divisore (MCD) di due numeri interi positivi
1. Scrivere una funzione ricorsiva GCD che calcoli il massimo comun divisore di due numeri, ovvero il numero intero più grande che divide equamente x e y.
Fare clic per copiare questa espressione
2. Chiamare questa funzione con vari valori.
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Questo programma equivale alla funzione incorporata per il massimo comun divisore gcd:
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Esempio 3: definizione dell'n-esima iterazione di una funzione f(x) in corrispondenza del punto a
1. Scrivere l'annidamento di una funzione ricorsiva che calcoli l'n-esima iterazione di una funzione f(x) in corrispondenza del punto a.
Fare clic per copiare questa espressione
2. Definire una funzione f(x) e assegnare 1 ad a.
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
3. Chiamare questa funzione con vari valori.
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Esempio 4: definizione della sequenza di Fibonacci (due chiamate ricorsive per invocazione)
1. Scrivere una funzione fib che calcoli il valore della sequenza di Fibonacci per n.
Fare clic per copiare questa espressione
2. Definire un vettore k e chiamare la funzione fib.
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Esempio 5: definizione della funzione di partizione
1. Scrivere una funzione ricorsiva part che calcoli il numero di modi diversi per esprimere m come somma di numeri interi positivi non maggiori di n.
Fare clic per copiare questa espressione
2. Chiamare la funzione con vari valori.
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Esempio 6: creazione di un albero binario casuale
1. Scrivere una funzione ricorsiva Tree che crei un albero binario casuale.
Fare clic per copiare questa espressione
2. Chiamare la funzione.
Fare clic per copiare questa espressione
Fare clic per copiare questa espressione
Esempio 7: ricerca dell'altezza di un albero binario
1. Scrivere una funzione ricorsiva height che restituisca l'altezza di un albero binario.
Fare clic per copiare questa espressione
2. Chiamare la funzione con l'albero creato nell'esempio precedente.
Fare clic per copiare questa espressione
* 
Poiché Tree crea un albero binario casuale, l'altezza restituita cambia dopo ogni ricalcolo.
Esempio 8: impostazione del crivello di Eratostene per trovare numeri primi
1. Scrivere una funzione ricorsiva p che calcoli tutti i numeri primi minori di n, utilizzando il crivello di Eratostene.
Fare clic per copiare questa espressione
2. Chiamare la funzione per ottenere un vettore di tutti i numeri primi fino a 200.
Fare clic per copiare questa espressione