Powerset для большого размера массива [дубликата]

0

Я хочу найти сумму всех подмножеств силового набора для массива большого размера (до 1500). Я искал, но не смог найти эффективный алгоритм для этого.

Пример:

array=[1,2,3]

Ответ:

{} -> 0,{1} -> 1,{2} -> 2,{3} -> 3,{1,2} -> 3,{1,3} -> 4,{2,3} -> 5,{1,2,3} -> 6

Есть ли эффективный способ сделать это?

  • 2
    C или C ++, выберите один.
  • 0
    C ++, я упоминал в заголовке
Показать ещё 2 комментария
Теги:
algorithm

1 ответ

1

Существует 2 ^ n подмножеств массива с n элементами.

Каждый элемент будет присутствовать ровно в половине из них.

Поэтому сумма всех подмножеств будет представлять собой сумму всех элементов, умноженных на 2 n-1.

  • 0
    я хочу найти сумму каждого подмножества отдельно, как в примере ..
  • 2
    @ kvnt1102 Там будет 2 ^ 1500 из этих подмножеств, вам действительно нужны все они отдельно?
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню