Как стать автором
Обновить
1
0

Пользователь

Отправить сообщение

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

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

Задача 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 всех чисел.
Другие задачи
Всего голосов 73: ↑72 и ↓1+71
Комментарии56

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

Время на прочтение10 мин
Количество просмотров2.7K

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

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

Читать далее
Всего голосов 2: ↑1 и ↓1+2
Комментарии2

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

Время на прочтение6 мин
Количество просмотров34K

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

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

Давайте разбираться
Всего голосов 38: ↑33 и ↓5+35
Комментарии36

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

Время на прочтение9 мин
Количество просмотров28K
image

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

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

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

Время на прочтение28 мин
Количество просмотров12K

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

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

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии0

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

Время на прочтение11 мин
Количество просмотров30K
(www.goodfon.ru, Автор: Juliannaa)

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

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

Время на прочтение16 мин
Количество просмотров44K


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


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

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

Время на прочтение17 мин
Количество просмотров247K
image

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

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

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

Время на прочтение22 мин
Количество просмотров110K

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 самостоятельно.

Читать дальше →
Всего голосов 113: ↑110 и ↓3+107
Комментарии46

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

Время на прочтение10 мин
Количество просмотров67K
YouTube мне предложил посмотреть видос какого-то азиатского паренька и я согласился, потому что в названии фигурировало «как я фигачил по 12 часов в день в течение года».

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

image

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

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

Я решил немного разобраться, что же это за паренек и что им движет.
Всего голосов 63: ↑27 и ↓36-3
Комментарии139

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

Время на прочтение12 мин
Количество просмотров23K

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

Читать далее
Всего голосов 19: ↑17 и ↓2+19
Комментарии21

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

Время на прочтение7 мин
Количество просмотров11K

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

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии29

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

Время на прочтение9 мин
Количество просмотров8.4K

image


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

Всего голосов 6: ↑6 и ↓0+6
Комментарии0

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

Время на прочтение5 мин
Количество просмотров25K

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

Читать далее
Всего голосов 9: ↑7 и ↓2+8
Комментарии1

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

Время на прочтение19 мин
Количество просмотров48K

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

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

Начать погружение
Всего голосов 8: ↑8 и ↓0+8
Комментарии6

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

Время на прочтение5 мин
Количество просмотров44K

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

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

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

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

Читать далее
Всего голосов 25: ↑24 и ↓1+30
Комментарии6

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

Время на прочтение10 мин
Количество просмотров62K


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


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


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


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

Читать дальше →
Всего голосов 26: ↑24 и ↓2+28
Комментарии16

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

Время на прочтение15 мин
Количество просмотров16K

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

Читать дальше →
Всего голосов 2: ↑2 и ↓0+2
Комментарии8

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

Время на прочтение7 мин
Количество просмотров50K

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

Вдохновиться
Всего голосов 22: ↑21 и ↓1+27
Комментарии20

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

Время на прочтение34 мин
Количество просмотров135K

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

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

Читать далее
Всего голосов 16: ↑11 и ↓5+12
Комментарии39

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность