А как вы справляетесь с тем, что под одним названием композиции вк может выдать от версии с другого альбома (что не супер критично) до какого-нибудь ремикса, который вообще может не очень напоминать оригинал?
Пока не очень-то быстро работает. Секунд 20-30 ей потребовалось, чтобы расположить меня прямо на Александрийском столпе. Или точность геолокации большего не подразумевает? Если что, город определён правильно.
Введение про множества прикольно написано. Вполне подойдёт для детей.
Из замечаний: разность обозначается чертой с противоположным наклоном, как у бекслеша \.
Ещё я бы не стал отождествлять разность с дополнением. Обычно говорят о дополнении, когда есть какое-то универсальное множество элементов, но известно, что все рассматриваемые множества содержатся в некотором его фиксированном подмножестве A (которое может совпадать с универсальным множеством). И тогда говорят, что дополнение некоторого множества B (обозначают B с чертой сверху) это множество тех элементов, которые лежат в A, но не в B (можно уточнять: дополнение B относительно A). Отличие записи A\B в том, что не предполагается, что B лежит в A.
Открытое множество — такое множество, каждый элемент которого имеет некоторую окрестность.
Поправьте, пожалуйста. Любой элемент имеет некоторую окрестность, например всё топологическое пространство. Здесь надо уточнить, что окрестность должна лежать в данном открытом множестве.
Не встречал вроде, чтобы окрестностям (без явного указания) разрешали быть замкнутыми, однако (при условии, что она должна содержать открытое множество, содержащее точку) такое определение не должно как правило приводить к проблемам. А поскольку оно сложнее и не меняет сути, в таких заметках для начинающих лучше не парить людям мозги и требовать открытости.
Я думаю, тот факт, что структуру можно использовать для других задач, сам по себе не означает, что её не надо использовать для наших. Map<K,V> можно реализовать как минимум десятком существенно разных способов и красно-чёрные деревья с хэшами выбраны явно не как минимально удовлетворяющие требованиям. Но в целом я придираюсь, конечно.
3. Были упомянуты AVL-деревья, некоторые реализации которых, на сколько я знаю, работают за амортизированное время. Кроме того, бывают и другие деревья. Декартово, например. Там время работы такое в среднем. Правда, я не знаю, применяются ли они как стандарт в каких-нибудь языках.
Вы в статье применяете Amort. в двух разных смыслах. Действие работает за амортизированное время O(f(n)), если при выполнении его N раз будет выполнено O(N f(n)) операций. В частности, у Вас написаны правильные оценки для добавления в вектор и для AVL-дерева. Для хэша можно считать, что время операции в среднем O(1). Это означает, что, если входные данные удовлетворяют некоторому распределению, то математическое ожидание количества выполненых операций будет O(1). Для хэша, правда, это свойство ещё надо доказать, но что такое Amort.O(1)/O(N) вообще не понятно, довольно бесполезная оценка.
Кстати, ресайз в два раза как в сторону увеличения, так и уменьшения, можно сделать за O(n) вместо полного перестроения таблицы. Соответственно, сливая по две соседние строки, или записывая элементы каждой строки поочерёдно в две соседние.
Тем не менее, задача университета в том, чтобы дать фундаментальное образование.
А специалистов в узких областях вполне может готовить сам рынок, который в них заинтересован, вместо того, чтобы склонять к этому университеты, чей интерес здесь заключается только в финансовой составляющей.
Умора. Чейбышев. Это ж надо.
Гражданин математик, прекратите монолог, состоящий из изложения элементарных фактов. Из википедии желающий найдёт всё перечисленное, а так же как пишется фамилия этого учёного.
Готов поспорить, что если убрать проверку на делимость на 5, станет только быстрее. А вот если правильным образом перебирать остатки при делении на 2 * 3 или 2 * 3 * 5, то должно ещё прирасти.
И ещё: обычно заводят внутри временную переменную, инициализируюмую как i и при нахождении делителя делят её сколько возможно на этот делитель. Тем самым, корень достигается быстрее.
2) Если max-value константа, то O(max-value + n) = O(n)
Так что странное возражение.
Из замечаний: разность обозначается чертой с противоположным наклоном, как у бекслеша \.
Ещё я бы не стал отождествлять разность с дополнением. Обычно говорят о дополнении, когда есть какое-то универсальное множество элементов, но известно, что все рассматриваемые множества содержатся в некотором его фиксированном подмножестве A (которое может совпадать с универсальным множеством). И тогда говорят, что дополнение некоторого множества B (обозначают B с чертой сверху) это множество тех элементов, которые лежат в A, но не в B (можно уточнять: дополнение B относительно A). Отличие записи A\B в том, что не предполагается, что B лежит в A.
Поправьте, пожалуйста. Любой элемент имеет некоторую окрестность, например всё топологическое пространство. Здесь надо уточнить, что окрестность должна лежать в данном открытом множестве.
Не встречал вроде, чтобы окрестностям (без явного указания) разрешали быть замкнутыми, однако (при условии, что она должна содержать открытое множество, содержащее точку) такое определение не должно как правило приводить к проблемам. А поскольку оно сложнее и не меняет сути, в таких заметках для начинающих лучше не парить людям мозги и требовать открытости.
А специалистов в узких областях вполне может готовить сам рынок, который в них заинтересован, вместо того, чтобы склонять к этому университеты, чей интерес здесь заключается только в финансовой составляющей.
Вцелом по т.ч. вы, наверное, правы.
Гражданин математик, прекратите монолог, состоящий из изложения элементарных фактов. Из википедии желающий найдёт всё перечисленное, а так же как пишется фамилия этого учёного.
И ещё: обычно заводят внутри временную переменную, инициализируюмую как i и при нахождении делителя делят её сколько возможно на этот делитель. Тем самым, корень достигается быстрее.