Обновить
10.22

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

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

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

«Переиграл и уничтожил»: занимательные исследования промпт-атак

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

Недавно в блоге Beeline Cloud мы рассказывали про open source-проекты, которые могут помочь с разработкой ИИ-агентов. Посмотрим на тему ИИ-агентов с другой стороны и разберем исследования, посвященные промпт-атакам — их авторы рассматривают новые способы обхода фильтров, ищут слабые места в генерации ответов и подбирают особые формулировки, призванные сбить LLM с толку.

Читать далее

Василий и теория вероятностей. Показываю решение задачи

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

Привет! К первому сентября я публиковала задачку «Василий и теория вероятностей: а не решить ли задачку в честь 1 сентября?». Самое время обсудить решения.

Читать далее

«Парадокс сестёр», который только кажется простым, и его неожиданное решение

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров28K

В теории вероятностей имеется несколько известных задач, решение которых противоречит здравому смыслу. Одна из таких задач — «Парадокс сестёр». Сейчас я изложу условие задачи, дам вам возможность подумать над ответом, а потом расскажу о том, как её решать.

Читать далее

Василий и теория вероятностей: а не решить ли задачку в честь 1 сентября?

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

Привет, меня зовут Диана, я математик и пишу для хабраблога МТС. Моя прошлая публикация была про скутоиды и набрала больше 40к просмотров — спасибо вам за ваш интерес!

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

Читать далее

От математики к машине: преобразуем функцию в машинный код

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

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

1. Математика — чистая математика
2. Haskell — язык для функционального программирования
3. C — язык для императивного программирования
4. Ассемблер — сравнительно удобочитаемое представление машинного кода
5. Машинный код для архитектуры x86-64 — вот это уже интересно

Если вам интересно, какие отличия бывают между языковыми стилями или любопытно, как ваш код может выглядеть после компиляции — добро пожаловать под кат!

Читать далее

Зеркальные равенства: красивая математическая симметрия

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

Математика полна удивительных закономерностей. В одном из номеров журнала «Наука и жизнь» была небольшая заметка в разделе «Математические досуги». С двумя примерами на умножение из разряда математических неожиданностей.

20646 × 35211 = 11253 × 64602

203313 × 657624 = 426756 × 313302

Примечательны эти примеры тем, что цифры в них расположены зеркально-симметрично относительно знака равенства. Зеркальные равенства напоминают палиндромы, но с ключевым отличием. Палиндром — это свойство одного числа, а зеркальное равенство — это свойство операции над числами.

Как математический объект исследования зеркальные математические равенства не имеют определённого автора или даты первого упоминания. Это скорее концепция, которая возникает в процессе изучения чисел и их свойств, как естественное развитие темы палиндромов и симметрии в математике.

Как много существует подобных комбинаций?

Читать далее

Воздушно-тепловые завесы в дверях и на больших воротах: физика процесса и экономика применения устройств

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

Воздушная  завеса без нагрева для открытых ворот цеха - кто их там устанавливает.

Проектированием систем вентиляции и отопления я занимаюсь уже более 20 лет.

Это работа не очень сложная, так как достаточно детально расписана  ещё в учебниках для профильного ВУЗа по специальности ТГВ.

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

В итоге «инженер» после получения диплома в таком ВУЗе вполне может выполнить проект вполне работоспособной системы отопления и вентиляции, но при этом совершенно не будет понимать как и почему всё это работает по своей физике.

Такая история произошла и со мной, в частности в приложении к «воздушно-тепловым завесам» (ВТЗ), которые я вполне правильно, но почти бездумно ставил в свои проекты  последние два десятилетия.

Но настал момент, когда пришлось разобраться с физикой и этого вопроса.

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

Именно этим маленьким открытиям и  изобретениям посвящена данная статья.

Как воздушная завеса влияет на микроклимат в цехе.

Открытые ворота большого размера в зимнее время приводят к интенсивному затеканию холодного воздуха с улицы в проём ворот (см.рис.1)

Читать далее

5 слов из 5 букв

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров874

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

Читать далее

Интеграл, как способ приоткрыть черепную коробку

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров13K

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

Вперед - интегрализироваться!

Визитка в 2025? Светодиоды, микроконтроллер и руки из плеч

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

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

Мы в Beeline Cloud решили изучить эту тему. Рассказываем про визитку-клавиатуру, визитку в стиле Altair 8800, карманный Linux и карточку от фаната светодиодов. Кстати, в статье есть ссылки на репозитории и схемы проектов, так что, при желании, их можно повторить или улучшить.

Читать далее

Алгоритмическая угадайка от Google: 1 000 000$ как я решил задачу и улучшил свой алгоритм трижды

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

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

Читать далее

Наибольшая общая возрастающая подпоследовательность

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

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

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

Читать далее

Головоломка на 1000 BTC

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров73K

Мало кто знает, но есть ряд биткойн-кошельков с ослабленной защитой. Их владелец хочет, чтобы вы их взломали и взяли деньги себе. Общая сумма ~1000 BTC. Это удивительная история началась в 2015 году....

Читать далее

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

Программа «Hello World» на машинном коде под DOS

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

