Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 27.12.2009, 00:55
Аватар для m0nzt3r
m0nzt3r m0nzt3r вне форума
Прохожий
 
Регистрация: 02.12.2008
Адрес: Россия, Москва
Сообщения: 7
Репутация: 11
По умолчанию Перестановки в матрице.

Здравствуйте. Есть поле M*N. Есть Q фигур. Нужно для всех возможных расстановок этих Q фигур выполнить над матрицей (полем) некие операции. Подскажите идею, как реализовать перебор возможных комбинаций.

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

Спасибо заранее.

Последний раз редактировалось m0nzt3r, 27.12.2009 в 00:59.
Ответить с цитированием
  #2  
Старый 27.12.2009, 01:02
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

3D-тетрис что-ли делаете?
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 27.12.2009, 01:06
Аватар для m0nzt3r
m0nzt3r m0nzt3r вне форума
Прохожий
 
Регистрация: 02.12.2008
Адрес: Россия, Москва
Сообщения: 7
Репутация: 11
По умолчанию

Не, не тетрис. Кстати, расставляемые элементы - одинаковы. То бишь главное факт занимания ими ячейки, а в каком они порядке - не важно. Главное, чтобы все три были в трех разных местах. Суть - генерация всевозможных лабиринтов с Q закрашенными ячейками.
Ответить с цитированием
  #4  
Старый 29.12.2009, 13:24
Аватар для s0Creator
s0Creator s0Creator вне форума
Местный
 
Регистрация: 20.02.2008
Адрес: Московская область
Сообщения: 420
Репутация: 884
По умолчанию

Т.е. Q меньше M*N и должны быть все расположены, каждая один раз - вот это перебрать ?
Ответить с цитированием
  #5  
Старый 29.12.2009, 13:28
Аватар для m0nzt3r
m0nzt3r m0nzt3r вне форума
Прохожий
 
Регистрация: 02.12.2008
Адрес: Россия, Москва
Сообщения: 7
Репутация: 11
По умолчанию

Цитата:
Сообщение от s0Creator
Т.е. Q меньше M*N и должны быть все расположены, каждая один раз - вот это перебрать ?
Угу, все так и есть.
Ответить с цитированием
  #6  
Старый 29.12.2009, 14:55
Аватар для s0Creator
s0Creator s0Creator вне форума
Местный
 
Регистрация: 20.02.2008
Адрес: Московская область
Сообщения: 420
Репутация: 884
По умолчанию

С учетом того, что любой ячейке можно сопоставить число от 0 до (M*N-1) [i + j*M]. технология где-то так:
Массив размерностью Q ( ms[0] определяет положение первого элемента, ms[1] второго ...)
А дальше перебор с вложенностью Q
Т.е для каждого ms[0] (от 0 до (M*N-1) ) перебор всех ms[1] (от 0 до (M*N-1) ) где ms[0] <> ms[1]
для этой пары соответственно ms[2] (от 0 до (M*N-1) ) где ms[2]<>ms[0] и ms[2]<>ms[1].
По идее можно сделать универсальный алгоритм ( функцию )
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:11.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025