Нет. Чтобы увидеть это непосредственно, подумайте о создании набора базовых значений, рассматривая на каждом шаге наименьшее возможное положительное целое число, которое может быть включено в качестве следующего значения. Следующее добавляемое число должно отличаться от всех возможных сумм чисел, уже имеющихся в наборе (включая пустую сумму, равную 0), и не может комбинироваться с какой-либо комбинацией чисел, которая уже присутствует, для создания дубликата. Итак ...
{} : all possible sums = {0}, smallest possible next = 1
{1} : all possible sums = {0, 1}, smallest possible next = 2
{1, 2} : all possible sums = {0, 1, 2, 3}, smallest possible next = 4
{1, 2, 4} : a.p.s. = {0, 1, 2, 3, 4, 5, 6, 7}, s.p.n. = 8
{1, 2, 4, 8} ...
И, конечно, мы наращиваем бинарные способности. Вы можете начать с чего-то другого, кроме {1, 2}, но посмотрите, что произойдет, используя правило «наименьшее возможное следующее»:
{1, 3} : a.p.s. = {0, 1, 3, 4}, s.p.n. = 6 (because 2 could be added to 1 giving 3, which is already there)
{1, 3, 6} : a.p.s. = {0, 1, 3, 4, 6, 7, 9, 10}, s.p.n = 11
{1, 3, 6, 11} ...
Эта последовательность растет быстрее, чем двоичные степени, термин за термином.
Если вам нужна хорошая задача программирования в стиле Project-Euler , вы можете написать подпрограмму, которая принимает набор положительных целых чисел и определяет «наименьшее возможное следующее» положительное целое число под «сумма быть уникальным "ограничение.