Задача поиска всех решений.
Решение возможно, только если отсутствуют циклы к графе переходов (граф ациклический).
Это возможно всегда, если "система переходов" имеет "направление" (например используются команды + и *)
Стандартная постановка
Испольниетель Калькулятор умеет выполнять команды:
- прибавлять натуральные числа из S (например 11 и 17)
- умножать на числа из списка P - умножение возможно если результат строго больше аргумента.
(допускается умножение на вещественные числа с округлением до целого) Например (2 и 3)
Обозначим через t(x,y, k) - число траекторий, переводящих x в y за k команд (k = -1 будет обозначать, что на k ограничений нет)
Возможные задания:
- Найдите количество траектокторий, переводящих число X в Y (t(X,Y,-1)
- Для заданного X, найдите минимальное Y, такое что t(X,Y,-1) больше заданного N
- Для заданного Y, найдите максимальное X, такое что t(X,Y,-1) больше заданного N
- Для заданного отрезка [A;B] найдите "оптимальную" пару X, Y из отрезка, такую, что t(X,Y, -1) больше заданного N
"оптимальность" может быть по значению числа траекторий (минимальная) или по длине отрезка (максимальная)
- Для заданного отрезка [A;B] найдите "оптимальную" пару X, Y из отрезка, такую, что t(X,Y, -1) меньше заданного N
"оптимальность" может быть по значению числа траекторий (максимальная) или по длине отрезка (минимальная)
Приведем конкретные задания и решения