Функциональные уравнения, в их наиболее общих терминах, действительно очень тяжелые. Не случайно, что в каждом международном конкурсе математики есть один из них, обычно выглядящий как невинный, как тот, который вы написали. Методы их решения варьируются от простой индукции до бесконечномерного банахово-пространственного анализа, а общий программный подход к их решению очень маловероятен.
В данном конкретном случае, вот прямолинейно подход:
Пусть для любых двух целых чисел т, п имеем F (M) = F (п) = к. Но тогда m = F (F (m)) = F (k) = F (F (n)) = n: поэтому m = n и F никогда не принимает одинаковое значение на двух разных входах. Но мы знаем, что F (F (n)) = n = F (F (n + 2) +2) - поэтому F (n) и F (n + 2) +2 должны быть одинакового числа, , F (n + 2) == F (n) - 2 == F (n-2) - 4 = .... Теперь мы знаем F (0) = 1, поэтому F (1) = F (F (0)) = 0. Но тогда F (129) = F (127) - 2 = F (125) - 4 = ... = F (1) - 128 = -128
Итак, есть ваше решение - но механического алгоритма для решения каких-либо вариаций просто не существует.
Что являются условиями на F? Когда n = 0, F (n) = 1. На каких условиях F вычисляет F (F (n)) и F (F (n + 2) +2)? – inspectorG4dget
@ inspectorG4dget F непрерывно на R. – Sharathiitr
Можете ли вы дать более точное описание того, какие ограничения могут потенциально возникнуть при решении таких проблем? Легко описать последовательности, которые не определены везде, если вы допускаете произвольные математические выражения. – templatetypedef