Делал задание на Питоне: генерация
QHofstadter.
Использовал мемоизацию, т.е. запоминались уже использованные значения.
Это навело меня на такой вопрос.
В чем собственно "проблема" с другими начальными значениями, отличными от (1,1)?
В том, что в процессе рекурсии возникают не определенные ранее значения.
Ну так давайте определим их! В Питоне это просто. При обращении к словарю по несуществующему ключу вместо выдачи ошибки этому ключу присваиваем default значение, например 1.
Получилась интересная картина. Если
, то достаточно определить
и далее рекурсия продолжается без помех.
(Это конечно численный результат, ведь даже для классической QHofstadter неизвестно, определена ли она всюду)
При других начальных значениях запрос на дополнительные опускается глубже в отрицательные числа,
иногда опять "выныривает", но чаще уходит все дальше.
Вот результат наблюдений. Делалось 100 рекурсий для
В таблице приведена максимальная глубина запроса на неопределенные значения.
Красным выделено то, что явно неограниченно, зеленым - то, где после добавления новых начальных данных рекурсия продолжается.
Видно, что при
ситуация нетривиальная.
Разумеется, подобный подход можно применить к любой рекурсивной функции.
Мне интересно, делалось ли ранее подобное, какие есть результаты?