#!/usr/bin/python
# логика: нет х = (х не-равно х)
# есть х = (х равно х)
A = ('a', 'b', 'c')
B = ('c', 'd')
C = ('d', 'e')
D = ()
#
#множества пересекаются, если (существует OR существуют) inSet1 == inSet2
#множества не пересекаются, если not (существует OR существуют)
def intersection_of_sets(set1, set2):
pm = False
for inSet1 in set1:
for inSet2 in set2:
if inSet1 == inSet2:
#print('множества пересекаются: ', inSet1, '=', inSet2)
pm = True
#else: print('множества не пересекаются, т.е. имеем пустое множество')
if pm == True: print('множества пересекаются')
else: print('множества не пересекаются')
return pm
#
intersection_of_sets(A, B) #вернет True: множества пересекаются
intersection_of_sets(A, C) #вернет False: пересечение множеств - пусто
#т.е. каждый элемент множеств А не равен
#каждому элементу множества С
intersection_of_sets(D, D) #вернет False: пустое множество задается
#тождественно ложной формулой, т.е. противоречием
#т.е в нем нет такого элемента х, что х=х
А ниже ссылка на теорию. Цитата из учебного пособия [Н. Непейвода, Прикладная логика, стр 71], в котором пустое множество задается тождественно ложной формулой.
В заключение отмечу, что различные комбинации этих есть и нет позволяют сконструировать натуральный ряд чисел.
P.S. Система, утверждения которых нельзя ни доказать, ни опровергнуть средствами самой теории, называется неполной. Наоборот, система называется полной, если в ней доказывается либо F, либо доказывается его отрицание. А поскольку тождественно ложные формулы исключены из доказательств, то и выразить то, что ими описывается, не представляется возможным. … Так в классическом представлении приходят к выводам о неизбежности недоказуемого в непротиворечивой системе.
Комментарии (10)
bulygin69
09.05.2017 14:08-2Да не в самом же коде дело. Это только способ показать, что
есть А = (А равно А),
нет А = (А не равно А)
(А не-равно А) — тождественно ложная формула или, иначе говоря, противоречие.
И что пустое множество может быть выражено тождественно ложной формулой.
P.S. Зачем продолжена итерация? Затем, чтобы показать что [не существовать = не (существует или существуют)]
zzimba
09.05.2017 14:101. Вы говорите про множества, а ипользуете кортеж
2. Если взять дествительно множества то для их сравнения не нужно изобретать велосипед, достаточно бинарного and
A = {'a', 'b', 'c'} B = {'c', 'd'} C = {'d', 'e'} D = set() bool(A & B) True bool(A & C) False bool(D & D) False D == D True
Практическое пременение подобных сравнений всегда нужно для того чтобы найти эти общие элементы и получить результат. Пустое множество точно таких пересечений ни с чем не содержит.
Но если цепляться к вашей реализации то она настолько же оптимальна насколько сортировка пузырьком.
Зачем гонять цикл в цикле?
Зачем если нашли пересечение продолжать итерации?
for inSet1 in set1: if inSet1 in set2: #print('множества пересекаются: ', inSet1, '=', inSet2) pm = True break
Учитись писать кодbulygin69
09.05.2017 14:13-2Да не в самом же коде дело. Это только способ показать, что
есть А = (А равно А),
нет А = (А не равно А)
(А не-равно А) — тождественно ложная формула или, иначе говоря, противоречие.
И что пустое множество может быть выражено тождественно ложной формулой.
P.S. Зачем продолжена итерация? Затем, чтобы показать что [не существовать = не (существует или существуют)]
bulygin69
09.05.2017 14:26-2Насчет кортежа… Если бы использовались {}, то смысл этой логики не удалось бы показать. Да, в практическом смысле проще было бы привести (если иметь ввиду результат) операции python c множествами. Но, повторюсь, дело не в быстродействии, а в том, чтобы отобразить логику
DaneSoul
<сарказм>В Твиттер не влезло?</сарказм>
napa3um
На хабре/гиктаймсе публикуется всё больше «фундаментальных» открытий («открывают» новыми словами ООП, ФП, нейросети, эволюцию, теорию информации, физику, математику), наверное, это как-то связано с весной.
DaneSoul
Фундаментальные статьи — это хорошо, когда они целостны и раскрывают важную и интересую тему с разных сторон. Про туже логику я бы не прочь почитать детальную статью, но именно статью, а не вот такой «огрызок» из пары абзацев.
napa3um
https://ru.wikipedia.org/wiki/Парадоксы_теории_множеств