Количество подпоследовательностей в заданной последовательности
Если мне задана последовательность X = {x1,x2,....xm}
, то у меня будут подпоследовательности (2^m)
.
Может кто-нибудь объяснить, как я могу получить эту формулу интуитивно?
Я могу начать с 3 элементов, затем 4, а затем 5 и дойду до этой формулы, но я не думаю, что понимаю. Откуда взялось "2"? Я не разделяю ни половины, ни чего-либо здесь.
Спасибо за помощь.
Ответы
Ответ 1
Прежде всего, то, о чем вы говорите, называется set. Во-вторых, правильно, что количество различных подмножеств, которые могут быть сгенерированы из множества, равно 2 ^ m, где m - количество элементов в этом наборе. Мы можем прийти к такому результату, если взять пример из трех элементов:
S = {a, b, c}
Теперь для генерации каждого подмножества мы можем моделировать наличие элемента с использованием двоичной цифры:
xxx where x is either 0 or 1
Теперь давайте перечислим все возможности:
000 // empty sub-set
001
010
011
100
101
110
111 // the original set it self!
Давайте возьмем 011
в качестве примера. Первая цифра равна 0, тогда a
не находится в этом подмножестве, но b
и c
существуют, потому что их соответствующие двоичные цифры равны 1. Теперь, учитывая m (например, 3 в приведенном выше примере) двоичные цифры, сколько двоичных чисел (подмножеств) может быть сгенерировано? Вы должны ответить на этот вопрос к настоящему времени;)
Ответ 2
Для тех, кто действительно ищет подстроку (поскольку заголовок или URL-адрес могут заставить вас поверить):
Subset: 2^n (Order doesn't matter in sets)
Subsequence: 2^n (Since we keep the original ordering, this is the same.)
Substring: n(n+1) * 1/2 (Elements must be consecutive)
Ответ 3
Значение x_i
может быть либо в подпоследовательности, либо нет. Это как раз немного. Существуют комбинации 2^m
для включения/выключения чисел m
в последовательности.
Ответ 4
Откуда взялись 2? Каждый раз, когда вы добавляете еще один элемент, вы удваиваете количество возможностей.
Ответ 5
Для любой последовательности X = {x1, x2,.... xm} будут подпоследовательности (2 ^ m), так как вы можете "выбрать" подпоследовательности длины 0,1,2..., m, т.е. математически это
"C (m, 0) + C (m, 1) +... C (m, m)", что приводит к 2 ^ m.
Например, например, строка "abc", затем
C (3,0) = 1, ""
C (3,1) = 3, "a", "b", "c"
C (3,2) = 3, "ab", "bc", "ac"
C (3,3) = 1, "abc"
число подпоследовательностей равно 8, то есть 2 ^ 3.
Подробнее см. http://en.wikipedia.org/wiki/Binomial_coefficient#Series_involving_binomial_coefficients
Ответ 6
Для каждого элемента в последовательности длины m
вы можете выбрать его или оставить. Таким образом, есть два способа решения каждого элемента. Таким образом, общее число. способов борьбы со всеми элементами m
: 2*2*2...... m
times = 2^m
times.
Ответ 7
Каждая подпоследовательность определяется выбором между выбором или отсутствием каждого из m элементов. Поскольку есть m элементов, каждый из которых имеет два возможных состояния, вы получаете 2 м. Возможности.
Ответ 8
Каждый элемент находится либо в подпоследовательности, либо нет. Поэтому, начиная с первого x1, существуют два набора подмножеств: те, у которых есть x1, и те, у кого нет. То же самое можно сделать с меньшей суб-проблемой {x2,..., xm}. Поэтому вы, наконец, получаете 2 ^ м.
Ответ 9
В основном у вас будет в два раза больше подпоследовательностей для каждого нового числа, так как у вас будут (2^(m-1))
"эквивалентные" подпоследовательности, которые сдвинуты на одно пространство вправо (при условии горизонтального упорядочения и добавления справа) плюс подпоследовательность всех элементы.
Ответ 10
Я начал курс алгоритма совсем недавно.
Я думаю, что более интуитивный способ мышления о ответе - подумать о примере.
Например, мы имеем A = (1,2,3)
Тогда у нас может быть 0 что 1 путь 1,2 или 3, что 3 пути (1,2), (1,3), (2,3), а также 3 способа А также (1,2,3) == что еще один путь
Общая подпоследовательность 2 ^ 3 или 8.
Таким образом, общая формула mc0 + mC1 + mC2, MC3 +...... MCM
Пожалуйста, поправьте меня, если я ошибаюсь. Я столкнулся с этой проблемой минут назад, и именно так я думал об интуитивной формулировке.