Pull to refresh
75
2.2
Илья @wataru

C++ разработчик.

Send message

Ограничение чисто математическое. Гораздо логичнее другая постановка той же задачи — найти фальшивую монету за наименьшее количество взвешиваний (в худшем случае). Путем не сложной логической цепочки можно додуматься, что меньше, чем за 3 взвешивания это сделать точно не получится (каждое взвешивание может дать 3 различных исхода. 2 взвешивание даст 9 различных исходов, чего не хватит для определения одной из 12 монет).

В статье как раз говориться, что по DMCA правоторговцы сами решают, можно ли делать плагин или нет. И никакая третья сторона не имеет право его делать.
Гипотетически, возможна ситуация, когда Гугл надавит на правообладателей, чтобы те не разрешали Мозилле выпускать такой плагин. Или никто не будет делать его для нового браузера. Или еще круче — правообладатели запретят свой DRM в браузерах, где есть адблоки.


edit: опечатки.

Да бросьте — всем же понятно, что не с наркотиками бороться эта мера нужна. В первую очередь с «экстремизмом» бороться будут. Блокировки не особо работают вот и хотят просто сайты закрывать.
Да даже если этим список и ограничится — ничего хорошего. Итак в понимании наших силовиков «экстремизм»=«любое инакомыслие».
Как печально, что налоговая не следит с таким же рвением за расходами наших дорогих чиновников.
Зарплатные ведомости за прошлый год, например. Не знаю, по идее. Мне казалось, что нет у граждан пока обязанности подтверждать все свои расходы в налоговой.
Есть еще вариант — человек живет с накоплений.
Да, забыл про эту штуку. Надо посмотреть, может оно меньше чем этот налог на тунеядство будет.
А что будут делать с теми же фрилансерами? Вот, оформлен человек как ИП, платит все налоги, какую-то прибыль имеет. Он — тунеядец? Если нет, то просто все устроятся ИП поголовно. Если да — то это уже слишком.

Да, автор эту деталь не описал, хотя в коде она присутствует.

А почему левая четырехугольная область тут считается внутри многоугольника? Чем она принципиально отличается от правой треугольной, которая помечена как снаружи? По методу луча она тоже будет снаружи.

Смотрите код внимательно. Полуинтервалы, открытые сверху. Не с начала или с конца, а сверху всегда. В первом примере с касанием угла левая грань не будет считаться пересечением, потому что касание идет по верхней точке отрезка, которая исключена. Правая грань так же не зачтется, ибо эта точка верхняя и для второй грани. Если бы касание было нижней точки многоугольника то было бы зачтено 2 пересечения. Точно так же и со вторым примером, там еще есть горизонтальная грань, которая игнорируется всегда.

Будет 1 пересечение. Горизонтальная грань будет проигнорирована вообще. Верхняя грань зачтется за 1 пересечение по вершине. Нижняя грань (внешняя) не будет учтена за пересечение, потому что она лежит на луче верхней точкой. Условие в алгоритме всегда игнорирует верхнюю точку любого отрезка или горизонтальные отрезки целиком.


Этот метод нормально учитывает и если граница полигона касается горизонтального луча сверху или снизу в вершине или по горизонтальному отрезку. В этом случае будет 0 или 2 пересечения, если касание снизу или сверху соответственно. Что и нужно для корректной четности.

Первый способ определения полигонов является более логичным. Иначе одно и то же множество точек будет описываться бесконечным количеством полигонов.

Это тоже правильный метод. Надо только аккуратно обрабатывать точку на грани или совпадающую с вершиной многоугольника. Его недостаток — скорость. Медленные тригонометрические функции и невозможность сделать целиком в целых числах.


Метод пересечения с лучом можно реализовать без деления вообще в целых числах, если координаты всех вершин целые.

Нет, не требует. Вы реализовали полностью правильный алгоритм. Грани соседствующие с горизонтальной на луче посчитаются 0, 1 или 2 раза в зависимости от из ориентации. У вас все отрезки закрыты снизу и открыты сверху, обратите внимание на строгие и нестрогие знаки: ((yp <= y and y < yp_prev) or (yp_prev <= y and y < yp)). Поэтому на картинке сверху будет одно пересечение, а если бы касание горизонтальной грани было сверху — то было бы 2 пересечения.

Чем построение выпуклой оболочки поможет определить вхождение точки в многоугольник?

Там же в комментариях приводят решение этой проблемы: https://habrahabr.ru/post/125356/#comment_4125696
Кстати, оно уже применено автором: "(yp <= y and y < yp_prev) or (yp_prev <= y and y < yp)". Все отрезки считаются открытыми сверху и закрытыми снизу. Поэтому пересечения с концами отрезков отрабатываются правильно — как 0, 1 или 2 пересечения с правильной четностью.

На 6:40 на втором видео начинаются какие-то съемки из космоса — это же рендер просто? Типа, как художник представляет себе, что там с ракетой в этот момент происходит?

Все равно, эти ревизоры можно отследить. Он же команды со специального сервера получает. Если есть коннект к контрольному серверу, то заворачиваем трафик на фильтр. Или еще хитрее — делаем простенькое DPI, через то же mitmproxy, к серверу и просто заменяем ответы на нужные соответственно черному списку.

Information

Rating
1,258-th
Location
Stockholm, Stockholms Län, Швеция
Registered
Activity