Форум программистов, компьютерный форум, киберфорум
Lisp
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
1 / 1 / 0
Регистрация: 08.10.2014
Сообщений: 6
1

написание функции, реализующей разность множеств

17.10.2014, 13:14. Показов 2108. Ответов 4
Метки нет (Все метки)

Помогите решить задачу:

Написать функцию, аргументом которой являются два списка, результатом - атомы, входящие только в первый список.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.10.2014, 13:14
Ответы с готовыми решениями:

Класс множество, не работают функции объединение и разность множеств
Реализован класс множество. В алгоритме не работают 2 функции, объединение и разность множеств....

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

Доказать, что симметрическая разность множеств равна симметрической разности дополнений этих множеств
Ребят, помогите доказать, что симметрическая разность множеств равна симметрической разности...

Найти пересечение, объединение, разность, симметрическую разность множеств
Задание: Написать программу, которая проделывается операции над множествами (пересечение,...

__________________
4
Модератор
Эксперт Python
28551 / 15422 / 3046
Регистрация: 12.02.2012
Сообщений: 25,272
Записей в блоге: 4
17.10.2014, 14:13 2
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
(defun task (lst1 lst2)
  (cond ((null lst1) nil)
        ((not (member (car lst1) lst2)) (cons (car lst1) (task (cdr lst1) lst2)))
        (t (task (cdr lst1) lst2))))
 
==> task
 
(task '(1 2 3 4 5) '(1 2 3 4)) 
 
==> (5)
 
(defun task (lst1 lst2)
  (remove-if #'(lambda (x) (member x lst2)) lst1))
 
==> task
 
(task '(1 2 3 4 5) '(1 2 3 4)) 
 
==> (5)
1
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,354
17.10.2014, 15:08 3
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
;;; racket-lang.org
(define (foo lst1 lst2)
  (remove-duplicates (filter (lambda (i) (not (member i lst2))) lst1)))
 
(foo '(1 2 2 3 4 4) '(2 4 5))
;'(1 3)
 
(define (bar lst1 lst2)
  (for/list ((i lst1) #:unless (member i lst2)) i))
 
(bar '(1 2 2 3 4 4) '(2 4 5))
;'(1 3)
1
4502 / 4210 / 356
Регистрация: 12.05.2012
Сообщений: 2,963
17.10.2014, 18:34 4
Функция set-difference возвращает разность множеств:
Lisp
1
2
> (set-difference '(a b c d e) '(b c))
(A D E)
Lisp
1
2
3
4
5
6
7
(defun our-set-difference (w v)
  (cond ((null w) w)
        ((member (car w) v) (our-set-difference (cdr w) v))
        ((cons (car w) (our-set-difference (cdr w) v)))))
 
> (our-set-difference '(1 2 3 4 5) '(4 5 6 7))
(1 2 3)
Lisp
1
2
3
4
5
6
7
(defun our-set-difference (w v)
  (when w (if (member (car w) v)
              (our-set-difference (cdr w) v)
              (cons (car w) (our-set-difference (cdr w) v)))))
 
> (our-set-difference '(1 2 3 4 5) '(4 5 6 7))
(1 2 3)
Добавлено через 8 минут
Lisp
1
2
3
4
5
6
7
(defun our-set-difference (w v &optional ac &aux (a (car w)))
  (cond ((null w) (nreverse ac))
        ((member a v) (our-set-difference (cdr w) v ac))
        ((our-set-difference (cdr w) v (cons a ac )))))
 
> (our-set-difference '(1 2 3 4 5) '(4 5 6 7))
(1 2 3)
Lisp
1
2
3
4
5
6
7
8
9
(defun our-set-difference (w v &optional ac &aux (a (car w)))
  (if w 
      (our-set-difference (cdr w) v (if (member a v)
                                        ac
                                        (cons a ac)))
      (nreverse ac)))
 
> (our-set-difference '(1 2 3 4 5) '(4 5 6 7))
(1 2 3)
2
429 / 383 / 200
Регистрация: 12.08.2011
Сообщений: 1,610
23.10.2014, 14:36 5
Язык Factor:

Lisp
{ 4 3 1 3 2 1 3 4 1 2 } { 1 2 } swap [ over member? not ] filter swap drop
 
--- Data stack:
{ 4 3 3 3 4 }
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.10.2014, 14:36

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Объединение, пересечение, разность, симметрическая разность множеств
Составить множество А из букв фамилии, множество В – из букв имени, множество С – из букв отчества...

Найти разность и симметрическое разность множеств А и В
(нужна геом. решение задачи) A= {(x,y) ∈R^2 | sin(x)<y} B={(x,y)∈ R^2 |x>0,y<0} И еще...

Значение функции от пересечения множеств равно пересечению значений функции от множеств
Аллах велик! Нужно доказать вот эту штуку: \phi \left(\bigcap_{0}^{n}Ai \right) = \bigcap_{0}^{n}...

Разность множеств на C++
Вопрос не большой, но моих знаний для его решения оказалось недостаточно. Суть вопроса: ниже...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.