![]() |
|
![]() ![]() ![]() |
|
integral |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 278 Регистрация: 3.7.2006 Где: Dnipropetrovs' ;k, Ukraine Репутация: нет Всего: нет |
Я вообще новичок в ФП, поэтому не знаю на сколько это реально: Нада написать ф-цию или их набор, которые упрощают алгебраическое выражение одной переменой записаное в польской нотации. Т. е. упрощать нужно что-то типа (+ (+ x 1) (- x 1)) получится (* 2 x), ну или что-то подобное. Хорошо-бы примерчик кода
|
|||
|
||||
Lisp2D |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 8.6.2006 Репутация: нет Всего: нет |
Данная задача попахивает искуственным интеллектом, точного алгоритма нет.
Можно просто попробовать различные методы практические из жизни. - Учиться программировать нужно от более простых задач. Это сообщение отредактировал(а) Lisp2D - 12.11.2006, 23:49 |
|||
|
||||
adejneka |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 8.7.2005 Где: Москва, Россия Репутация: 9 Всего: 11 |
Сначала стоит определиться с тем, что такое "алгебраическое выражение". Например, можно считать, что в нем используются операции сложения, вычитания, умножения и деления. Тогда упрощением можно попробовать считать приведение к форме отношения двух многочленов. Соответственно, нужно определить четыре операции над такими выражениями. Многочлены можно представить либо как список коэффициентов при последовательных степенях X, либо как список пар (степень коэф), дроби - как пары взаимно простых многочленов. Дальше определяете алгебраические операции над дробями и пишете рекурсивный вычислитель:
После этого, осталось только перевести результат в красивый вид. |
|||
|
||||
Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: нет Всего: 173 |
Помимо книг по компьютерной алгебре (например, на русском языке доступен одноимённый сборник под редакцией Бухбергера), возможно, стоит заглянуть в исходники Maxima — CAS, написанной большей частью на Лиспе.
-------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
integral |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 278 Регистрация: 3.7.2006 Где: Dnipropetrovs' ;k, Ukraine Репутация: нет Всего: нет |
Ага, ясна, щас гляну.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума LISP | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | LISP | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |