[identity profile] http://users.livejournal.com/__le__/ posting in [community profile] useful_faq
Не могу сориентироваться...
Есть 8 букв (допустим, abcdefgh). Как найти все возможные комбинации, полученные из этих букв? При этом важно сохранять порядок следования (т.е., может быть adef, но не faс). Количество символов в сочетаниях - от 1 до 8, буквы не повторяются.
Если можно, дайте ссылку на литературу или он-лайн программы...
В идеале, конечно, найти какой-то способ получить список всех этих комбинаций, а не только количество.
Или подскажите, пожалуйста - может быть, есть специализированные сообщества.
спасибо.

Date: 2006-08-28 06:14 pm (UTC)
From: [identity profile] urod.livejournal.com
Каждая буква может присутствовать или отсутствовать. Но варианта, когда все буквы отсутствуют, нет. Соответственно, получается 255 последовательностей (2 в восьмой степени минус 1).

void combinations(const char* s) {
int i;
for (i=1; i<256; i++) {
int j=i;
while (j>0) {if (j%2) printf(s[i]); j /= 2;}
printf("\n");
}
}