Le equazioni funzionali, nei loro termini più generali, sono davvero molto difficili. Non è un caso che praticamente ogni competizione di matematica internazionale ne presenti uno, di solito considerato innocente come quello che hai scritto. I metodi per risolverli variano dalla semplice induzione all'analisi spaziale di Banach a dimensione infinita e un approccio di programmazione generico per risolverli è molto improbabile.
In questo caso particolare, ecco un approccio diretta:
Supponiamo per ogni due interi m, n abbiamo = F (n) = k (m) F. Ma allora m = F (F (m)) = F (k) = F (F (n)) = n: quindi m = n e F non prende mai lo stesso valore su due ingressi diversi. Ma sappiamo che F (F (n)) = n = F (F (n + 2) +2) - quindi F (n) e F (n + 2) +2 devono essere lo stesso numero - vale a dire , F (n + 2) == F (n) - 2 == F (n-2) - 4 = .... Ora sappiamo F (0) = 1, quindi F (1) = F (F (0)) = 0. Ma poi F (129) = F (127) - 2 = F (125) - 4 = ... = F (1) - 128 = -128
Quindi c'è la soluzione - ma un algoritmo meccanico per risolvere qualsiasi variazione proprio non esiste.
Cosa sono le condizioni su F? Quando n = 0, F (n) = 1. A quali condizioni F calcola F (F (n)) e F (F (n + 2) +2)? – inspectorG4dget
@ inspectorG4dget F è continuo su R. – Sharathiitr
Puoi fornire una descrizione più precisa di quali tipi di vincoli potrebbero emergere quando si risolvono questi problemi? È facile descrivere sequenze che non sono definite ovunque se si consentono espressioni matematiche arbitrarie. – templatetypedef