2010-12-06 4 views
1

Если у меня есть n бит логического уравнения, существует ли какой-либо простой способ или алгоритм для получения набора дополнений?boolean set set

Например, у меня есть 3-битовое булево уравнение {110, 001}, есть ли какой-либо простой способ получить дополнение, установленное под U (перестановка на 3 бит), то есть {000,010,011,100,101,111}?

Спасибо!

+0

Мой ключевой момент, когда п является повышение, алгоритм кажется экспоненциальный? – Ang 2010-12-06 18:34:10

+0

Число элементов в U растет экспоненциально с n, что означает, что число элементов в дополнении будет экспоненциально расти. – mbeckish 2010-12-06 18:35:43

ответ

0

Запуск по всему U (от 0 до 2^x - 1, где x - количество бит) и опустить те, которые у вас уже есть. Вы можете преобразовать их в числа, чтобы быстрее проверить равенство.

0
SET[] = {6, 1} 

for(i=0;i<N;i++) { 
if(!exists(SET)) { 
    add(i, COMPLEMENT_SET) 
} 
} 

N = 2^п-1 Что-то вроде этого ...

Смежные вопросы