История изменений
Исправление intelfx, (текущая версия) :
это плохой подход.
Why? Не представляю, как можно внятно написать всё это на бинарных деревьях. Как определить понятие цены для n-арных операций — вполне себе очевидно: количество потомков минус один (можно ещё умножить на коэффициент).
Просто далеко не всегда тебе известны все переменные, т.е. в качестве ответа ты не всегда можешь получить число. Часто ответ тоже имеет вид выражения.
Естественно. Более того, мне в виде выражения ответ и нужен. Потому и говорю, что считаю символьно.
не получится. Понятие «красоты» не формализуется. Лучше будет заменить «красоту» на что-то конкретное
Да, это верно... Уже думал об этом. Но пока что все эвристики прокатывают, если их тупо применять одну за другой к целому дереву.
Оптимизируется это всё очень просто, а именно подобными членами
Уже (хотя пока что умею приводить только константы, т. е. x*y + x*z -> x*(y+z)
сработает только если y и z — числа).
При этом важно вовремя остановиться, например sqrt(3) считать не нужно
Отрицательные степени тоже не нужно считать тем же типом, что и обычные числа
Действительно, надо это захэндлить, спасибо.
Исходная версия intelfx, :
это плохой подход.
Why? Не представляю, как можно внятно написать всё это на бинарных деревьях. Как определить понятие цены для n-арных операций — вполне себе очевидно: количество потомков минус один (можно ещё умножить на коэффициент).
Просто далеко не всегда тебе известны все переменные, т.е. в качестве ответа ты не всегда можешь получить число. Часто ответ тоже имеет вид выражения.
Естественно. Более того, мне в виде выражения ответ и нужен. Потому и говорю, что считаю символьно.
не получится. Понятие «красоты» не формализуется. Лучше будет заменить «красоту» на что-то конкретное
Да, это верно... Уже думал об этом. Но пока что все эвристики прокатывают, если их тупо применять одну за другой к целому дереву.
Оптимизируется это всё очень просто, а именно подобными членами
Уже (хотя пока что умею приводить только константы, т. е. x*y + x*z -> x*(y+z)
не сработает).
При этом важно вовремя остановиться, например sqrt(3) считать не нужно
Отрицательные степени тоже не нужно считать тем же типом, что и обычные числа
Действительно, надо это захэндлить, спасибо.