Как-то раз я послушал следующее интересное выступление (по-немецки): ссылка

В нём разобрано, как написать программу «hello world» для 64-разрядного дистрибутива Linux в шестнадцатеричном редакторе. Ассемблер здесь не используется, программа пишется непосредственно на машинном коде. Правда, в ней есть издержки на использование ELF.

Мне понравилась такая идея, и я решил повторить такой опыт, но немного в иной форме — а именно под 16-разрядной DOS в реальном режиме. У меня должен был получиться файл в формате COM, а не EXE, так как (на данном этапе) меня интересовал не столько формат файла, сколько кодировка инструкций. В вышеупомянутой лекции, если честно, не сообщается почти никаких подробностей о том, как именно перейти от ассемблерного кода к машинному — поскольку в случае разбора этих тем лекция, пожалуй, растянулась бы на несколько часов. Но здесь я всё разберу подробно, и при этом собираюсь пользоваться только документацией lntel, а также дизассемблировать код в целях верификации.

Также мы коротко поговорим о сегментации.

В качестве шестнадцатеричного редактора на этот раз воспользуемся hexedit.

Читать далее

Бумажный геймдев: как увлечь ребёнка без интернета и гаджетов

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

Привет, Хабр! Как вы думаете: что общего между написанием сложного кода и игрой с семилетним ребёнком? Отвечу как молодой отец и сотрудник ИТ-компании: оба процесса занимают неопределённо много времени и порой заставляют вас усомниться в своём интеллекте. Если за помощью с кодом всегда можно обратиться к Stack Overflow или (простите!) к ИИ-ассистентам, то ребёнок требует вашего персонального внимания. Считайте, что вы один на один с естественной нейросетью, которая находится в стадии обучения, но уже активно лезет в продакшен. А ещё эта нейронка часто капризничает и требует поиграть, игнорируя ваши дедлайны.

Оставлять ребёнка надолго перед экраном — не лучшая идея (хотя продавцы очков и контактных линз, а также психологи будут вам благодарны). Поэтому ищем другие варианты. Если ваш ребёнок уже освоил азы шантажа («Пап, а я тогда не усну!») и базовые алгоритмы манипуляции («А мама разрешает!»), пора переходить к ассиметричным ответным мерам. Нам помогут не столько старые, сколько добрые игры на бумаге, которые слегка изменились со времён нашего детства.

Главное в этих играх — листок и ручка фантазия!  Они не требуют зарядки, не содержат микроплатежей и помогают развивать мышление лучше, чем очередная «нейро» игра из магазина. Давайте поближе познакомимся с этими шедеврами офлайнового безчипового геймдева!

Читать далее

Project Euler. Векторное программирование и задача номер 1

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

Добавляем щепотку векторного программирования в задачки проекта Эйлер. Заодно разбираемся, как эффективно реализовать деление на константу.

Читать далее

Как выбрать оффер? Задача о разборчивой невесте и правило 37%

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров15K

В течение месяца вы проходите собеседования, получаете офферы — и хотите выбрать лучший. Но каждый оффер живёт недолго: если не согласитесь вовремя, к нему уже не вернуться. Как действовать, чтобы выбрать самый лучший?


Это версия классической задачи о разборчивой невесте. У неё есть красивая оптимальная стратегия — правило 37\%. Возможно, вы о нём слышали. Но знаете ли вы, почему оно работает? И как вообще до него додуматься?


Часто алгоритмы — это эвристики, без гарантии оптимальности. Но в этой задаче всё иначе. Мы шаг за шагом переоткроем правило  37 \% и докажем, что он действительно лучший

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

В статье мы разберём эту теорему, выведем правило 37\% и увидим, как в задаче естественно появляется число e — и какой у него смысл на самом деле

Эта задача стоит того, чтобы пройти её до конца. Будет понятно, красиво и интересно

К правилу 37%

В решение этой математической задачи с укладкой блоков сложно поверить

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

Вот удивительный эксперимент, который вы можете попробовать провести у себя дома: соберите несколько игрушечных блоков и положите их на стол. Возьмите один блок и медленно, сантиметр за сантиметром, продвигайте его за край стола, пока он не окажется на грани падения. Если у вас есть терпение и твёрдая рука, у вас должно получиться сбалансировать его так, чтобы ровно половина свисала с края. Стоит сдвинуть его ещё дальше, и гравитация победит. Теперь возьмите два блока и начните сначала. Укладывая один блок на другой, как далеко вы сможете завести конец верхнего блока, чтобы он высунулся за край стола?

Читать далее

Сотворение мира за 20 минут на JavaScript, или минималистичная модель эволюции

Уровень сложностиПростой
Время на прочтение17 мин
Количество просмотров12K

Впервые про моделирование эволюции я прочитал в 13 лет в статье «Жить и умереть в компьютере» (Техника — Молодежи, №5 1993 год). Она произвела на меня столь неизгладимое впечатление, что я тут же загорелся идеей создать что-то подобное.

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

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

Запустить эволюцию

Винтик и Шпунтик, часть 3: лемма Бернсайда и генерация орбит

Уровень сложностиСредний
Время на прочтение26 мин
Количество просмотров1.8K

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

Читать далее

Вклад авторов