| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > Как упростить формулу |
| Автор: Sunbeam 3.6.2005, 18:48 |
| Как можно упростить формулу? Например, есть строка ((1+x)+0). Нужно убрать лишние скобки и посчитать значение. В итоге печатает 1+x. Или x^(2-1). Печатает x. |
| Автор: Амортизатор 3.6.2005, 19:14 |
| Тебе нужно написать ядро системы компьютерной математики? Обратись к разрабам Maple и Mathematica, только они и смогут тебе помочь... |
| Автор: sergejzr 3.6.2005, 19:29 | ||
| Это действительно не есть тривиально. Ведь часто могут существовать множества решения одной проблемы. Например, что оптимальнее, 1+х или х+1? Но мелочи можно. Например в твоём варианте можно собрать дерево. Каждый "лист" дерева сделай обьектом mathObject . Так же снабди каждый лист виртальной функцией simplify, которая будет возвращать упрощённый обьект. например
Вот само дерево: skobka(sum(skobka(sum(1,x)),0)) Потом упрощать начиная "снаружи" 1: скобка не нужна, если она "корень" дерева 2: sum(something,0)=sumething; 3: 1+x не упрощается получилось: (1+x) заходим в цикл ещё раз 1: скобка не нужна, если она "корень" дерева как видим, нужен критерий, чтобы остановиться в цикле. Например можно сказать, если выражения не меняется. Но есть случай, когда оно меняется. но в цикле... Кстати при наличии дерева очень легко реализовать и другие функции. Например берём производную "виртуальной" функцией derrive(); |
| Автор: Амортизатор 4.6.2005, 01:02 |
| Очень интересно. А где можно почитать про энти самые деревья? А вообще построение систем СКМ - сложнейшая проблема современности. |
| Автор: cardinal 4.6.2005, 01:42 | ||
Чтобы ты был в курсе: все что человеку надо проходят на первом курсе информатики в универе (в Германии)... |
| Автор: Амортизатор 4.6.2005, 01:59 |
| Но это была шутка. Я хотел лишь сказать, что это серьезная проблема. З Ы Может ему многого и не нужно, но на первом курсе где-бы то не было невозможно получить знаний, достаточных для построения простейшей СКМ. У меня знакомый учится в МГУ на ВМК, так вот, ДАЖЕ ТАМ они серъезно рассматривать СКМ начали только на 3-ьем курсе (надеюсь ты не будешь ставить под сомнение несомненное преимущество московской школы символьной математики). |
| Автор: cardinal 4.6.2005, 13:53 | ||
Да от его вопроса до твоих СКМ помоему очень далеко...
Перед чем? |
| Автор: Pakshin A. S. 4.6.2005, 16:11 |
| На всякий случай: разборки лучше не устраивать... Давайте жить дружно... |