История изменений
Исправление qnikst, (текущая версия) :
Пусть у нас есть число a
добавляем в дерево поиска:
[(n+1,"+"),(n-1,"-")]++if n `mod` 2 == 0 then (n/2,"/") else []
запускаем breadth first.
Всё.
Исходная версия qnikst, :
оверкил, но будет работать:
{(S, h, f)} - множество чисел (S) с историей того, как до них добраться (h).
next_power_2 - возвращает след степень двойки <= нашему числу
Пусть у нас есть число a добавляем в дерево поиска:
[(n+1,"+"),(n-1,"-")]++if n `mod` 2 == 0 then (n/2,"/") else []
запускаем breadth first.
Всё.