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

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

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

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

Задача о Выборе Билетов

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

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

Я решил положить этому конец и распетлять задачу при помощи ЭВМ.

Постановка задачи

Надо доехать из города A в город C. При этом надо совершить пересадку в городе B. На сайтах есть множество билетов в направлении A->B и B->C. Надо выбрать два билета так чтобы:

1--минимальное время пересадки

2--минимизировать стоимость поездки

3--минимизировать общее время в пути

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

Читать далее

Новости

От театральной импровизации до навыка для Алисы: как я сделал голосовую игру про принцесс, драконов и рыцарей

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

С вами снова Кирилл Богатов, дизайнер разговорных продуктов в KODE. В прошлом году я записался на курсы по театральной импровизации. Там мы разыгрывали сценки, работали с зажимами и учились не бояться выглядеть нелепо. Наши занятия часто заканчивались игрой в «Принцессу, Дракона, Рыцаря» — это как «камень-ножницы-бумага», только вместо фигур в ней нужно изображать фэнтезийных персонажей. Своего рода мини-спектакль на пару секунд.

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

Читать далее

Теорема Борсука-Улама, диаметральные точки Земли и дележка украденного ожерелья

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

Привет, меня зовут Диана. Я математик и автор хабраблога МТС. В прошлый раз рассказывала о поверехностях второго порядка, а сегодня хочу обсудить изящную топологичекую теорему, у которой есть внезапные приложения в жизни — географии, экономике и политике. Ее следы можно найти в алгоритмах дележки, когда нужно распределять по долям какой-то неоднородный ресурс — данные, вычислительные мощности, бюджет. Например, с ее помощью можно разделить участки земли между фермерами, учитывая разные параметры: площадь, тип почвы, удаленность от дороги и прочее. Она такая немножко Сейлор Мун — за добро и справедливость.

Этот пост мог бы иметь кликбейтное название в духе «На противоположной стороне Земли сейчас такая же погода, как у вас!», но это не совсем верно. Почему — объясню ниже. А пока предлагаю разобраться с официальными формулировками и переложить их на понятный язык. Еще в тексте будут ссылки на связанные проблемы, которые научат нас грамотно резать бутерброды и причесывать ежей — в общем, надеюсь, получилось познавательно!

Читать далее

Задача про рукопожатия

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

Существует классическая задача:

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

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

Читать далее

Задача с эмодзи

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

Сложность текста: 2-3/5

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

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

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

Естественно, настоящим математикам это надоело. В начале 2017 года на Reddit появился пост с заголовком «Меня утомила вся эта фейсбучная фруктовая математика. Хочет кто-нибудь придумать действительно сложную математическую задачу, чтобы побороться с этим явлением?».

Читать далее

Постоянная Капрекара: алгоритм, который всегда сводится к одному числу

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

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

В 1949 году индийский математик Даттарая Капрекар обнаружил интересную закономерность у четырёхзначных чисел. При выполнении определённых действий с четырёхзначными числами (кроме тех, в которых все цифры одинаковые) всегда получается одно и тоже число.

Читать далее

Задача про мышей и отраву

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

Есть 1000 одинаковых колб с прозрачной жидкостью.

В 999 колбах вода, а в одной случайной - отрава.

Если мышь попробует отраву, то она погибнет через 1 час.

Как найти отравленную колбу за минимальное время?

Читать далее

Как проверить в C, является ли выражение константой

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

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

Читать далее

Винтик и Шпунтик, часть 1: формула включений-исключений

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

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

Читать далее

Как специально написать чрезвычайно медленный код

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

Раз в несколько лет я устраиваю в нашей исследовательской группе челлендж «Напиши медленный код». Цель – написать код с минимально работоспособным количеством инструкций на цикл (IPC) с условием, чтобы этот код выполнялся на заранее подобранном сервере с архитектурой x86.

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

Читать далее

История о недостающих метриках: странности с замыканиями в Rust

Время на прочтение8 мин
Количество просмотров1.6K
Как один нюанс, связанный с обработкой замыканий в Rust, привёл к потере метрик в нашей компании, и какие уроки мы из этого извлекли

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

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

Криогенное охлаждение при дросселировании воздуха. В чём суть «эффекта Джоуля-Томпсона»?

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

Эффект Джоуля-Томпсона в криогенной технике: Так на сколько градусов и как  охлаждается струя воздуха при дросселировании?

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

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

В этом случае по закону сохранения энергии сверхзвуковая струя должна сильно остывать за счёт перевода внутренней энергии (тепловой) в кинетическую  энергию.

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

Похожий эффект со сверзвуковым разгоном струи из критического сечения камеры сгорания ЖРД и резким падением температуры прослеживается в больших ЖРД, что подтверждено расчётом по ТТХ РД-170. (см.ссылку)

Правда, на все мои аргументы и расчёты  некоторые критически настроенные читатели мне писали, что никакого понижения температуры при дросселировании не бывает. А если и бывает, то очень маленькое понижение  на дТ= 0,25С при перепаде на 1 атм, что определяется «эффектом Джоуля-Томпсона».

Читать далее

Поверхности второго порядка: гиперболоиды и параболоиды, которые держат небо

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

Привет, меня зовут Диана, я математик, а еще пишу для хабраблога МТС. В прошлый раз я рассказывала про кривые второго порядка. Сегодня хочу продолжить и обобщить тему, перейдя в 3D.

Иронично, что двумерная ситуация помогает объяснять глобальные процессы вроде движения тел в космосе, ведь орбиты отлично описываются плоскими кривыми. А более сложная трехмерная ситуация нужна на Земле для постройки полезных конструкций и архитектурных шедевров. Обо всем этом сегодня и поговорим. Готовьтесь — дальше будет много ссылок с визуализациями.

Читать далее

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

Первоапрельская теория (не)вероятностей

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

Дисклеймер: идея написания этой статьи появилась у нас в преддверии 1 апреля (что и отражено в названии). Поэтому все, что написано в данной статье, является всего лишь первоапрельской шуткой.

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

Два века назад Н.И. Лобачевский исключил одну из аксиом из евклидовой геометрии, и создал новую геометрическую теорию. Мы решили пойти по стопам великого математика и поэкспериментировать с другой важной математической теорией – теорией вероятностей, а именно: поменять один из ее постулатов и посмотреть на результат.

Читать далее

Как я за год написал шесть больших научных статей и несколько маленьких

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

Без «литературных негров» и чатГПТ — личный рассказ об инструментах, технологиях и приёмах, которые помогли мне не вылететь из аспирантуры и догнать коллег. Открытые данные, Python, R, RMarkdown, Quarto, git и немного ИИ в помощь исследователю.

Читать далее

История о потоке UI, зависавшем при вызове ядра

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

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

Читать далее

Байты в солёной воде и передача сообщений через жидкость по стандарту RS-485

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

Здравствуйте, дорогие друзья!

С школьных лет мы знаем, что вода является проводником электрического тока. При этом дистиллированная вода не проводит ток, а вода с примесями — прекрасно проводит.

Я провёл эксперимент, в котором нет ничего необычного, но он наглядно показывает, что вода способна передавать и осмысленные сигналы, например данные в ASCII-кодах. Мы будем использовать ретротехнику — компьютеры на процессорах 386, но повторить суть эксперимента можно и на современном оборудовании.

Это небольшой пример, который напоминает нам о том, что вода электропроводна.

Под катом — фото и видео составляющих эксперимента и пояснения.
Читать дальше →

SQL HowTo: простой финал с агрегатами (Advent of Code 2024, Day 25: Code Chronicle)

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

В этой челлендж-серии статей попробуем использовать PostgreSQL как среду для решения задач Advent of Code 2024.

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

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

Читать далее

Excel, будь ты проклят: “1/2”+1=45660

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

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

Одно из самых интересных дел, которыми мне приходится заниматься на работе — это обратная разработка Excel. Я выискиваю причуды в его поведении и решаю, как поступать с ними в нашем фирменном табличном редакторе. Благодаря моему повседневному труду, наши пользователи, возможно, и не подозревают, сколько недокументированных грехов совершила Microsoft ради совместимости. Приглашаю вас одним глазком взглянуть на те ужасы, с которыми мне приходится тягаться — и тогда вы тоже станете бояться Microsoft Excel — не потому, что чего-то не знаете, а наоборот, так как знаете слишком много.

Читать далее

Хеш-таблица и C++20

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

Рассматриваем различные «приколюхи» из C++20 на примере хеш‑мапы!

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

Читать далее статьи от @SEIka69
1
23 ...