Обновить
32K+

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

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

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

Решение головоломки из университетского квеста

Время на прочтение3 мин
Охват и читатели6.7K

"Замощение"  одна из интересных головоломок игры Puzzle Hunt Мельбурнского университета 2005 года. Эта игра представляет собой ежегодный квест, цель которого — первыми обнаружить "сокровища", спрятанные где-то на территории кампуса. Задания игры не содержат инструкций. Вместо этого участникам дается сюжет, который постепенно развивается, и в который встраиваются головоломки. Цель игроков: с учетом сопутствующей информации разобраться, как решать головоломку, а затем каким-то образом получить из решения слово или фразу, которые являются ответом на задание.

Читать далее

Новости

Восстановление данных с нуля со сломанной пополам SD-карты памяти

Уровень сложностиСложный
Время на прочтение32 мин
Охват и читатели17K

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

В далеком 2017 году мне передали SD-карту памяти с диагнозом «сломана пополам, вдруг получится что-то с нее считать». Я честно пробовал: восстановил все оборванные дорожки, досконально проверил все соединения и на целостность линий, и на отсутствие замыканий. Положительного результата не получил – карта определялась, но с нулевым объемом. По этой причине она отправилась в ящик ждать «лучших времен».

Прошло 9 лет. В результате очередной уборки-инвентаризации, в ящике нашел эту старую карточку. Вот и настали «лучшие времена», подумал я.

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

Спойлер - всё получилось.

«Long story short…»

Решаем задачу по реверс-инжинирингу от Jane Street

Уровень сложностиСложный
Время на прочтение12 мин
Охват и читатели17K

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

Для общего представления рекомендую почитать ознакомительную статью из блога Jane Street «Can you reverse Engineer an ASIC?»

И если у вас вдруг возникнет желание изучить тот «ужасный» код, который я использовал для решения, то он лежит в моём репозитории GitHub.

Читать далее

Контринтуиция в статистике на примере игры Мир Танков/WOT

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели7.4K

Контринтуитивные события окружают нас повсюду. Взять, например, парадокс дней рождений: каждый раз, когда оказываешься в небольшой группе и узнаёшь, что у двух участников группы праздник в один и тот же день, то думаешь: какое удивительное совпадение, ведь кажется, что событие редкое. Но вот уже при детальном рассмотрении оказывается, что вероятность такого события достаточно высокая (например, если группа 23 человека, то вероятность составит 50%, для группы в 57 человек — 99%). Примеров контринтуитивных событий много и они удивительны тем, что их разоблачение позволяет нам менять своё мировосприятие. 

Вот и мы с друзьями затеяли спор об одном таком событии, связанным с игрой Мир танков. Суть спора: двое из нас считают один сервер «несчастливым», потому что при нашей средней статистике в 50%, именно на этом сервере происходят частые поражения. Третий друг считает, что не может быть такого, чтоб сервер был «несчастливым» и тем более, невозможно, чтобы средний процент побед всех игроков на нём был меньше 50%. 

Читать далее

Как выбрать поставщика, когда самая дешёвая цена – это ловушка: многокритериальная оптимизация с учётом MOQ

Уровень сложностиСложный
Время на прочтение15 мин
Охват и читатели6.2K

Представьте типичный понедельник в отделе закупок производственного предприятия. Пришло пять коммерческих предложений на одну и ту же позицию – допустим, нужен стандартный компонент, который регулярно идёт в производство. Менеджер открывает таблицу, смотрит на столбец «Цена за штуку» и выбирает минимум. Это занимает десять минут. Решение кажется очевидным.

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

И это не исключение – это норма для большинства предприятий, где выбор поставщика до сих пор делается вручную, на глазок, без формализованной процедуры. Хуже того: даже если менеджер учитывает партионность, он всё равно не учитывает историю взаимодействия – сколько раз поставщик привозил вовремя, сколько раз приходилось оформлять рекламацию. Эта информация хранится в ERP-системе, но почти никогда не используется для принятия решений.

В этой статье мы разберём математическую модель, которая закрывает оба пробела. Три критерия – приведённая стоимость закупки с учётом минимальной партии, срок поставки и интегральный уровень доверия к поставщику, вычисленный из данных ERP. Один алгоритм, реализованный в Engee на языке Julia. И числовой пример, где поставщик с самой низкой каталожной ценой закономерно оказывается наихудшим выбором – а модель это выявляет автоматически.

Читать далее

Анти‑тест: сколько шагов сотруднику ИБ до нарушения УК РФ?

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели106K

