|
|
|
lisp перемножить многочлены
|
|||
|---|---|---|---|
|
#18+
Нужно реализовать функцию перемножения многочленов, если многочлены задаются в виде списков их коэффициентов. Помогите, пожалуйста, очень нужно! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2008, 17:03 |
|
||
|
lisp перемножить многочлены
|
|||
|---|---|---|---|
|
#18+
не совсем ясно как выглядят эти списки но подозреваю, что следующее выражение должно выполнить эту задачу: Код: plaintext ~'J'~ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2008, 18:32 |
|
||
|
lisp перемножить многочлены
|
|||
|---|---|---|---|
|
#18+
Знаете, это моя первая задача на lisp, поэтому я думаю, что препода не удовлетворит такое решение задачи. Вообще- то, мне кажется, что там ( в этих списках ) должны быть просто числа со знаками, которые нужно правильно перемножить и сложить, а затем объединить всё в один список, но я понятия не имею как это сделать... Подскажите, пожалуйста, ещё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2008, 21:34 |
|
||
|
lisp перемножить многочлены
|
|||
|---|---|---|---|
|
#18+
Покажи свои списки, тогда может смогу помочь ~'J'~ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2008, 23:18 |
|
||
|
lisp перемножить многочлены
|
|||
|---|---|---|---|
|
#18+
Любые списки, с какими сможешь с такими и подскажи. Например, (2,-3,4) и (7,2,0). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2008, 12:15 |
|
||
|
lisp перемножить многочлены
|
|||
|---|---|---|---|
|
#18+
Ну то же самое фактически: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ~'J'~ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2008, 16:08 |
|
||
|
lisp перемножить многочлены
|
|||
|---|---|---|---|
|
#18+
Во-первых, объясните, пожалуйста, что это за t и для чего оно нужно. Во-вторых, что мы получим в результате? У меня MIT/GNU Scheme не знаете как там запустить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2008, 13:22 |
|
||
|
lisp перемножить многочлены
|
|||
|---|---|---|---|
|
#18+
sotnyВо-первых, объясните, пожалуйста, что это за t и для чего оно нужно. Во-вторых, что мы получим в результате? У меня MIT/GNU Scheme не знаете как там запустить? 1. t это ИСТИНА :) 2. Переписать на MIT Scheme Например defun превратиться в define, а t в #t (есть и более существенные отличия) Если у тебя Схема, то и спрашивать надо было для схемы, а не для Лиспу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2008, 14:23 |
|
||
|
lisp перемножить многочлены
|
|||
|---|---|---|---|
|
#18+
Я же написала, что это моя первая задача. То, что вы сказали я исправила, но все равно не работает. ВОТ, что я исправила: (define (multy1 lst1 lst2) ;null проверяет, является ли аргумент пустым списком (cond ((or (null lst1) (null lst2)) nil) ((and (atom (car lst1)) (atom (car lst2))) (cons (* (car lst1) (car lst2)) (multy1 (cdr lst1) (cdr lst2)) ) ) (#t (cons (* (car lst1) (car lst2)) (multy1 (cdr lst1) (cdr lst2)) ) ) ) ) (setq result1 (multy1 `(2 -3 4) `(7 2 0))) Пишет Unbound variable:null. В чем дело, подскажите:( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2008, 21:00 |
|
||
|
lisp перемножить многочлены
|
|||
|---|---|---|---|
|
#18+
sotny пишет: > Я же написала, что это моя первая задача. То, что вы сказали я Девушка, Scheme и LISP - немного разные вещи. Вам написали программу на Common Lisp. Когда говорят "LISP" в основном сейчас подразумевают Common Lisp. Так что вам придется немного подкрутить ее на схему. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2008, 23:49 |
|
||
|
lisp перемножить многочлены
|
|||
|---|---|---|---|
|
#18+
Просто, в универе нам читали лекции и говорили, что это лекции по Лиспу, а оказалось, что они были по Схеме. Как переписать с Лиспа на схему я разобралась. Но функция работает не правильно. Например, если есть 2 списка: (1 2) и ( 3 4), то она 1*3 и 2*4, а надо: 1*3, 1*4, 2*3, 2*4. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 12:36 |
|
||
|
lisp перемножить многочлены
|
|||
|---|---|---|---|
|
#18+
sotny пишет: > Просто, в универе нам читали лекции и говорили, что это лекции по Лиспу, > а оказалось, что они были по Схеме. Языка программирования LISP не существует. LISP - это и идея. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.05.2008, 14:40 |
|
||
|
lisp перемножить многочлены
|
|||
|---|---|---|---|
|
#18+
sotnyПросто, в универе нам читали лекции и говорили, что это лекции по Лиспу, а оказалось, что они были по Схеме. Как переписать с Лиспа на схему я разобралась. Но функция работает не правильно. Например, если есть 2 списка: (1 2) и ( 3 4), то она 1*3 и 2*4, а надо: 1*3, 1*4, 2*3, 2*4. Так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.05.2008, 13:37 |
|
||
|
lisp перемножить многочлены
|
|||
|---|---|---|---|
|
#18+
Спасибо огромное!!!!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.05.2008, 21:15 |
|
||
|
lisp перемножить многочлены
|
|||
|---|---|---|---|
|
#18+
А, если нужно ещё привести подобные? Например, (x+2)*(3x+4), следовательно, списки получаются `(1 2) `(3 4), а результат должен быть следующим (3 10 8). Если кто может помогите, пожалуйста!!!!!!!!!!!!!!!!!!!!!!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2008, 12:13 |
|
||
|
lisp перемножить многочлены
|
|||
|---|---|---|---|
|
#18+
Попробовала вот так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2008, 18:08 |
|
||
|
lisp перемножить многочлены
|
|||
|---|---|---|---|
|
#18+
(append res ((car r)(+(car(cdr r))(car(cdr(cdr r))))(car(cdr(cdr(cdr r)))))) ни с чем не связано (car (cdr (car blah-blah-blah))) -> (cadar blah-blah-blah) а то уж слишком брутально ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2008, 07:32 |
|
||
|
lisp перемножить многочлены
|
|||
|---|---|---|---|
|
#18+
есть некоторые сомнения в том что вы правильно понимаете блочную структуру ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2008, 07:34 |
|
||
|
lisp перемножить многочлены
|
|||
|---|---|---|---|
|
#18+
отсутствие else в cond тоже несколько смущает медитирую над map-ой (никак не могу понять что за задачу вы решали и почему так ... замороченно) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2008, 07:42 |
|
||
|
lisp перемножить многочлены
|
|||
|---|---|---|---|
|
#18+
Функция map берет элемент из первого списка и умножает его на каждый элемент второго списка. Я не знаю как результат выполнения этой функции запихнуть в другой список, например, res и как потом по нему пройтись, чтобы это было связано? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2008, 12:18 |
|
||
|
lisp перемножить многочлены
|
|||
|---|---|---|---|
|
#18+
sotnyФункция map берет элемент из первого списка и умножает его на каждый элемент второго списка. Я не знаю как результат выполнения этой функции запихнуть в другой список, например, res и как потом по нему пройтись, чтобы это было связано? Очевидно вызвав одну функцию из другой ? Отвыкайте мыслить императивно, добро пожаловать в ФП ;) Имеется сахар: Код: plaintext 1. 2. 3. который на самом деле: Код: plaintext 1. Вы делаете парррразительные успехи (c) Кавказская пленница ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2008, 14:09 |
|
||
|
lisp перемножить многочлены
|
|||
|---|---|---|---|
|
#18+
Написала вот так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. ILL-FORMED special form: (let (res...)(pod res)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2008, 23:11 |
|
||
|
lisp перемножить многочлены
|
|||
|---|---|---|---|
|
#18+
sotny (let(res (concat (cons (map (lambda (x) (* (car lst1) x )) lst2) let выглядит так: Код: plaintext 1. 2. 3. 4. В общем-то по сообщению об ошибке можно было догадаться (как и в прошлый раз) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2008, 08:55 |
|
||
|
lisp перемножить многочлены
|
|||
|---|---|---|---|
|
#18+
тьфу, не ту скобку выделил :( но мысль я думаю ясна ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2008, 09:01 |
|
||
|
lisp перемножить многочлены
|
|||
|---|---|---|---|
|
#18+
Блин, ну не догоняю я как использовать этот Let, что я уже только не пробовала: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. ILL-FORMED special form: (let (... ...)) Ну в чем в конце-то концов дело? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2008, 22:06 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=35300965&tid=1345277]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
165ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
82ms |
get tp. blocked users: |
2ms |
| others: | 213ms |
| total: | 501ms |

| 0 / 0 |
