Форум сайта python.su
Выбрав произвольные отношения A, B доказать истинность следующего свойства симметризации и композиции отношения (A ^ B)-1=A-1 ^ B-1;
Имеется вот такой код:
import sys #Удаляем из введенных данных повторяющиеся элементы def listToSet(rel): result = list() for el in rel: if el not in result: result.append(el) return result #Обращение (меняем элементы пар местами) def Invers(rel): result = rel for i in range(len(result)): result[i][0], result[i][1] = result[i][1], result[i][0] return listToSet(result) #Элементы из первого множества, которые входят и во второе def And(f,s): result = list() for el in f: if el in s: result.append(el) return result #Главный код программы while True: print('Формат отношений: [[1,2],[3,4], ...,[x(n-1),x(n)]]') print('A:') exec("A = listToSet("+input("\t")+")") print('B:') exec("B = listToSet("+input("\t")+")") print('A^(-1) & B^(-1)') print('\t'+str(And(Invers(A),Invers(B)))) print('(A & B)^(-1)') print('\t'+str(And(A,B)))
Отредактировано mozart034 (Май 29, 2012 13:45:56)
Офлайн
a = set(map(lambda s: tuple(s.split()), raw_input('A: ').split(', '))) b = set(map(lambda s: tuple(s.split()), raw_input('B: ').split(', '))) intersection = lambda a, b: a.intersection(b) inversion = lambda rel: { pair[::-1] for pair in rel } print intersection(inversion(a), inversion(b)) print inversion(intersection(a, b))
[15:35] home:~/dev python help.py
A: 1 3, 2 4
B: 1 3, 2 4
set([('3', '1'), ('4', '2')])
set([('3', '1'), ('4', '2')])
(A ^ B)-1 = A-1 ^ B-1
это не:
And(A,B) = And(Invers(A),Invers(B))
Отредактировано fata1ex (Май 29, 2012 15:27:33)
Офлайн
>>> type(input("\t")) [1,2,3,4] <type 'list'> >>>
Офлайн