Рубрика «Занимательные задачки»

Я бы очень хотел быть программистом, но, к сожалению, я маркетолог, которого каким-то образом занесло в аспирантуру Луизианы грызть гранит науки эконометрики. Да, я неплохо знаю математику, потихоньку осваиваю R и даже весьма сносно умею прогнозировать временные ряды с помощью разнообразных ARIMA моделей. Тем не менее, программист из меня ну вообще никакой.

Но на моих часах 2:22 ночи, а значит пора переходить ближе к делу. Так сложилось, что я учился в лицее, из которого ну просто все получались программистами и/или крутыми айтишниками. Множество хорошо знакомых мне выпускников работает в крупных компаниях вроде Гугла, Фейсбука и Амазона, кто-то уверенно чувствует себя в локальных командах, кто-то запускает свои проекты, а кто-то, вроде viktor_sytnik побеждает в мировых командных соревнований по кибербезопасности.

То есть вот эта вот братия программистов постоянно окружает меня на протяжении всей моей сознательной жизни (спасибо им за это). А я, как назло, просто маркетолог. Маркетолог, которого никогда не перестает умилять отношение многих айтишников к маркетингу в любых его проявлениях.

Реклама в соцсетях? — Есть же АДБЛОК! СЕО? — Вы своим гавном весь интернет замусорили! Оффлайн реклама? — Да кто сейчас смотрит на эти ваши биллборды? Вот и прошлая статья о уязвимости ВК не обошлась без подобных комментариев.
image
А пока под катом вы будете решать задачку от Гугла, которую компания использовала в качестве нестандартной рекламной кампании для привлечения талантливых разработчиков в свои ряды, я постараюсь изменить ваше мнение о маркетинге.
Читать полностью »

Хочу поделиться опытом решения задачи по машинному обучению и анализу данных от Kaggle. Данная статья позиционируется как руководство для начинающих пользователей на примере не совсем простой задачи.Читать полностью »

Сегодня, в 18 часов по московскому времени, в американском Rapid City начнется финал самого престижного мирового соревнования для программистов – ACM ICPC. Приглашаем всех желающих увидеть это событие в прямом эфире (прямая трансляция начнется уже в 17 часов по Москве) и поддержать команду Университета ИТМО – одного из фаворитов чемпионата. О том, как команды со всего мира готовились к финалу, а также о прогнозах на победу расскажем ниже.

Финал чемпионата мира по спортивному программированию ACM ICPC: прямая трансляция - 1Читать полностью »

На этой неделе мы публикуем подборку из задач и вопросов, которые даёт на собеседованиях Uber. Задачи подобрали различного уровня сложности от «Easy» до «Hard», чтобы всем было интересно. Условие дано на английском языке.

Ответы, как и прошлый раз, опубликуем в течение недели. Круто, если вы будете писать в комментариях свои варианты решений )

Вопросы:

1. Какие KPI вы бы использовали, если бы запустили новый сервис Uber в определенной части мира и хотели знать, насколько он успешен?

2. Какой проект, над которым вы работали, провалился? Могли бы вы сделать что-нибудь, чтобы предотвратить его провал?
Читать полностью »

Троичный счётчик

Итак, продолжаем разговор. В этой статье я расскажу, как можно сделать троичный счётчик. Напоминаю, что я хочу сделать простейшую, но программируему железку, работающую на троичной логике. Ответ на вопрос «зачем?» смотреть тут.

Это уже третья статья, по мере готовности будет продолжение. Оглавление:

Как обычно, в моих статьях картинок больше, нежели текста. Вот так выглядит основная железка, о которой сегодня будет идти речь:
Считаем до трёх: три - 1

Читать полностью »

image Некоторое время назад в одном уютном камерном собрании я делал доклад о своей разработке — скриптовом лиспоподобном языке Liscript. Начал с азов — семантики вычисления списков, префиксной нотации… Дошел до произвольной арности стандартных операций:

+ 1 2 3
=> 6

— все интуитивно понятно, вопросов не возникает. Рассказываю про булевские значения, привожу пример

< 1 2
=> true

— тоже все понятно. И тут вопрос из зала: «а если 3 аргумента передать, как будет вычисляться?» Я решаю, что это хороший повод выпендриться умными терминами, и отвечаю: «точно так же — как свертка по моноиду» :) И тут же поправляясь — «хотя операция сравнения не является моноидом», пишу пример

