Задача — есть несколько множеств — {A1, A2, A3, ...}, {B1, B2, B3, ...}, {C1, C2, C3, ...} и т.д., необходимо составить все возможные комбинации элементов таким образом, чтобы в комбинации присутствовал один и только один элемент из каждого множества:
A1, B1, C1
A2, B1, C1
A3, B1, C1
A1, B2, C1
и т.д.
забыл уточнить, что количество множеств можеть быть разным, может быть 3, а может и 30. другими словами есть динамический массив, элементы которого есть множества. и надо перебрать комбинации из всех множеств этого массива. видимо без рекурсии не обойтись
циклы мне очень нравтся :) просто не получается тут одними циклами обойтись. количество множеств может быть разным, как я уточнил, а алгоритм универсальным. то есть если будет 30 множеств не хотелось бы писать вручную 30 вложенных циклов. ну я примерно понял, куда нужно копать (для c# разработчиков). разбираюсь
>> количество множеств можеть быть разным, может быть 3, а может и 30
фига се Вы тут губищи раскатали. 30 множеств. Вы че?
даже простенькая прикидка: берем 30 множеств по два элемента в каждом:
в итоге имеем 2^30 сочетаний на выходе.
Вот уж интересно, как Вы собираетесь ВОЗВРАЩАТЬ результат из МИЛЛИАРДА элементов (по 30 байт минимум каждый).
Вы своей выдачей не только всю оперативу переполните, но и любой винт в файловой системе FAT32 (даже если выдачу разобьете на 8 фрагментов по 4 Гигабайта).