ЕГЭшный квест №16: как мы вычисляли F(3027) и не сломали интерпретатор
Сегодня разберём задачу, которая часто встречается на экзаменах и олимпиадах по информатике. На первый взгляд она простая, но таит в себе подводные камни. Мы пройдём путь от наивного решения до оптимального, а заодно разберёмся, что такое рекурсия, кэширование и динамическое программирование. Поехали! Дана функция F(n), где n — натуральное число. Она определена так: Требуется вычислить значение выражения F(3027) − F(3023). Казалось бы, чего проще — написать функцию на Python и вызвать её. Но не тут-то...