< 1 2 3
=> true
< 1 2 3 4 1 2
=> false

Все так же интуитивно понятно, вопросов не возникает и продолжаем дальше (благоразумно оставляя без рассмотрения вычисления примитивных операций на одном аргументе и вообще при отсутствии оных, а также вычитание/деление и прочие немоноидальные операции :)). Успешно миновав в докладе подобных камней, через некоторое время я подумал — а можно ли как-то изловчиться, и все-таки сделать операцию сравнения моноидом (в каком-либо смысле)? И мне кажется, мне это удалось. Заинтересовавшихся темой прошу под кат.
Читать полностью »

Разработка симулятора эволюции одноклеточных организмов «The strongest survives» - 1

В данном посте я расскажу о своем опыте написания игры-симулятора эволюции одноклеточных организмов на прямоугольной плоскости. Кроме разработки алгоритмов симулятора, речь пойдет о проблемах с которыми я столкнулся при разработке данного проекта на C#, а также о его портировании для работы в браузере. В конце статьи будет ссылка на готовую к игре версию и на все исходники. Если я вас заинтересовал — прошу под кат.
Читать полностью »

Очередные Java-конференции JBreak и JPoint прошли на «ура». Здешние доклады всегда имеют резонанс, но многим запомнилось и кое-что ещё.

Буклет GridGain. Задачки про Грефа и Балмера, белорусского программиста с ведром картошки и, конечно, нетривиальное соблазнение тестировщицы Клавдии продолжают публиковать на различных ресурсах на радость автору, и многие уже даже не знают, каков их источник.

О нетривиальном соблазнении тестировщицы Клавдии: задачки из буклета GridGain c JBreak и JPoint - 1Читать полностью »

Простые числа Мерсенна и тест Люка-Лемера - 1

Перевод поста Джона Макги (John McGee) "Mersenne Primes and the Lucas–Lehmer Test".
Код, приведенный в статье, можно скачать здесь.
Выражаю огромную благодарность Полине Сологуб за помощь в переводе и подготовке публикации


Содержание

Введение.
Теорема множителей Эйлера и Мерсенна
Люка и Лемер
От ${M_{13}}$ до ${M_{20}}$
Совершенные числа
21-е, 22-е и 23-е числа Мерсенна
24-е, 25-е и 26-е числа Мерсенна.
27-е и 28-е числа Мерсенна
29-е число Мерсенна
30-е и 31-е числа Мерсенна
Великий интернет-поиск чисел Мерсенна
Факторизация чисел Мерсенна


Введение.

Простое число Мерсенна — простое число вида ${M_p}={2^p} - 1$ (значение степени р также должно быть простым). Эти простые числа получили свое название от имени французского математика и религиозного ученого Мерсенна, который и составил данный список простых чисел этой формы в первой половине семнадцатого века. Первые четыре из них были известны уже давно: ${M_2}=3$, ${M_3}=7$, ${M_5}=31$ и ${M_7}=127$.

Мерсенн утверждал, что значение ${2^p} - 1$ будет простым для простых чисел $p leqslant 257$, принадлежащих множеству $p in left{ {{text{2}}{text{,3}}{text{,5}}{text{,7}}{text{,13}}{text{,17}}{text{,19}}{text{,31}}{text{,67}}{text{,127}}{text{,257}}} right}$. Во всем ли он был прав, можно проверить с помощью функции Wolfram LanguagePrimeQ, в которой используются современные методы тестирования чисел на простоту, для которых не требуется поиска конкретного множителя, чтобы доказать, что число составное.
Читать полностью »

Введение

В мае далёкого 2015 года я заканчивал бакалавриат факультета общей и прикладной физики МФТИ. В основном я занимаюсь квантовой теорией поля, но в тот момент я решил, что хотелось бы больше вникнуть в современный мир компьютерных наук, что можно попробовать совместить МФТИ с ШАД Yandex (две магистратуры). ШАД тогда уже был у всех на слуху, вокруг только и твердили, какой там жёсткий курс алгоритмов, мне понравился сайт (лол), тематика курсов, и я решился поступать.

В этом посте я хотел бы рассказать о том, как происходило моё поступление в ШАД, рассказать своё решение экзаменационного варианта (разборов ШАДовских заданий на просторах рунета не очень-то много) и поговорить о том, что понравилось / не понравилось в этом замечательном заведении.
Читать полностью »