----- 11/01/18 ----- > Non sono riuscito a risolvere l'esercizio 1 della prova d'esame del 15-07-14. > [...] > Nel primo campo da completare ho inserito 0 e nel secondo campo <= k j . ----- Assumendo che la condizione dell'if nella procedura ricorsiva sia rappresentata dall'espressione (<= k j), scelta che sembra ragionevole, conviene considerare dapprima le situazioni che corrispondono ai casi base di manh-rec, cioe' le situazioni in cui tale condizione e' 'false'. L'istanza piu' semplice si realizza quando j = 0 . Da un lato, quindi, in base alle specifiche relative alla procedura manhattan: (manhattan i 0) --> (i+0)! / ( i! * j! ) = 1 Dall'altro, in base ai passi di valutazione a partire dall'invocazione di manhattan: (manhattan i 0) --> (manh-rec X? 1 i 0) --> (if (<= 1 0) ... Y?) --> Y? Da cui si evince che Y? = 1 e inoltre, in base alle specifiche di mah-rec: (manh-rec X? 1 i 0) --> 1 = ( X? * i! * 0! ) / ( 0! * i! ) = X? Per consistenza, dunque, nel primo campo (X?) cosi' come nel quarto (Y?) va inserito 1. ----- > Gli ultimi due campi non saprei come completarli, visto che nel penultimo, > invece di utilizzare come operatore finale la moltiplicazione, > viene fornita l'addizione. ----- A questo punto resta solo da capire cosa inserire nel terzo campo. In quest'ultimo caso, assumendo come ipotesi induttiva che: (manh-rec p+Z? k+1 i j) --> ( (p+Z?) * (i+j)! * k! ) / ( j! * (i+k)! ) [l'induzione e' sul valore di j+1-k che si riduce ad ogni ricorsione], come passo induttivo si dovrebbe riuscire a dimostrare che: (manh-rec p k i j) --> ( p * (i+j)! * (k-1)! ) / ( j! * (i+k-1)! ) Ma allora, trattandosi di una ricorsione di coda, deve anche essere: ( (p+Z?) * (i+j)! * k! ) / ( j! * (i+k)! ) = = ( p * (i+j)! * (k-1)! ) / ( j! * (i+k-1)! ) da cui... (come si procede?). ----- > [...] > Precedentemente non capivo il motivo per cui era presente l'addizione > invece della moltiplicazione. ----- In effetti l'idea alla base del programma era di calcolare il risultato attraverso moltiplicazioni e divisioni consecutive. Poi, con qualche rimaneggiamento per non ripetere esempi precedentemente proposti, ha assunto la forma presentata nell'esercizio. ----- * -----