Pull to refresh
1
0
Send message

За один проход

Reading time 7 min
Views 154K
Среди задач по программированию часто попадаются такие: дана последовательность однотипных элементов (обычно это числа), требуется за один проход по ней найти какую-нибудь характеристику (среднее квадратическое отклонение, количество минимальных элементов, непрерывный участок с наибольшей суммой...) Дополнительное ограничение — последовательность может быть очень длинной, и в память не поместится. Других ограничений на элементы последовательности, обычно, не накладывается.
С этими задачами всё, более или менее, понятно: нужно найти то, что на мехмате МГУ называют «индуктивным расширением» искомой функции, и реализовать её вычисление. Если найти не удалось (требуемый объём памяти слишком велик), то задача не решается.
Но попадаются и другие задачи. В них есть дополнительные ограничения на элементы последовательности в совокупности, и эти ограничения приходится существенно использовать для решения (и проверять их не надо). Простейшая такая задача выглядит так:

Задача 1. В последовательности записаны целые числа от 1 до N в произвольном порядке, но одно из чисел пропущено (остальные встречаются ровно по одному разу). N заранее неизвестно. Определить пропущенное число

Решение очевидно: просматриваем числа, находим их количество K и сумму S. По условию, N=K+1, значит, сумма чисел от 1 до N будет равна (K+1)*(K+2)/2, и пропущенное число равно (K+1)*(K+2)/2-S. Если вы почему-то боитесь переполнений, то работайте с беззнаковыми числами (там переполнения не страшны — но будьте осторожны при вычислении (K+1)*(K+2)/2 :) ), или вместо суммы ищите XOR всех чисел.
Другие задачи
Total votes 73: ↑72 and ↓1 +71
Comments 56

Как в условиях недостатка данных улучшить качества классификатора

Reading time 10 min
Views 2.5K

Одна из основных проблем человека, который занимается машинным обучением - данные. Исследователи сталкиваются с плохим качеством данных и/или их отсутствием. Рассмотрим способы улучшение метрик классификатора в условиях малого количества признаков.

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

Читать далее
Total votes 4: ↑3 and ↓1 +2
Comments 2

Как работать на российскую компанию после релокейта и ничего не нарушить

Reading time 6 min
Views 33K

По разным данным в СМИ, за март из России уехало от 50 до 100 тысяч айтишников и ещё столько же планируют переезд в апреле. Многие из них уже работали на зарубежных работодателей, кто-то переезжал вместе с компанией. Но многи и тех, кто продолжает трудиться на российские компании из-за границы.

В этой статье мы постарались собрать всё самое важное, что надо знать работнику о трудовых отношениях и какие риски учитывать в последнем случае. Ведь с одной стороны, вроде бы можно удалённо работать по ТК, а с другой — вроде бы и нет.

Давайте разбираться
Total votes 45: ↑40 and ↓5 +35
Comments 36

Никогда не используйте пикселизацию для сокрытия текста

Reading time 9 min
Views 27K
image

Наша компания пишем много отчётов (такое бывает, когда вы занимаетесь хакингом). При этом часто требуется скрывать часть текста. У нас уже давно действует политика, по которой при сокрытии текста для надёжности следует использовать только чёрные полосы. Иногда люди хотят проявить себя используют такие методики удаления данных, как размытие, искажение или пикселизация. Но это ошибка.

Сегодня мы рассмотрим одну из таких методик — пикселизацию, и покажем, почему это плохой, небезопасный, гарантированный способ обеспечения утечки данных. Чтобы продемонстрировать, как это происходит, я написал инструмент под названием Unredacter. Он получает отредактированный пикселизированный текст и возвращает его в исходный вид. В реальном мире люди часто используют пикселизацию, но тыкать пальцем мы сейчас ни в кого не будем.
Читать дальше →
Total votes 84: ↑83 and ↓1 +82
Comments 41

Kaggle titanic dataset. Анализ данных с помощью SQL запросов

Reading time 28 min
Views 11K

Не смотря на то, что Python был бы предпочтительным инструментом для исследовательского анализа, я хотел посмотреть, смогу ли я провести весь исследовательский анализ с помощью SQL-запросов. Моя цель - показать, насколько сильно может помочь SQL для рабочего процесса.

Хотя SQL имеет ограничения с визуализацией данных, всё равно, можно получить больше выгоды, быстро написав запросы и выведя результаты.

Читать далее
Total votes 5: ↑5 and ↓0 +5
Comments 0

Как выжить после крушения?

