Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Сегменты ?... 13.04.02 12:53 Число просмотров: 944
Автор: Chingachguk <Chingachguk> Статус: Member
|
> > Может, проще пытаться найти картинки таких "сегментов" > > и просто при очередном шаге проверять их наличие во всей > > матрице ? > Если есть идеи как реализовать поиск таких сегментов без > огромных жертв производительности, то это очень хорошо и я > с удовольствием прочитаю их. > > P.S. Я пока вижу один способ - хранить в памяти самые часто > возникающие сегменты и в лоб проверять, совпадают ли они с > той или иной областью таблицы... определить, есть ли > непустые клетки, не попавшие в сегменты... , в общем > огромная вычислительная работа.
Ну, скажем, есть вот такой сегмент:
0000
0110
0110
0000
Легко видать, что такой сегмент "замкнут", т.е. не меняется со временем и "не испускает" точек наружу... Впрочем, как и кусок из одних "нулей"...
Что тут могу сказать ? Например, можно на каждом шаге искать такой сегмент(ы ?) в матрице. Допустим, нашли. Запоминаем координаты его(их) - что-то типа очереди или массива. На следующем каждом шаге проверяем состояние этих сегментов - если в течении определенного числа шагов(установить опытным путем - видимо, хватит ~10 шагов ?) они так и остались "девственными", то все, начианаем шевелиться ...
Также можно запомнинать каждую матрицу в массиве из 10-100 матриц, удаляя самую последнюю. При этом быстрыми командами rep cmpsb(w/d) сравниваем текущую матрицу со всеми запомненными из массива ...
|
|
|