Всем привет! Это Катя Тьюринг. Вашему вниманию предлагается стресс‑тест для ИБ‑специалистов. Попробуйте ответить на вопросы прежде, чем перейдете к объяснениям, чтобы узнать, как хорошо вы разбираетесь в законности кибербеза в России.

Читать далее

Как себя чувствует хрупкое оконное стекло под непрерывными ударами молекул газа по МКТ?

Время на прочтение11 мин
Охват и читатели8.4K

Сопромат и теоретическая механика против МКТ

Ешё со школьных уроков «физики» мы знаем, что согласно «молекулярно‑кинетической теории» (МКТ) молекулы газа похожи на абсолютно упругие бильярдные шары, которые с высокой скорость стукаются об стенки сосудов и отскакивают от них с той же скоростью.

По МКТ получается, что именно этими постоянными многочисленными ударами с отскоками создается эффект «равномерного давление» на стенки сосуда под давлением (см.рис.1–2.)

Читать далее

«Я знаю, что ты знаешь»: задача про совет философов

Время на прочтение4 мин
Охват и читатели7.1K

В древней стране Философии существует правящий совет философов, члены которого строго упорядочены по степени власти и престижа. Различные привилегии также распределяются в соответствии с этим рангом. Философ 1 - признанный философ-царь и самый могущественный член совета, за ним следует философ 2 и так далее.

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

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

Предположим, что сейчас в совете пять членов. Какое предложение выдвинет философ с самым низким рангом, то есть философ 5?

Читать далее

Как с помощью нейросети сделать перестановку в комнате

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели10K

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

Дано: комната, в которой проживают двое взрослых и двое детей 14 и 7 лет. В ней много мебели, которая исторически скопилась. Есть кровать чердак, есть большая кровать, два шкафа, комод, стол, система хранения.

Задача: нужно сделать еще одно рабочее место, ведь младший ребенок пошел в школу. 

Читать далее

«Я знаю, что ты знаешь»: задача про пиратов

Время на прочтение11 мин
Охват и читатели14K

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

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

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

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

Предположим, что вы — пират номер десять. Какой план вы предложите?

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

На самом деле вы действительно можете предложить именно такой вариант, и если все сделать правильно, ваш план будет принят!

Читать далее

Еще три интересные логические задачи

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели6.8K

Продолжаю публикацию интересных задач на логику с красивым решением.

Формулировка:

3 честных рациональных инопланетянина (А, Б, В) стоят в колонне. В видит А и Б; Б видит только А; А не видит никого. На каждого надет колпак либо синего, либо зеленого, либо красного цвета, количество колпаков того или иного цвета не ограничено. Договорившись об общей стратегии, они по очереди (начиная с В) называют возможный цвет своего колпака. Цель - гарантировать, чтобы минимум двое ответили верно.

Решение:

Воспользуемся арифметикой по модулю 3 (будем считать остатки от деления на 3, соответствующего количеству цветов). Участники заранее присваивают каждому цвету число - красный = 0, синий = 1, зеленый = 2. Инопланетянин В видит двоих перед собой (Б и А). Он складывает их числа и называет цвет, который соответствует остатку от деления суммы на 3. Например, В видит у Б - синий (1), у А — зеленый (2). 1 + 2 = 3. Остаток от деления 3 на 3 равен 0. В говорит: «Красный» (код числа 0). Б слышит «Красный» (0) и понимает: «Мой цвет + цвет А делится на 3 без остатка». Затем он смотрит на А. Допустим, Б видит, что на А — зеленый колпак (2). Единственное число, которое при сложении с 2 дает число, делящееся на 3 — это 1. Б понимает, что он — Синий (1), и уверенно это произносит. А слышал код от В (0) и ответ от Б (1) и понимает, что на нем колпак зеленого цвета (2).

Данный метод работает для любого количества цветов и любого количества инопланетян.

Читать далее

Мысленный эксперимент, который показывает, что ни одна теория не может адекватно формализовать самоощущение машин

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели7.8K

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

Можем ли мы математически описать природу самоощущения, можем ли мы построить машины, которые обладали бы им наподобие нас?

Познакомиться с исследованием

Игра-головоломка «Прогулка по подземельям»

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели5K

Прогулка по подземельям — это минималистичная, но при этом очень интересная и сложная головоломка из игры MIT Mystery Hunt 2014 года. Она представляла собой видеоигру со множеством уровней, каждый из которых был подземельем с различными препятствиями и врагами, которые игроку нужно было преодолеть, чтобы добраться до выхода. Пройти первые несколько уровней не представляло особого труда — их главной целью было познакомить игрока с основными механиками игры. Однако затем сложность и оригинальность уровней резко возрастали, и каждый их них представлял собой уже далеко не тривиальную задачу.