Reading time 11 min
Views 30K
(www.goodfon.ru, Автор: Juliannaa)

Кораблекрушение, авиакатастрофа… Этот сюжет многократно обыгран во множестве разнообразных фильмов, игр и массовой культуре. Хотя большинство людей, так или иначе, слышали о подобном, но не имели к этому отношения (к счастью). В этой статье мы попробуем обсудить, как выжить современному человеку, в случае крушения, в безлюдном месте, а также дать знать о своей ситуации с помощью разных способов (в том числе, построив «радиопередатчик из ничего»).
Читать дальше →
Total votes 88: ↑77 and ↓11 +66
Comments 122

Как я получил 4 оффера в FAANG в Европе или из Воронежа в Лондон

Reading time 16 min
Views 44K


Очередная история успеха после череды неудач. Расскажу, чего мне стоило получить офферы от Facebook*, Google, Amazon, JP Morgan в Европе, как я готовился, сколько собесов зафейлил перед тем, как удача повернулась ко мне правильной стороной.


TL;DR. Послал сотни резюме. Прорешал около 100 задач на Leetcode. Прочел книжку по архитектуре (не той, которая про дома, а той, которая system design). Прошел 9 интервью. Получил 4 оффера. Принял 1. Жил, пока что, не очень долго, но, вполне себе, счастливо в Лондоне.
Читать дальше →
Total votes 69: ↑59 and ↓10 +49
Comments 65

Вопросы к собеседованию Java-backend, Java core (60 вопросов)

Reading time 17 min
Views 241K
image

Добрый день! Представляю вашему вниманию список вопросов к собеседованию Java Backend, которые я оформлял на протяжении около 2х лет.

Вопросы разбиты по темам: core, collections, concurrency, io, exceptions, которые задают основные направления хода технического собеседования. Звездочками отмечен субъективный (с точки зрения автора) уровень сложности вопроса, в сноске спойлера — краткий ответ на вопрос. Ответ представляет для интервьювера правильное направления развития мысли кандидата.
Читать далее
Total votes 31: ↑23 and ↓8 +15
Comments 76

Ломаем Android. Как глубока кроличья нора?

Reading time 22 min
Views 109K

image


Мой первый Android телефон Galaxy Note N7000 был приобретен сразу после анонса в октябре 2011 года. Благодаря одному немецкому умельцу под ником bauner, у меня была возможность использовать последнюю версию CyanogenMod (ныне LineageOS). До тех пор, пока полтора года назад телефон не умер от китайской автомобильной зарядки.


Замену искал долго и остановился на Kyocera (да, они и телефоны выпускают) KC-S701. Он отличается брутальным внешним видом и отсутствием сенсорных кнопок. О root доступе к телефону я тогда даже и не задумывался, полагая, что нынче каждый телефон тем или иным способом имеет возможность получения root. И найдется умелец, который сможет под него портировать CyanogenMod. Я ошибался.


