![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 | |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]() Цитата:
В таком подходе один_пиксель тождественно_равен одной_ячейке. И объявлять такой метод хранения данных маразмом, мне кажется, несколько легкомысленно. |
|
![]() |
![]() |
![]() |
#12 | |||
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]() Цитата:
Во-первых, из 230 миллиадов ребер реально в задаче фигурирует лишь порядка миллиона (т.е. 0.0004%). Остальные хранить бессмысленно. Во-вторых, только этот миллион и имеет смысл перебирать. Те остальные не нужно ни хранить, ни обрабатывать. Цитата:
Позже, правда, выяснилось, что Дейкстра сделал это несколько раньше меня. ![]() Цитата:
Вы ведь писали на форум именно с этой целью? Для начала мне хотелось бы прояснить некоторые особенности вычисления стоимости преодоления ребра в Вашей задаче. Потенциальна ли высота в Вашей задаче? Можно ли как-нибудь выяснить стоимость перехода между ячейками по величине перепада высот? В любом случае, нам имеет смысл хранить ТОЛЬКО те переходы, которые реально есть, т.е. переходы между соседними ячейками. При условии метрики distance = dX + dY (т.е. переход возможен только на 4 соседних ячейки) можно ввести два массива размера MaxX*(MaxY-1) для описания вертикальных ребер (переходы слева направо и наоборот) и размера (MaxX-1)*MaxY - для горизонтальных (переходы сверху вниз и наоборот). Если переходы существенно асимметричны (т.е. переходе налево и направо не могут быть вычислены из одной константы), количество массивов увеличивается вдвое. Если возможны переходы по диагонали, также увеличивается вдвое. Таким образом, для хранения всех необходимых переходов матрицы смежности нам потребуется от 2 до 8 массива с полумиллионом элементов каждый. Мне кажется, вполне вменяемые объемы. |
|||
![]() |
![]() |
![]() |
#13 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]() |
![]() |
![]() |
![]() |
#14 | ||||
ios developer
Старожил
Регистрация: 16.11.2007
Сообщений: 2,885
|
![]() Цитата:
Цитата:
Цитата:
Цитата:
Делайте что хотите, но чтобы через полчаса в лесу было светло, сухо и медведь!
Последний раз редактировалось crazy horse; 01.06.2012 в 22:35. |
||||
![]() |
![]() |
![]() |
#15 | ||
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]() Цитата:
Опять же, о rtfm хорошо рассуждать, когда под рукой есть этот самый fm, ну или хотя бы И-нет. Но так было далеко не всегда. Кроме того, я обнаружил, что изобретать - зачастую получается проще и быстрее, чем искать fm. Цитата:
А вообще, мне неведомо, с какой целью Вы сюда пришли. |
||
![]() |
![]() |
![]() |
#16 | ||
Пользователь
Регистрация: 26.01.2011
Сообщений: 48
|
![]() Цитата:
Цитата:
К сожалению, из-за сессии сильно ограничен во времени. |
||
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
поиск пути | Nikita1111 | Visual C++ | 1 | 09.02.2012 00:44 |
Поиск абонента по на карте номеру телефона. | sexybabeonwings | Общие вопросы Delphi | 1 | 26.09.2009 16:39 |