fork download
  1. def read_set_from_keyboard(prompt):
  2. """Считывает элементы множества с клавиатуры."""
  3. s = set()
  4. print prompt # Выводим приглашение для ввода
  5. print "Введите элементы множества (для завершения введите 'стоп'):"
  6. while True:
  7. element = raw_input() # Используем raw_input() вместо input()
  8. if element.lower() == "стоп":
  9. break
  10. try:
  11. s.add(int(element)) # Преобразуем в целое число, если возможно
  12. except ValueError:
  13. print "Ошибка: Введите целое число или 'стоп'."
  14. continue # Переходим к следующей итерации цикла
  15.  
  16. print "Множество:", s # Для отладки
  17. return s
  18.  
  19. def set_difference(a, b):
  20. """Вычисляет разность множеств A \\ B."""
  21. return a - b
  22.  
  23. def set_union(b, c):
  24. """Вычисляет объединение множеств B ∪ C."""
  25. return b | c
  26.  
  27. def set_intersection(a, b):
  28. """Вычисляет пересечение множеств A ∩ B."""
  29. return a & b
  30.  
  31.  
  32. def main():
  33. """Главная функция программы."""
  34.  
  35. # Вводим множества A, B и C только с клавиатуры
  36. A = read_set_from_keyboard("Ввод множества A:")
  37. B = read_set_from_keyboard("Ввод множества B:")
  38. C = read_set_from_keyboard("Ввод множества C:")
  39.  
  40. # Вычисляем левую часть (A\B) ∩ (A\C)
  41. a_minus_b = set_difference(A, B)
  42. a_minus_c = set_difference(A, C)
  43. result_left = set_intersection(a_minus_b, a_minus_c)
  44.  
  45. # Вычисляем правую часть A\(B ∪ C)
  46. b_union_c = set_union(B, C)
  47. result_right = set_difference(A, b_union_c)
  48.  
  49. print "\nМножество A:", A
  50. print "Множество B:", B
  51. print "Множество C:", C
  52.  
  53. print "\nРезультат (A\\B) ∩ (A\\C):", result_left
  54. print "Результат A\\(B∪C):", result_right
  55.  
  56. # Проверяем, равны ли множества result_left и result_right
  57. if result_left == result_right:
  58. print "\n(A\\B) ∩ (A\\C) == A\\(B∪C) - Равенство подтверждено!"
  59. else:
  60. print "\n(A\\B) ∩ (A\\C) != A\\(B∪C) - Внимание! Множества не равны."
  61.  
  62. if __name__ == "__main__":
  63. main()
  64.  
Success #stdin #stdout 0.01s 7256KB
stdin
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
стоп
3
6
9
12
15
18
21
24
27
30
стоп
5
10
15
20
25
30
стоп
stdout
Ввод множества A:
Введите элементы множества (для завершения введите 'стоп'):
Множество: set([2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30])
Ввод множества B:
Введите элементы множества (для завершения введите 'стоп'):
Множество: set([3, 6, 9, 12, 15, 18, 21, 24, 27, 30])
Ввод множества C:
Введите элементы множества (для завершения введите 'стоп'):
Множество: set([5, 10, 15, 20, 25, 30])

Множество A: set([2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30])
Множество B: set([3, 6, 9, 12, 15, 18, 21, 24, 27, 30])
Множество C: set([5, 10, 15, 20, 25, 30])

Результат (A\B) ∩ (A\C): set([2, 4, 8, 14, 16, 22, 26, 28])
Результат A\(B∪C): set([2, 4, 8, 14, 16, 22, 26, 28])

(A\B) ∩ (A\C) == A\(B∪C) - Равенство подтверждено!