Перестановки элементов списка и упрощение записи выражения - Lisp
Формулировка задачи:
Здравствуйте, очень нужна помощь в решении следующих задач:
1. Для заданного списка получить множество всех возможных перестановок его элементов
2. Алгебраическое выражение содержит четыре арифметические операции над переменными, разработать программу, упрощающую выражение записанное в инфиксной форме записи. Например, 0+a*(b+1*c)=a(b+c).
Заранее спасибо!
Решение задачи: «Перестановки элементов списка и упрощение записи выражения»
textual
Листинг программы
CL-USER> (perms '(1 2 3 4 5)) ((1 2 3 4 5) (1 2 3 5 4) (1 2 4 3 5) (1 2 4 5 3) (1 2 5 3 4) (1 2 5 4 3) (1 3 2 4 5) (1 3 2 5 4) (1 3 4 2 5) (1 3 4 5 2) (1 3 5 2 4) (1 3 5 4 2) (1 4 2 3 5) (1 4 2 5 3) (1 4 3 2 5) (1 4 3 5 2) (1 4 5 2 3) (1 4 5 3 2) (1 5 2 3 4) (1 5 2 4 3) (1 5 3 2 4) (1 5 3 4 2) (1 5 4 2 3) (1 5 4 3 2) (2 1 3 4 5) (2 1 3 5 4) (2 1 4 3 5) (2 1 4 5 3) (2 1 5 3 4) (2 1 5 4 3) (2 3 1 4 5) (2 3 1 5 4) (2 3 4 1 5) (2 3 4 5 1) (2 3 5 1 4) (2 3 5 4 1) (2 4 1 3 5) (2 4 1 5 3) (2 4 3 1 5) (2 4 3 5 1) (2 4 5 1 3) (2 4 5 3 1) (2 5 1 3 4) (2 5 1 4 3) (2 5 3 1 4) (2 5 3 4 1) (2 5 4 1 3) (2 5 4 3 1) (3 1 2 4 5) (3 1 2 5 4) (3 1 4 2 5) (3 1 4 5 2) (3 1 5 2 4) (3 1 5 4 2) (3 2 1 4 5) (3 2 1 5 4) (3 2 4 1 5) (3 2 4 5 1) (3 2 5 1 4) (3 2 5 4 1) (3 4 1 2 5) (3 4 1 5 2) (3 4 2 1 5) (3 4 2 5 1) (3 4 5 1 2) (3 4 5 2 1) (3 5 1 2 4) (3 5 1 4 2) (3 5 2 1 4) (3 5 2 4 1) (3 5 4 1 2) (3 5 4 2 1) (4 1 2 3 5) (4 1 2 5 3) (4 1 3 2 5) (4 1 3 5 2) (4 1 5 2 3) (4 1 5 3 2) (4 2 1 3 5) (4 2 1 5 3) (4 2 3 1 5) (4 2 3 5 1) (4 2 5 1 3) (4 2 5 3 1) (4 3 1 2 5) (4 3 1 5 2) (4 3 2 1 5) (4 3 2 5 1) (4 3 5 1 2) (4 3 5 2 1) (4 5 1 2 3) (4 5 1 3 2) (4 5 2 1 3) (4 5 2 3 1) (4 5 3 1 2) (4 5 3 2 1) (5 1 2 3 4) (5 1 2 4 3) (5 1 3 2 4) (5 1 3 4 2) (5 1 4 2 3) (5 1 4 3 2) (5 2 1 3 4) (5 2 1 4 3) (5 2 3 1 4) (5 2 3 4 1) (5 2 4 1 3) (5 2 4 3 1) (5 3 1 2 4) (5 3 1 4 2) (5 3 2 1 4) (5 3 2 4 1) (5 3 4 1 2) (5 3 4 2 1) (5 4 1 2 3) (5 4 1 3 2) (5 4 2 1 3) (5 4 2 3 1) (5 4 3 1 2) (5 4 3 2 1)) CL-USER>
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д