LoliDeveloper, Нет. Отображение A->B сопоставляет каждому элементу A - один элемент B. Не подмножество, а всегда ровно один элемент.
Неинъективная функция X->Y значит, что разным X может соответствовать одинаковый Y. И это нормально (представьте параболу). Но это все-равно не позволяет иметь разные Y для одного X (это ближе к тому, что отображение Y->X, если оно есть - неинъективно)
Чтобы у вас одному X могли соответствовать много Y, вам надо определять ваше отображение как X->2^Y. Как тут вводить непрерывность уже не совсем понятно. И тем более непонтяно, как на подмножестве Y применять теорему о непрерывной функции. Вам нужно число, надо както взять x-y, но какой y из всех вариантов брать? Это все, конечно, можно формализовать, но вы замучаетесь.
Лучше возьмите определение непрерывной кривой и пляшите от него.
LoliDeveloper, Вот вам и надо доказать. что для каких-то двух точек из разных полуплоскостей любая соединяющая их непрерывная кривая проходит через запрещенное множество x=y.
Вроде очевидно - раз на одном конце у кривой x-y > 0, на другом конце x-y < 0, и она непрерывна, то где-то будет ноль. Но как это доказать формально? Вот можно воспользоватся теоремой о промежуточном значении непрерывной функции. Для этого надо кривую переделать в функцию. Например, можно ее параметризовать от 0 до 1 и вот и вылезает непрерывная функция f:[0,1]->R^2, которую можно пределать в [0,1]->R навесив на нее сверху x-y.
Ваша попытка ввести функцию f:X->Y похожа на это, но недостаточно формальна и покрывает не все непрерывные кривые. Потому что кивая может проходить через один и тот же X много раз. А для доказательства несуществования вам надо показать, что абсолютно все кривые невозможны.
Не совсем. Делать быстро, дешево и некачественно можно только маленькие проекты. По мере роста и развития это самое "некачественно" вылевается в дикий технический долг, который сильно тормозит дальнейшее развитие. В итоге получается долго, дорого и не качественно.
Искать подстроки регекспом - очень плохая идея. Если текст - куча букв "a", а шаблон "aa...ab", то регексп будет работать за квадрат. Для большого текста и шаблона это будет очень тормозить.
К сожалению, встроенный в питон find имеет ту же проблему. Хоть и работает в пару раз быстрее.
Лучше использовать какой-нибудь PySubstringSearch.
eegmak еще комментарии: персистентные структуры легче реализовавать в функциональных языках, потому что там все персистентное по сути.
Если все запросы можно обработать вместе одной кучей, то просто добавьте их на прямую вместе с отрезками, отсортируйте и найдите все ответы при проходе сканирующей прямой.
Зависит от частоты операций. Как часто меняются отрезки, если меняются вообще. Как много ожидается элементов в списке, сколько в каждом элементе может быть отрезков? Какие ограничения на "целые числа" - границы отрезков и запросы.
Когда вы ответите на эти вопросы, можно будет выбрать оптимальный алгоритм. Можно поддерживать отрезки упорядоченными в каждом элементе списка и искать бинпоиском, можно все отрезки всех элементов сложить в двумерную структуру данных и искать что-то уже там. Можно вместо сортировки и бинпоиска использовать BST (map какой-нибудь - даже не знаю, что там в стандартной библиотеке есть в kotlin). Или вообще предподсчитать ответы для всех различных запросов. Вариантов куча.
Непонятно с какой стороны вам нужен нулевой бит. Допустим байт 13 = 00001101(2). Какой из нулевых бит вам нужен - левый (*0001101) или правый (000011*1). Какой у него номер?