Тема: Допоможіть, будь ласка Згенерувати булеан для множини
Згенерувати булеан для множини А.
На вихід вивести:
кількість елементів булеану множини
a = set ('1 2 3 O o P p Q q R r S s T t U u V v W w X x Y y Z z')
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → Python → Допоможіть, будь ласка Згенерувати булеан для множини
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
Згенерувати булеан для множини А.
На вихід вивести:
кількість елементів булеану множини
a = set ('1 2 3 O o P p Q q R r S s T t U u V v W w X x Y y Z z')
import itertools
multiplicity = set('1 2 3 O o P p Q q y Z z') # ісходна множина
boolean = set() # Булеан
for r in range(len(multiplicity) + 1):
temp = set(itertools.combinations(multiplicity, r))
for i in temp:
boolean.add(i)
print(len(boolean))#кількість елементів булеану множини
1. То треба булеан чи його довжину? Друге значно швидше робиться.
2. Взагалі найпростіший спосіб згенерувати булеан без бібліотечних функцій - взяти двійкове представлення чисел від 0 до кількості елементів булеану мінус один, кожне дає одну підмножину.
3.
set('1 2 3 O o P p Q q y Z z')
- у вас там пробіли зайві, так, вони скорочуються але, може, ви хотіли
set('1 2 3 O o P p Q q y Z z'.split())
зробити?
4. itertools.combinations видає унікальні значення, у вашому коді перетворювати його в set не треба.
А от якщо замість внутрішнього циклу скористатися оператором |=, то set потрібен, бо має бути саме множина.
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися