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

Занимательные задачки

Разминаем мозги

Сначала показывать
Порог рейтинга
Уровень сложности

Считаем уникальные IPv4 адреса

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

Как создавать быстрые и эффективные алгоритмы? В статье, на примере задачи по подсчёту уникальных IPv4 адресов, рассматриваются приёмы и методы обработки больших объёмов данных. Вы узнаете, как написать код, работающий в десятки раз быстрее и использующий в несколько десятков раз меньше памяти, чем "наивные" алгоритмы.

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

ВПР на максималках

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

Думаю многие, если не большинство, в курсе, что такое ВПР и его неоспоримая сила при поиске и объединении данных из разных таблиц. Те же, кто достиг просветления, используют не менее полезную функцию ИНДЕКС, чтобы не париться, где там идентификатор: слева или справа.

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

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

Достаточно ли вы умны для того, чтобы работать на Илона Маска?

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

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

Вы стоите на поверхности Земли. Затем вы начинаете идти: проходите один километр на юг, один на запад и один на север. В итоге вы оказываетесь в начальной точке. Где вы стоите?

Чаще всего кандидаты отвечают «на Северном полюсе», и это правильный ответ. Эта задачка очень старая – самое раннее её упоминание датируется аж 1821 годом. Однако, как утверждает Эшли Вэнс, биограф Маска, тот, получив такой ответ, задавал следующий вопрос: «Хорошо, а есть ли ещё такие точки?»
Читать дальше →
Всего голосов 60: ↑46 и ↓14+32
Комментарии173

Лёгкий способ решать задачи о стрелках часов

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

Однажды много лет назад один немолодой профессор задал мне задачку о перестановке стрелок часов. Точной формулировки за давностию лет я не помню, но поиск в интернете привёл меня к «Занимательной алгебре» Я. И. Перельмана, которая была впервые опубликована в 1933 году:


Возьмём положение стрелок в 12 часов. Если бы в этом положении большая и малая стрелки обменялись местами, они дали бы всё же правильные показания. Но в другие моменты, — например, в 6 часов, — взаимный обмен стрелок привёл бы к абсурду, к положению, какого на правильно идущих часах быть не может: минутная стрелка не может стоять на 6, когда часовая показывает 12. Возникает вопрос: когда и как часто стрелки часов занимают такие положения, что замена одной другою дает новое положение, тоже возможное на правильных часах?

Что любопытно, эта формулировка восходит к книге Александра Мошковского «Альберт Эйнштейн: беседы с Эйнштейном о теории относительности и общей системе мира», опубликованной в 1921 году на немецком языке, и уже в следующем году (!) переведённой на русский язык (и, судя по каталогу РГБ, с тех пор её и не переиздавали; доступен английский перевод).

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

Истории

Найти вероятность выпадения k (сумма выпавших значений) при бросании n кубиков (часть 1 из 2)

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

Решение задачи и пояснение алгоритма: Есть n стандартных игральных костей (6-ти гранных кубиков) со стандартным обозначением всех граней от 1 до 6. Бросаем все n кубики разом. Нужно найти вероятность выпадения числа k, а именно суммы всех значений, выпавших на этих кубиках

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

14 задач по Kotlin lists, которые заставят вас подумать

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

Привет Хабр! Меня зовут Леонид Иванькин, я ведущий Android-разработчик в МТС Digital, работаю над приложением Мой МТС. В этой статье – сложные и не очень задачи, чтобы проверить, насколько хорошо вы разбираетесь в операторах для списков. Готовы испытать свои скиллы? Тогда переходите под кат!

Пройти испытания
Всего голосов 18: ↑16 и ↓2+14
Комментарии15

Специальный календарь на 13 месяцев

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

Календари это давнее моё увлечение.

Тысячелетиями люди пользуются календарями. В разные времена и у разных народов календари были разными.

Календари обычно требовались для планирования сельхоз работ и проведения религиозных обрядов.

Календари основывались на каких-то природных периодических процессах. Лунный календарь имел в основе изменение вида Луны на небосводе. Солнечный календарь опирался на период обращения Земли вокруг Солнца – год. Год делили на промежутки в виде периода от новолуния до новолуния – месяц. Месяц делили на недели, а недели на дни. Получался лунно-солнечный календарь.

У шумеров недели не было. Месяц делили на дни.

У Майя в неделе было в одном календаре 13 дней, а месяцев в году восемнадцать. Это бытовой календарь. Был у Майя также религиозный календарь содержавший 260 дней, 20 месяцев и 13 дневных недель содержащих по 13 дней.

Не буду утомлять примерами календарей прошлого.

Постепенно официальным календарём в мире стал григорианский календарь, который всем хорошо известен. В этом календаре 365 – 366 дней, 12 месяцев, семидневная неделя. В России остался в употреблении и юлианский календарь (старый стиль), который применяется в церкви.

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

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

В наше время компьютерная техника позволяет создавать цифровые календари.

Читать далее
Всего голосов 15: ↑12 и ↓3+9
Комментарии28

Математическое решение задачи о матрице «змейкой»

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

Настоящая статья продолжает тему предыдущей работы (https://habr.com/ru/post/560266/)  и также посвящается особо извращенным способам заполнения двухмерных массивов согласно определенному шаблону. Создание громоздких, неуклюжих формул, без применения таких милых сердцу программиста конструкций как циклы и условия оказалось увлекательным занятием. В связи с этим, автор, уподобляясь некоторым государственным чинам (вспоминаем бородатую шутку про разницу между депутатом и программистом),  решил потратить кучу драгоценного времени на очередной интересный, но, увы, бесполезный в практическом плане проект. Речь идет о вычислении математическим путем элементов массивов, заполняемых змееподобной траекторией, или проще говоря – «тещиных» матриц.

Различают два класса этих самых матриц: обычные (злобные) и диагональные (крайне злобные).

Первый класс двухмерных массивов (здесь и далее речь идет только о квадратных матрицах) заполняется натуральными числами от 1 до N2 с левого верхнего угла построчно:

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

Считаем, сколько заплатить в магазине и проверяем поле морского боя: разбор задач для разработчиков C#, iOS и Android

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

Привет, Хабр! Я Ани, отвечаю в Ozon Tech за обучение.

Сегодня поводом для поста на столь многоуважаемую аудиторию стал разбор задач контеста, который прошёл в рамках отбора участников на курсы Route 256.

Контест нам заменяет скрининг — мы проверяем технические навыки и опыт работы будущих участников, так как курсы рассчитаны на мидлов.

Ранее мы публиковали разбор задач по направлениям Go и QA (раз, два), пришло время поделиться задачами для C#, iOS (Swift) и Android (Kotlin, Java).

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

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

Язык-головоломка Marthue

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

Предлагаю читателям Хабра "эзотерический" язык программирования, обобщающий нормальные алгоритмы Маркова (НАМ) и полусистемы Акселя Туэ (semi-Thue systems). В языке есть возможность интерактивного ввода и вывода, выбора поиска замены подстрок с начала, конца строки или случайным образом, условного рекурсивного вызова одного блока подстановок из другого, а также условного перехода между блоками. Это позволяет совмещать подстановку строк с элементами императивного и даже функционального программирования, а также исследовать недетерминированные алгоритмы.

Интерпретатор написан под Линуксом на языке Common Lisp, который я считаю одним из самых мощных и удобных, в том числе для экспериментальногого программирования. При желании большого труда не составит переписать его на любом популярном языке: например, сделать онлайновую версию в Javascript. Просто для запуска программ Лисп знать практически не нужно: достаточно инсталлировать любую версию Common Lisp и ввести нужный файл парой простых функций. Скачать репозиторий интерпретатора Marthue можно здесь.

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

Как рисовать с помощью SQL?

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

Видимо я сделала какое-то очень плохое зло, поэтому живу во время перемен. Справиться с эмоциями и повысить конкурентоспособность на рынке Data Enigneer’ов мне помогает сайт Hackerrank. На пути к решению вообще всех задач по SQL с этого сайта мне попалась задачка на нетривиальные запросы.

В задачке требовалось звёздочками нарисовать прямоугольный треугольник...

Порисуем с помощью SQL
Всего голосов 66: ↑62 и ↓4+58
Комментарии30

Как я hiddenkeywords проходил

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

Продолжаем проходить различные "квесты" и "пазлы" на просторах интернета. На этот раз в руки мне попался https://hiddenkeywords.com/ Это испытание было создано студией Propellernet - студия маркетингового консалтинга из Англии.

Если ты не боишься спойлеров, то добро пожаловать.

Поехали!
Всего голосов 1: ↑1 и ↓0+1
Комментарии3

Медианы, подмассивы и времена года: ещё порция задач для QA-инженеров

Время на прочтение7 мин
Количество просмотров4.8K
Приветствуем всех любителей интересных головоломок. Мы уже разбирали задачи из отборочных туров нашего контеста для Go-разработчиков и QA-инженеров, а в этот раз приглашаем найти решения задачек из дополнительного раунда для QA-инженеров.


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

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн

Случайные блуждания и цепи Маркова в геймдизайне

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

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

Всем привет, меня зовут Лев, я геймдизайнер из WhaleKit. И в этой статье мы разберем две математические концепции: цепи Маркова и случайные блуждания. Сразу замечу, что статья скорее «поп», чем «науч», поэтому часть доказательств выведенных формул будет опущена. После теории мы перейдем к реальным кейсам, где эти инструменты могут пригодиться, например:

 1. Сколько сундуков откроет игрок, если из сундуков могут выпасть еще сундуки;
2. Сколько золота уйдет на прокачку меча, если меч может ломаться;
3. Какая вероятность победить в денежном поединке.

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

Интеллектуальный брутфорс: пишем головоломку и солвер для неё

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

Небольшое предисловие


В колледже я много играл в головоломки. В статье под головоломками я буду подразумевать очень узкое подмножество таких игр. Вот некоторые из примеров:


Также мне посчастливилось изучать структуры данных в Политехническом институте Ренсселера, где в то время студенты профессора Катлера (привет, Барб!) ежегодно участвовали в соревновании по написанию солвера головоломок. Каждый год игра менялась, и в мой год это была Ricochet Robots, которая по сути является головоломкой со скольжением по льду для нескольких игроков. Мне очень понравилось это задание (и я победил в соревновании!), после чего я продолжил участвовать в соревнованиях в качестве ассистента преподавателя.

Цель этой задачи заключалась в том, чтобы познакомить всех с рекурсией и поиском в глубину. Программе передавались исходное состояние игры, а также максимальная глубина рекурсии. Необходимо было вернуть или кратчайшее решение или все возможные решения минимальной длины. В соревнованиях игрокам могли или сообщать, или не сообщать предел глубины; кроме того, возможны были головоломки, не имеющие решения. Я многому научился и получил кучу удовольствия, так что, возможно, вам это тоже понравится.
Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии4

Лучший технический вопрос, который мне задавали на собеседовании

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

Много воды утекло с тех пор, как я в последний раз участвовал в собеседовании по программированию как соискатель. Но до сих пор помню особенно полюбившийся мне вопрос с такого собеседования. Дело было в MemSQL, году так в 2013. (Они даже успели переименоваться, поэтому, полагаю, конкретно этот вопрос они на собеседовании уже не задают. Не чувствую вины за то, что выдаю его. Это отличная история, которая также кажется мне поучительной; просто раньше я о ней никогда не писал).

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

Поскольку компания MemSQL разрабатывала базу данных, этот челлендж из той же оперы.

Читать далее
Всего голосов 32: ↑28 и ↓4+24
Комментарии22

Города, инверсии и логистика: разбор задач для QA-инженеров

Время на прочтение9 мин
Количество просмотров5.1K
Друзья, недавно мы опубликовали разбор задач из отборочного контеста на курс «Автоматическое тестирование веб-сервисов на Go». А теперь предлагаем поломать голову над задачами для QA-инженеров: сначала попробуйте найти решение самостоятельно, а потом сравните с нашими вариантами.


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

Маски, картины, тайные покупатели и анализ продаж: разбираем решения задач для Go-разработчиков

Время на прочтение10 мин
Количество просмотров12K
3 апреля на платформе All Cups прошло отборочное соревнование на курс «Продвинутая разработка микросервисов на Go» — это уже второй поток бесплатных курсов для разработчиков от Ozon Tech. Программа предназначена для мидлов, поэтому нужно было придумать задания и провести контест, чтобы отобрать релевантных участников.

Методисты All Cups совместно с организаторами разработали алгоритмические задачи, добавив актуального контекста. Здесь много любителей головоломок: предлагаем попробовать свои силы в задачах и сравнить с решениями.


Поехали!
Всего голосов 29: ↑26 и ↓3+23
Комментарии25

Применение онтологии к решению практических задач ИБ (часть 1)

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

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

Познакомиться с онтологиями
Всего голосов 7: ↑6 и ↓1+5
Комментарии9

Ностальгируем и решаем: задачи с Первой Международной Математической Олимпиады IMO 1959 года

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


  • 40 первых лет лидировал СССР, основным конкурентом была… Венгрия.
  • Китай врывается в этот чарт только в 1989 году, а к 2001 обгоняет Венгрию (население <10 млн человек), в 2003 обгоняет СССР.
  • Америка появляется в этом чарте в 1974 году, в 2005 догоняет Венгрию и селится на второй позиции.
  • Северная Корея была дважды исключена за читерство 1991 и 2010 годах.
  • Россия к 2011 году (за 20 лет присутствия в рейтинге, без учета медалей СССР) нагоняет и Венгрию и СССР и врывается на 3 место.
  • Если посчитать по-честному, то СССР+Россия должны быть на первом месте всегда.
  • 6-16 июля 2022 года в Осло, в Норвегии, состоится 63-я Международная Математическая Олимпиада.

Сейчас в олимпиаде участвуют более 100 стран, в которых живет 90% населения Земли. От каждой страны участвуют 6 школьников. Олимпиада проходила каждый год, кроме 1980, когда она была отменена из-за внутренних раздоров в Монголии.

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

Lisa Sauermann, Reid W. Barton, Nicușor Dan and Ciprian Manolescu выиграли по несколько медалей, Григорий Перельман, Terence Tao, Ngô Bảo Châu и Maryam Mirzakhani стали выдающимися математиками, а некоторые получили Филдсовскую премию.

Первая олимпиада проходила в Румынии, в Бухаресте, и в ней принимали участие школьники всего из 7 стран: 46 мальчиков и 6 девочек.

Под катом судьба победителей олимпиады 1959 года и текст задач с решениями.
Читать дальше →
Всего голосов 37: ↑34 и ↓3+31
Комментарии16