Re: Шаблоны математических выражений
От: Кодт Россия  
Дата: 11.08.04 13:42
Оценка:
Здравствуйте, chukichuki, Вы писали:

C>Имеется определенный набор математических выражений записанных следующим образом

C>В1: x1+x2
C>В2: x1+x2+1
C>В3: (x1+2)+(x1+3)
C>В4: (x1+2)*4
C>В5: (x1+2)+x2

C>где xi — некие шаблоны, которые соотвествуют некоторым неизвестным математическим выражениям.

C>Есть выражение без шаблонов. Например (1+2)+(1+3). Задача выбрать из верхнего набора выражений
C>такое шаблонное выражение, которое наиболее полно повторяло структуру исходного выражения.
C>Для примера очевидно, что выражению (1+2)+(1+3) соотвествуют шаблоны В1 ( x1=(1+2),x2=(1+3)) ,В3(x1=1) ,В5 (x1=1,x2=(1+3)).
C>В данном случае это В3, при x1=1

Механизм сопоставления аргументов. Задача для функционального программирования.
На лиспе такое делается сравнительно несложно. Да и в любом языке, где поддерживаются многоуровневые списки.

На входе функции — шаблон и целевое выражение. На выходе — да/нет и если да, то таблица соответствия: переменные шаблона и их значения.

Оценочная функция: средняя громоздкость значения каждой переменной.
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.