@MasterCopipaster

Быстрый способ подбора всех возможных вариаций значений массива какие есть способы?

Доброе время суток, у меня есть массив из 3 элементов
Я хочу получить все возможные комбинации из этого массива:
массив: 'A','B','C' 
Комбинации:
A
B
C
A B
A C
B C 
A B C


Беда в том что у меня этот массив 179 элементов, и перебрать все возможные комбинации методом простого перебора не получается (слишком много времени требуется) есть ли алгоритмы позволяющие сделать это не методом простого перебора вариантов?
  • Вопрос задан
  • 289 просмотров
Решения вопроса 1
trapwalker
@trapwalker
Программист, энтузиаст
Судя по постановке задачи и примеру, речь идёт не о всех возможных начениях массива, а обо всех возможных подмножествах множества мощностью 179.
Если каждый элемент надмножества может либо входить, либо не входить, то кажое из множеств можно сопоставить с 179-битным двоичным числом. Очевидно, что таких чисел 2^179. Если убрать из набора пустое множество (в примере его не было), то вариантов станет на один меньше: 2^179-1.
В десятичной системе это вот столько вариантов: 766247770432944429179173513575154591809369561091801087

Автор вопроса не говорит как именно он хочет получить все эти варианты, но в любом случае сохранить такое количество элементов невозможно, в нащем Солнце атомов примерно всего лишь в сто раз больше, чем это число. Чувствуете проблемочку, да?

Но задачу-то решать как-то надо. Давайте воспользуемся кодом Грея, чтобы можно было при переходе от варианта к варианту ограничиться изменением всего лишь одного бита. Но и это не поможет нам перебрать все варианты за разумное время.
Пусть на один вариант нам потребуется безумно мало времени: один такт процессора. Сохранять мы варанты никуда не будем (потребовалось бы десять Юпитеров, чтобы на их атомах записать все варианты), просто покажем на экране. Да, за один такт этого не получится, но предсьавим себе что у нас такой специальный процессор с частотой 3 гигагерца. И нам потребуется 8099185802817355231125623242284335104 лет его работы.
И всё это бессмысленно. Протсо автор вопроса не понимает чего хочет.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы