Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Алгоритмы > Найти все комбинации матрицы |
Автор: JavaDell 5.2.2014, 18:41 | ||
Есть 2х мерный массив (java)
массив может быть заполнен элементами 0 или 1. Надо пройти ВСЕ возможные комбинации нулей и единиц в этом массиве. Лупами, без использования рекурсии. Каждую получившуюся комбинацию нужно иметь возможноть сравнить с имеющейся (здесь не дано). Знаю, что количество полученных комбинаций очень велико, 2^(n*n), но все же. |
Автор: Akina 5.2.2014, 20:01 |
Ну так и запускай цикл от нуля до 2^(n*n). Битовое представление итератора и есть твой массив, только линеаризованный. |
Автор: JavaDell 5.2.2014, 20:35 | ||
Ничего не понял. Итераторы в массивах? Битовые представления? от 0 до 2^(n*n) в одном лупе? Вы, возможно не так поняли вопрос. Есть к примеру 1 0 0 0 1 1 0 1 0 надо array заполнять по порядку единицами (по умолчанию он заполнен нулями), пока он не станет вида выше. Вот не пойму, как написать такие циклы, чтобы пройти все возможные комбинации. При том, что размер массива может меняться в рантайме, но всегда остается квадратным: 3x3, 4x4, 5x5... Извиняюсь, если вопрос глупый, я только учусь. |
Автор: Akina 6.2.2014, 08:40 | ||
Вытягиваем в линию (100)(011)(010) = 100011010 Далее
Получаем значения arr: 000000000 000000001 000000010 ... 100011001 100011010 - вот оно, соотв. dec(i)=282 100011011 ... 111111110 111111111 |