Рубрика «задачи для программистов»

Моё внимание привлекли работы американского художника Энди Боча (Andy Bauch) в виде картин из блоков Lego. В них, по заявлению автора, зашифрованы приватных ключи к кошелькам разных криптовалют, в том числе и биткоина. Стоимость активов и адреса кошельков находятся на странице newmoney.andybauch.com

Вызов принят

Для примера возьмём наиболее наглядную картину Bitcoin Initially Valued at $60.

Как взломать картину и (не) получить BTC - 1

В ней зашифрован приватный ключ к адресу 1HvEJG5JR84MVpncXcDVBqx65uY5odr6fP на котором находилось ~0.14 биткоина (~$1200).
Читать полностью »

Две недели назад мы были на Java-конференции в Питере — Joker 2017. Уже традиционно пришли туда не с пустыми руками, а с веселыми и сложными задачами, над которыми можно посмеяться и/или поломать голову. Спасибо всем, кто в эти два дня решал задачи, задавал вопросы и предлагал свои оригинальные решения. Поздравляем победителей!

Все задачи верно решили целых три человека:

— Рюрик Крылов (который к тому же сдал корешок из буклета с верными ответами самым первым)
— Евгений Крутень
— Василий Бригинец

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

Тройка, семерка, джокер — разбор решения задач из буклета GridGain на конференции Joker 2017 - 1
Читать полностью »

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

Блиц. Как попасть в Яндекс, минуя первое собеседование - 1

Для Блица мы выбрали исключительно алгоритмические задачи. Хотя для оценки раундов и применяется система ACM, в отличие от спортивного программирования все задания максимально приближены к тем, которые постоянно решают в продакшене Поиска. Те, кто решит успешно хотя бы четыре задачи из шести, могут считать, что прошли первый этап отбора в Яндекс. Почему алгоритмы? В процессе работы часто меняются задачи, проекты, языки программирования, платформы — те, кто владеет алгоритмами, всегда смогут перестроиться и быстро научиться новому. Типичная задача на собеседовании — составить алгоритм, доказать его корректность, предложить пути оптимизации.

Квалификацию можно пройти с 18 по 24 сентября включительно. В этом раунде вам нужно будет написать программы для решения шести задач. Можете использовать Java, C++, C# или Python. На всё про всё у вас будет четыре часа. В решающем раунде будут соревноваться те, кто справится как минимум с четырьмя квалификационными задачами. Финал пройдёт одновременно для всех участников — 30 сентября, с 12:00 до 16:00 по московскому времени. Итоги будут подведены 4 октября. Чтобы всем желающим было понятно, с чем они столкнутся на Блице, мы решили разобрать пару похожих задач на Хабре.

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

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

Яндекс.Блиц. Почему и какие алгоритмические задачи нужно уметь решать, работая в поиске - 1

Для Блица мы выбрали исключительно алгоритмические задачи. Хотя для оценки раундов и применяется система ACM, в отличие от спортивного программирования все задания максимально приближены к тем, которые постоянно решают в продакшене Поиска. Те, кто решит успешно хотя бы четыре задачи из шести, могут считать, что прошли первый этап отбора в Яндекс. Почему алгоритмы? В процессе работы часто меняются задачи, проекты, языки программирования, платформы — те, кто владеет алгоритмами, всегда смогут перестроиться и быстро научиться новому. Типичная задача на собеседовании — составить алгоритм, доказать его корректность, предложить пути оптимизации.

Квалификацию можно пройти с 18 по 24 сентября включительно. В этом раунде вам нужно будет написать программы для решения шести задач. Можете использовать Java, C++, C# или Python. На всё про всё у вас будет четыре часа. В решающем раунде будут соревноваться те, кто справится как минимум с четырьмя квалификационными задачами. Финал пройдёт одновременно для всех участников — 30 сентября, с 12:00 до 16:00 по московскому времени. Итоги будут подведены 4 октября. Чтобы всем желающим было понятно, с чем они столкнутся на Блице, мы решили разобрать пару похожих задач на Хабре.

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

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

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

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

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

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

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

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

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

Для поступления предлагалось пройти несколько этапов, решая логические/математические задачи.
Варианты решения некоторых типовых задач первого этапа я и попытаюсь разобрать в данной статье.
PS: Для удобства быстрого написания и отладки кода подсчетов использовался JavaScript.

Пока писал статью, смотрю, в песочнице меня уже опередили по теме. Однако, у меня рассмотрены другие типы задач, только одна совпала про степени (но, судя по комментариям, не в обиду автору — решение неверное).
Читать полностью »

image

В августе этого года в Казани прошла Международная олимпиада по программированию для школьников — IOI 2016. Российская команда стала второй в общем зачете.

Один из серебряных медалистов, Денис Солонков из г. Мытищи, сделал разбор задачи «Обнаружение молекул», которая предлагалась участникам олимпиады.

Денис Солонков — многократный победитель Всероссийских олимпиад по программированию и Moscow CTF School, выпускник Школы программистов, ныне студент ВШЭ.Читать полностью »

После того, как вроде бы неплохой результат, полученный в предыдущей части, оказался лишь «локальным максимумом», я на некоторое время забросил задачку. Напомню условие:

«The decimal number 585 is 1001001001 in binary. It is palindromic in both bases. Find n-th palindromic number». Или, по-русски: «Десятичное число 585 в двоичной системе счисления выглядит как 1001001001. Оно является палиндромом в обеих системах счисления. Найдите n-й подобный палиндром».

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

В конце концов, алгоритм оказался не таким уж и сложным, зато, на мой взгляд, очень красивым.
Читать полностью »

Всем добрый день!
Сегодня мы опять решили организовать конкурс c розыгрышем призов.
Чтобы не было скучно мы решили задать вам несколько вопросов:
Призы такие: iPad air (16gb 3g), iPad mini, iPodShuffle.
Кроме того 10 утешительных призов – хостинг сертификаты на сумму 100 долларов от компании ServerClub.com
Мы хотим чтобы вы выиграли и если по ходу расследования возникнут трудности будем выкладывать подсказки :)
Читать полностью »