За полтора года было выпущено всего одно обновление — фикс падения ядра от специально сформированного ping пакета. А Android KitKat уже год назад был не первой свежести. Root доступ на этот телефон так никто и не получил, и никакой информации о нем не было. Отмечу, что тоже самое железо используется в американской версии телефона Kyocera Brigadier E6782, в котором по-умолчанию активизирован режим fastboot и нет ограничения на запуск неподписанных ядер (именно запуск, а не прошивку, и только при использовании непропатченного bootloader'а, CVE-2014-4325) и присутствует возможность загружаться в эти режимы путём зажатия кнопок телефона. Стараниями Verizon (а может Kyocera?) версия Android на Brigadier была обновлена до Lollipop.


Итак, я решил разобраться с процессом получения root на Android самостоятельно.

Читать дальше →
Total votes 113: ↑110 and ↓3 +107
Comments 46

Как 20-летний паренёк фигачит по 12 часов каждый день уже больше года

Reading time 10 min
Views 65K
YouTube мне предложил посмотреть видос какого-то азиатского паренька и я согласился, потому что в названии фигурировало «как я фигачил по 12 часов в день в течение года».

Паренек рассказывал про книжки, которые он прочитал, про свои мечты, всплакнул даже. А потом я зашел на его канал и увидел это:

image

И так каждый день с марта 2020 года.

У паренька ЭЛТ-монитор, прикольный рыжий кот, парень стримит каждый день, как он учится на ИТишника (и своим усердием мотивирует других) по 10 часовых помодорок с 10-минутными перерывами между ними.

Я решил немного разобраться, что же это за паренек и что им движет.
Total votes 69: ↑33 and ↓36 -3
Comments 139

Создание и балансировка инвестиционного портфеля с помощью ML

Reading time 12 min
Views 23K

В прошлой статье я писал про свои ML-модели для оценки отдельных компаний, но вопрос формирования итогового портфеля совсем не затрагивал. В этом посте хочу рассказать о том, как я собираю свой личный портфель, а так же поделиться сайтом, на котором реализую весь описанный в статье функционал http://stocks.ml. Дисклеймер: у автора нет экономического образования и все выводы и суждения в статье делаются на основе житейского опыта и здравого смысла.

Читать далее
Total votes 23: ↑21 and ↓2 +19
Comments 21

Легализация удаленки на зарубежную компанию без бухгалтера. Step by step guide 2021

Reading time 7 min
Views 10K

Преимущества удаленной работы на зарубежного заказчика с получением выплат в валюте очевидны, но после заветного офера встает вопрос об оформлении. Многим зарубежным компаниям, не имеющим представительства в России, не выгодно оформлять сотрудника, находящегося в другой стране, в штат из-за дополнительного налогообложения, юридических сложностей и проч. Гораздо выгоднее (причем для обеих сторон) взаимодействовать с заказчиком как ИП (индивидуальный предприниматель). Ниже я на своем примере опишу все шаги от открытия ИП до вывода средств на счет физического лица, не переключайтесь.

Читать далее
Total votes 7: ↑7 and ↓0 +7
Comments 29

Как AutoML помогает создавать модели композитного ИИ — говорим о структурном обучении и фреймворке FEDOT

Reading time 9 min
Views 7.7K

image


В лаборатории моделирования природных систем НЦКР ИТМО мы занимаемся разработкой и продвижением решений в области AutoML. Наши научные сотрудники Николай Никитин, Анна Калюжная, Павел Вычужанин и Илья Ревин рассказывают о трендах и задачах AutoML, плюс — о собственных open-source разработках в этой области.

Total votes 6: ↑6 and ↓0 +6
Comments 0

Мир статистических гипотез

Reading time 5 min
Views 23K

В современном мире мы обладаем все большим и большим объемом данных о событиях, происходящих вокруг. Зачастую у нас появляются вопросы, на которые хотелось бы быстро ответить на основе имеющейся информации, для этого как нельзя лучше подходит процесс, связанный с проверкой статистических гипотез. Однако, многие считают, что это занятие подразумевает под собой большое число вычислений и в принципе довольно сложно для понимания. На самом деле, алгоритм проверки гипотез достаточно прост, а для осуществления расчетов с каждым годом появляется все больше и больше готовых инструментальных средств, не требующих от человека глубоких познаний в области. Далее я попытаюсь показать, что мало того, что процесс проверки гипотез может быть полезным, так и осуществляется достаточно быстро и без серьезных усилий.

Читать далее
Total votes 12: ↑10 and ↓2 +8
Comments 1

Погружаемся в статистику вместе с Python. Часть 1. Z-статистика и p-value

Reading time 19 min
Views 45K

Не знаю как вам, а мне статистика далась очень не просто. Причем "далась" - это еще громко сказано. Да, оказалось что можно довольно долго ехать на методичках, кое как вникая в смысл четырехэтажных формул, а иногда даже не понимая результатов, но все равно ехать. Ехать и не получать никакого удовольствия - вроде бы все понятно, но ощущение, что ты "не совсем в теме" все никак не покидает. Какое-то время пытался читать книги по R и не то что бы совсем безрезультатно, но и не "огонь". Нашел наикрутейшую книгу "Статистика для всех" Сары Бослаф, прочитал... все равно остались какие-то нюансы смысл которых так и не понятен до конца.

В общем, как вы догадались - эта статья из серии "Пробую объяснить на пальцах, что бы самому разобраться." Так что если вы неравнодушны к статистике, то прошу под кат.

Начать погружение
Total votes 8: ↑8 and ↓0 +8
Comments 6

Понимаем красно-черное дерево. Часть 1. Введение

Reading time 5 min
Views 41K

Довольно долгое время я воевал с красно-черным деревом. Вся информация, которую я находил, была в духе "листья и корень дерева всегда черные, ПОТОМУ ЧТО", "топ 5 свойств красно-черного дерева" или "3 случая при балансировке и 12 случаев при удалении ноды". Такой расклад меня не устраивал.

Мне не хотелось заучивать свойства дерева, псевдокод и варианты балансировки, я хотел знать: почему. Каким образом цвета помогают при балансировке? Почему у красной ноды не может быть красного потомка? Почему глубину дерева измеряют "черной высотой"?

Ответы на эти вопросы я получил только тогда, когда мне дали ссылку на лекцию про два-три дерево, с которого мы и начнем.

Эта статья разделена на 3 логические части. Я рекомендую прочитать их в указанном порядке. Первая часть (данная) будет направлена на введение в кчд и знакомство с ним. Во второй части мы поговорим о балансировке и вставке в кчд. В третьей, завершающей, части мы разберем процесс удаления ноды. Наберитесь терпения и приятного чтения.

Читать далее
Total votes 32: ↑31 and ↓1 +30
Comments 6

Как найти удаленную работу в зарубежной компании. 10 шагов

Reading time 10 min
Views 58K


Каждый год Оксфордский словарь английского языка выбирает «Слово года». Но в 2020-м что-то пошло не так. Издательство Оксфордского университета описало 2020-й как «год, который лишил нас дара речи», и сказало, что к нему невозможно подобрать правильное слово.


Но на наш взгляд, такое слово всё-таки есть. С прошлого марта в мире резко возросло использование слова «удаленно». Большинство предприятий отошли от традиционной модели офисной работы и стали пытаться организовать труд сотрудников из дома. Для разработчиков из СНГ это прекрасная возможность начать работу в лучших мировых компаниях. Зарплаты за рубежом выше, а возможностей сейчас стало больше, чем когда-либо прежде.


Мы постоянно исследуем рынок. Публикуем сотни вакансий ежедневно. И сейчас 40% выручки получаем от иностранных компаний, которые в основном нанимают программистов для удаленной работы.


Вот несколько наблюдений о том, как разработчику найти удаленную работу в 2021 году. И большой список ресурсов, которые могут помочь вам получить хорошую должность.

Читать дальше →
Total votes 32: ↑30 and ↓2 +28
Comments 16

Оценка рыночного риска (Value at Risk) портфеля облигаций (теория)

Reading time 15 min
Views 14K

Достаточно много работ написано на тему вычисления такого показателя, как $VaR$ (Value at Risk), в том числе и различные статьи в интернете. Однако, честно признаться, действительно качественных из них оказалось мало. Да и работ, посвященных оценке $VaR$ инструментов, отличных от акций, тоже немного. Те, кто хочет разобраться с тем, что же это такое и какая математическая модель стоит за вычислением $VaR$ портфеля облигаций, прошу под кат.

Читать дальше →
Total votes 2: ↑2 and ↓0 +2
Comments 8

Ещё один поиск Вк по фото

Reading time 7 min
Views 49K

Я люблю ввязываться в авантюры, и за последний месяц об одной из них я пару раз рассказывал друзьям, что вызывало восторг, поэтому решил поделиться с хабравчанами! Эта история про отважные пет-проекты, мощь опен-сорса и саморазвитие, а также основные технические детали. Надеюсь, вас это вдохновит.

Вдохновиться
Total votes 29: ↑28 and ↓1 +27
Comments 20

Рейтинг лучших настольных 3D-принтеров 2021 года

Reading time 34 min
Views 135K

Весной прошлого года мы выпустили свой первый рейтинг лучших 3D-принтеров, основанный на данных ведущих американских порталов All3DP и 3DSourced. Он был размещен у нас, а также на сайтах партнеров, и имел огромный успех у читателей. Учитывая неослабевающий интерес к теме, мы решили сделать это традицией, и наш первый в этом году рейтинг составили на основе нашего экспертного мнения и реалий российского рынка, который имеют ряд отличий от американского по популярности и представленности оборудования. К примеру, российские производители неизвестны американским изданиям и, соответственно, не попадают в их рейтинги, так же как и в наши, аналогичным образом, не попадают некоторые американские и европейские. Тем не менее, мы будем использовать текущие рейтинги американских изданий как отправную точку и приведем ряд их оценок по моделям, которые являются одинаково популярными во всех странах.

Мы разбили рейтинг на подгруппы, чтобы не сравнивать синее с горячим, а зеленое с большим, а основными критериями для включения в список лучших для нас стали: качество принтера (конструкция, комплектующие), качество печати (подача материала, обдув, материал площадки), технические характеристики (область построения, электроника, материал исполнения), дополнительные функции (автокалибровка, датчики окончания филамента, дисплеи и т.п.), объем продаж в России (в рейтинг попали только популярные модели), ну и конечно, цена.

Читать далее
Total votes 22: ↑17 and ↓5 +12
Comments 39

Information

Rating
Does not participate
Registered
Activity