• Что почитать, чтобы привести знания в порядок?

    7workers
    @7workers
    1. перестанте вставлять смайлики через слово ;)
    2. откройте сайт с вакансиями, найдите то, что Вас устроит по ЗП и условиям.
    3. задавайте конкретные вопросы «посоветуйте хорошую литературу по теме ....»
    Ответ написан
    1 комментарий
  • А какие есть алгоритмы для поиска максимального скопления точек на плоскости?

    Mrrl
    @Mrrl
    Заводчик кардиганов
    Задача сия мне попадалась неоднократно. В разных размерностях (от 1 до 6, причем шестимерное пространство было совсем не декартовым — оно описывало перемещения трехмерного пространства) и с разным числом точек, но всегда без точной формулировки. Хорошего решения я, кажется, не написал ни разу, каждый раз махал рукой и шел другим путем. Но мысли остались следующие.
    1) без понятия «масштаб» задача не имеет смысла. То есть, прежде чем решать ее, надо задаться неким «размером окошка», «радиусом размытия точки», «шириной серой зоны» и т.п.
    2) чаще всего этот размер заранее неизвестен. Если взять его с запасом, то результат будет правдоподобен, но неточен а если размер окажется слишком маленьким, то наоборот, найдется локальное скопление среди пустоты. Лучше всего, наверное, выбрать убывающую последовательность r1>r2>r3>r4… (например, для окна 2000х2000 это моут быть степени двойки от 128 до 8), найти квадрат со стороной r1, содержащий максимальное количество точек, в нем — квадрат со стороной r2, и т.д. В этом случае наш результат будет правдоподобен во всем диапазоне масштабов.
    3) Искать границы квадратов с точностью до пикселя смысла нет. Если мы ищем квадрат NxN, то достаточно перебрать квадраты с шагом N/4 по каждой координате. Например, если мы ищем квадрат 128х128 на плоскости размером 2000х2000, то достаточно рассмотреть 3600 возможных положений этого квадрата (вершина имеет координаты от 0 до 1888 с шагом 32). Завести целочисленный массив такого размера. Каждая точка попадает в 16 квадратов (или меньше) — увеличить 16 ячеек на 1. Найти максимальную — она даст стартовый квадрат.
    После этого в этом квадрате перебрать 25 квадратов 64х64, в максимальном из них 25 квадратов 32х32 и т.д.
    Если r1 выбран слишком маленьким, а плоскость была слишком большой, то вместо массива (который был 60х60) можно воспользоваться каким-нибудь деревом (для экономии памяти и времени на инициализацию).
    Не исключено, что имеет смысл просмотреть не одну последовательность квадратов, а несколько (выбрать 10 квадратов размером r1 с наибольшим весом, из всех квадратов со стороной r2, лежащих в них — 10 наибольших и т.д.) Но это будет писать сложнее, а сработает оно только если скопление выражено нечетко, а где-то есть разреженная туманность. Впрочем, в этой ситуации надо сразу уменьшать r1.
    Ответ написан
    Комментировать
  • А какие есть алгоритмы для поиска максимального скопления точек на плоскости?

    Monnoroch
    @Monnoroch
    Кстати, если вам не нравятся графические эвристики — есть способ даже лучше.
    А именно посчитать мат. ожидание и дисперсию вашего списка точек. Это займет линейное время, а требуемой областью скорее всего будет круг с центром в мат. ожидании и радиусом в корень из дисперсии.
    Не уверен, что всегда сработает именно такая постановка — может оказаться слишком большой разброс, однако очевидным плюсом будет линейное время работы. А сложные штуки с ползающей рамкой можно применять как запасной метод на случай большой дисперсии.
    Ответ написан
    1 комментарий
  • Литературный СПАМ?

    @xredor
    Изменение коэффициентов в байесовых фильтрах детектотра спама
    Ответ написан
    2 комментария
  • Можно ли решить с помощью нейронной сети?

    mark_ablov
    @mark_ablov
    это называется Data Mining, думаю это поможет в поиске вариантов в гугле.
    Ответ написан
    Комментировать
  • Регулярные выражения: только первое найденное

    00 00 (\d{2})((\s\S{2})+?)\s03\w?
    +? — 1 or more, ungreedy

    Должно искать то что надо.
    Ответ написан
    6 комментариев