Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Найти все комбинации матрицы 
:(
    Опции темы
JavaDell
Дата 5.2.2014, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 11.5.2011

Репутация: нет
Всего: нет



Есть 2х мерный массив (java)
Код

 int[][] array = new int[3][3];

массив может быть заполнен элементами 0 или 1.

Надо пройти ВСЕ возможные комбинации нулей и единиц в этом массиве. Лупами, без использования рекурсии. Каждую получившуюся комбинацию нужно иметь возможноть сравнить с имеющейся (здесь не дано).
Знаю, что количество полученных комбинаций очень велико, 2^(n*n), но все же.

Это сообщение отредактировал(а) JavaDell - 5.2.2014, 18:43
PM MAIL   Вверх
Akina
Дата 5.2.2014, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Ну так и запускай цикл от нуля до 2^(n*n). Битовое представление итератора и есть твой массив, только линеаризованный.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
JavaDell
Дата 5.2.2014, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 11.5.2011

Репутация: нет
Всего: нет



Цитата(Akina @ 5.2.2014,  20:01)
Ну так и запускай цикл от нуля до 2^(n*n). Битовое представление итератора и есть твой массив, только линеаризованный.

Ничего не понял. Итераторы в массивах? Битовые представления? от 0 до 2^(n*n) в одном лупе?

Вы, возможно не так поняли вопрос. Есть к примеру

1 0 0
0 1 1
0 1 0

надо array заполнять по порядку единицами (по умолчанию он заполнен нулями), пока он не станет вида выше.
Вот не пойму, как написать такие циклы, чтобы пройти все возможные комбинации. При том, что размер массива может меняться в рантайме, но всегда остается квадратным: 3x3, 4x4, 5x5...

Извиняюсь, если вопрос глупый, я только учусь.

Это сообщение отредактировал(а) JavaDell - 5.2.2014, 20:43
PM MAIL   Вверх
Akina
Дата 6.2.2014, 08:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Цитата(JavaDell @  5.2.2014,  21:35 Найти цитируемый пост)
Есть к примеру
1 0 0
0 1 1
0 1 0

Вытягиваем в линию
(100)(011)(010) = 100011010
Далее
Код

n=3
for i = 0 to 2^(n*n)-1
    arr = bin(i, n*n) - представить i в бинарном виде длины n*n
next i

Получаем значения arr:

000000000
000000001
000000010
...
100011001
100011010 - вот оно, соотв. dec(i)=282
100011011
...
111111110
111111111




--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0752 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.