Как привести формулу к нормальной записи?

Имеется в виду не "логическую формулу", а обычную математическую формулу. Хочу сделать поисковик по формулам, следовательно sin^2(x)+sin^2(y) должно совпадать с sin^2(y)+sin^2(x), например. У меня много решенных задач, еще больше их на dxdy.com или еще на специализированных сайтах.
  • Вопрос задан
  • 2734 просмотра
Пригласить эксперта
Ответы на вопрос 4
qmax
@qmax
программер
Распарсите формулу в дерево.
Линеаризуйте дерево с сортировкой элементов по алфавиту.
Ответ написан
Комментировать
@business-gl
В основном всегда работаю с жестко структурированными данными, так что точно не скажу, но на мой взгляд вам нужны, генетические алгоритмы и разложения (математические в ряды и логические на составляющие), модель абстракций и правила коммутаций.
Все это довольно таки неприятно может быть реализовывать, но результат скорее всего будет.
Про скорость не работы скажу, но основная нагрузка на процессор будет связана с первичным анализом, на память с сравнением результатов.

Вообще мне кажется, что все может быть проще, но тут, на мой взгляд, нужен хороший математик прикладник и неплохой программист. А вообще в дискретной математики что-то такое было, просто требует творческой переработки для задачи, возможно поможет обратная польская запись.

PS прошу народ не ругаться, но это просто первые мысли которые мне пришли по вопросу и то куда я стал бы копать при необходимости решения. Только сегодня читал, простая статья по генетическим алгоритмам
Ответ написан
Комментировать
Для начала не хватает описания что такое "нормальная запись". Я думаю если вы сформулируете список правил, то потом работа пойдет легче.

Только учесть придется очень много всего:
sin(x) и sin^1(x) и sin^(1)(x) и даже (sin^1(x))

В общем пока не ясно как это вообще воплотимо.
Ответ написан
Комментировать
@molekyla
Кажется это то что вам нужно. По крайней мере что то похожее нужно
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы