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')

2

Re: Допоможіть, будь ласка Згенерувати булеан для множини

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))#кількість елементів булеану множини 

3 Востаннє редагувалося koala (23.09.2022 11:10:30)

Re: Допоможіть, будь ласка Згенерувати булеан для множини

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 потрібен, бо має бути саме множина.

Подякували: leofun011