Ayrat
Ну да. Мапа по тупле тогда
А блин, не заметил
Dr. Friedrich
Да, конечно, надо из задач исходить.
Dr. Friedrich
Мапа по координатам — ок
Vasily
Соседние считаем как разность квадратов
Vasily
Или какая там формула расстояния
Vasily
И не ебем мозг себе. Окружающим можно
Hog
И не ебем мозг себе. Окружающим можно
Отличная жизненная позиция! :)))
Vasily
У всех восьми точек расстояние один
Vasily
Должно быть
Vasily
А дальше вообще тривиально
Фил Ранжин
соседей захардкодить проще
Фил Ранжин
а хз
Vasily
Ты просто посев сделал, дальше каждый следующий тривиально считается
Vasily
Но n2, естественно
Vasily
Хотя всегда можно отсечь по разности координат
Hog
Sparse Matrix stores non-zero values in 3 arrays in the standard compressed sparse row (CSR) format. One array stores all values that are not zero, another array of the same length stores the their corresponding column index. The third array of the length of the number of rows plus one, stores the offsets where each row starts, and the total number of non-zero values in the last field. If your data contains only very few zeros, using the sparse variant is orders of magnitudes slower than their dense counterparts, so consider to use dense types unless the data is very sparse (i.e. almost all zeros).
Hog
Это из math.net
Фил Ранжин
Накуа?
подожди, я не очень понял, как ты предлагаешь считать соседей?
Фил Ранжин
вычислить расстояние, и отфильтерить мапу?
Vasily
Учитывая, что живых мало
Vasily
Выглядит ок
Фил Ранжин
но ведь это дорого, а если захардкодить [ i-1;j-1; i-1;j; ... ]
Фил Ранжин
то дешево
Фил Ранжин
выглядит праавда не ок
Фил Ранжин
Учитывая, что живых мало
их может быть очень много
Vasily
их может быть очень много
По сравнению с полем их всегда мало
Vasily
Но в целом можно захардкодить
Vasily
Только не так, как ты показал
Фил Ранжин
?
Vasily
Там по разнице координат отдельных должно быть не больше единицы по модулю
Vasily
X-x1<1
Vasily
И y-y1<1
Hog
Зачем считать все расстояния и потом фильтровать, если мы точно знаем координаты соседей?
Hog
Мне вариант Фила больше нравится
Vasily
По мапе все равно ходить, кстати
Hog
Надо привести к единому апи и натравить бенчмаркдотнет. Тогда станет понятно, что использовать
Фил Ранжин
тут сука ещё и мапа то не оч подходит
Фил Ранжин
в конвее надо по порядку обрабатывать
Фил Ранжин
значит надо снаружи принимать лист, ложить его в мапу ...
Фил Ранжин
заебись тогда
Ayrat
Ну он же дерево
Фил Ранжин
кстати, вот мапа из F# collections, она же с вэлью
Фил Ранжин
а мне вэлью не нужен
Фил Ранжин
Так мап вроде сортирует себя
и как из неё брать первый элемент? Пиком, который всегда some отдаёт?
Ayrat
Мап это ещё и сиквенс
Ayrat
Притом упорядоченный сиквенс
Фил Ранжин
неудобно
Фил Ранжин
хотя норм
Ayrat
А по координатам ходить по как по ключу в словарь
Фил Ранжин
берём мап, фолдим его, в качестве аккумулятора новый мап и лист с соседями
Фил Ранжин
что то такое
Фил Ранжин
зато логН
Ayrat
Если фолд атомарный, то я бы сделал локальную мутабельность, на выходе перекладывал в иммутабельную структуру
Ayrat
Просто нет смысла в иммутабельности для промежуточных вычислений
Фил Ранжин
Я, не являясь качественным F#пистом стараюсь избегать мутаций, что бы лучше понять, что и как следует делать
Фил Ранжин
а так да, этот алгоритм с локальными мутациями и быстрей и удобней
Фил Ранжин
так как быть с вэлью?
Фил Ранжин
мапы
Hog
В смысле?
Фил Ранжин
у меня мапа из "живых" клеток, у которой в качестве ключа координаты клетки
Фил Ранжин
а значение мне не нужно
Hog
Любое :)
Фил Ранжин
так не пойдёт
Hog
Например true
Фил Ранжин
я ж конфиг извне принимаю
Фил Ранжин
и чё вот пользователь моего кода, он такой - ага, фн принимает мапу с ключами-координатами. Хм, а что там за значения?
Фил Ранжин
надо, ебать, принимать лист значит, и ложить его в мапу
Фил Ранжин
что тоже кстати не очень то катит, так я могу смутить пользователяя кода в смысле порядка вычисления
Фил Ранжин
да и лишняя операция
Фил Ранжин
И не ебем мозг себе. Окружающим можно
кажется у меня не выходит
Hog
Тогда принимаешь #seq<int * int>
Hog
И внутри хоть на изнанку его ыыворачивай
Фил Ранжин
в C# вроде есть специальный хешсет, который без значений