Читать далее

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

Быстрый алгоритм нахождения простых делителей составных чисел

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели8.2K

хочу представить вам свой очень быстрый алгоритм нахождения простых делителей огромных составных чисел. Однажды на уроке математики мне нужно было найти делители какого-то числа. Раз уж "лень — двигатель прогресса", я решил поручить эту задачу компьютеру. Но простая программа на Python по перебору до корня мне показалась скучной, и тогда я решил найти более интересный способ.

Читать далее

Тренажер ТРИЗ для инженеров

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели9.6K

Я давно работаю инженером и когда узнал про ТРИЗ очень заинтересовался. Изучив все приемы пришел к выводу - а ведь не надо даже в наше время уже сидеть и долго мыслить над проблемами разработки ведь все основные шаблоны уже описаны. А ведь каждый шаблон это фактически выход из определенной ситуации и проблемы. В начале я сделал приложение в котором с начало показывается название приема и скрыто его значение. По типу приложения для заучивания слов. Но это мне показалось не очень интересным и скучным, поэтому долго я им не прозанимался и вскоре забыл про него.

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

И вот через несколько дней появилось мое приложение. Ну а теперь подробней о нем.

Читать далее

Биткойн-головоломка 135 вскрыта! Who is RetiredCoder?

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели22K

Начало истории, тесты программ для головоломок ч.1.

Продолжаем серию статей о биткойн-головоломках. Для всех, кто в теме: 28 июля 2026 года произошло важное событие — головоломка на 13.5 биткойна была вскрыта. Осталось ~903 BTC.

Удивительным фактом остается то, что головоломки 120, 125, 130 и 135 (суммарно около 40.2 BTC) вскрыл один и тот же человек — RetiredCoder. В этой статье я немного расскажу о том, как он это сделал, и попробую разгадать кто он.

Читать далее

Философия комплексной плоскости: почему и зачем i2 = -1

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели13K

В основании комплексных чисел лежит формула  i^2 = -1 — определение мнимой единицы. На самом деле это тождество не нужно постулировать. Его можно вывести.

Читать далее

Альбом электроники, написанной реками — как я его выпустила?

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели11K

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

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

Уровень реки — первичная метрика её «силы», от которой будет зависеть её напор, перенос вещества и так далее. Во‑первых, обычно у уровня рек есть выраженная сезонность, и это яркая точка пересечения с акустикой, так как звук синтезируется через периодические гармоники. При этом важно, что уровень реки меняется сильно и достаточно быстро: помимо четкого годового хода, он реагирует на атмосферные условия. Это легко сложилось для меня в цельную историю: озвучив архивные данные, можно сравнить, как прошёл каждый год, какой тренд в целом в жизни реки и какие краткосрочные события с ней происходили.

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

Уже проговорилась, что из доступных гидрологических параметров для создания звука я выбрала уровень рек. Чтобы не слить данные, я работала не с абсолютными значениями, а относительными и немного их аугментировала — так, что это не оказывает влияния на звук, но не позволяет восстановить точные значения. (; Для проекта я выбрала Енисейский бассейн.

Слушать реки

Логическая головоломка из университетского квеста

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели13K

5-карточный стад — логическая головоломка из игры Puzzle Hunt Мельбурнского университета 2015 года, в которой участникам предлагалось заполнить прямоугольную сетку с помощью комбинаций карт из покера.

Игра Puzzle Hunt представляет собой ежегодный квест, цель которого — первыми обнаружить "сокровища", спрятанные где-то на территории кампуса. Задания игры не содержат инструкций. Вместо этого участникам дается сюжет, который постепенно развивается, и в который встраиваются головоломки. Завершает игру мета-задание, в котором требуется некоторым образом скомбинировать все решения предыдущих заданий, чтобы получить финальный ответ, ведущий к расположению "сокровищ".

Читать далее

Иллюстрированный разбор одной пользовательской реализации malloc()

Время на прочтение21 мин
Охват и читатели12K

Программисты, работающие с языком C, несомненно, узнают стандартную функцию malloc(). Это главный аллокатор памяти в языке, который тесно связан со всем известными ошибками сегментирования. Функция malloc() – именно то средство, при помощи которого программы приобретают память во время выполнения. Зачастую она также превращается в основной инструмент создания объектов и управления ими. Учитывая такой центральный статус malloc(), удивлён, что большинство программистов обращаются с ней как с чёрным ящиком. Этот пост призван немного исправить ситуацию, и в нём рассказано, что именно происходит под капотом. Также рассмотрим одну из возможных реализаций этой функции.

Читать далее
1
23 ...