Рубрика «Занимательные задачки» - 42

12 мая мы с товарищами зашли в московское метро с его открытием утром и, не выбираясь наверх, посетили все 199 доступных в данный момент станций до закрытия метрополитена. Зачем мы всё это сделали – совершенно не ясно, но я попробую рассказать, как так получилось.

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

Алгоритм Метромарафона. Как аналитик Яндекса просчитал, что все станции можно посетить за один день - 1

По мере изучения вопроса я обнаружил, что идея сама по себе не то чтобы очень нова – в нью-йоркской подземке аналогичные соревнования проходят с 1966 года. Что же касается московского метро, то ЖЖ-пользователь estrella-de-sur полгода назад проехал его за 12 часов 36 минут (расчётное время – 11 часов 50 минут) по правилу «один шаг на каждую станцию». Но у нас была другая задача – мы хотели выйти на каждой станции и по возможности красиво её сфотографировать. Это означало, что нам в большинстве случаев придётся ждать на ней следующего поезда. Исходя из этого я и строил расчёт.

Предупреждение: если вы умеете решать задачу коммивояжёра на 200 узлах (с помощью генетических алгоритмов или без них) – вас, скорее всего, ждут в другом месте. Можете просто пролистать пост и посмотреть картинки.

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

Дайджест Университета ИТМО: #2 Научные разработки, видеосюжеты об ученых и ближайшие мероприятия - 1

Сегодня в дайджесте (первый выпуск) собраны: наиболее интересные публикации о разработках и открытиях, сделанных в Университете ИТМО; видеорепортажи о работе ученых и исследователей; статьи о том, как ведется подготовка студентов, занимающихся спортивным программированием; а также ближайшие мероприятия Университета, принять участие в которых может любой желающий.Читать полностью »

В статье Джона Харриса из серии «Основы геймдизайна» представлен подробный обзор самых популярных настольных игр, включая традиционные вроде шахмат и го, ролевые вроде «Зова Ктулху», европейские вроде «Колонизаторов» и многие другие, у которых есть чему поучиться.
Основы геймдизайна: 20 настольных игр. Часть первая - 1
Читать полностью »

Ключевые слова: DPS (DamagePerSecond); Wolfram Mathematica; дискретность и непрерывность; матанализ; заработок игровой валюты в компьютерных играх; паки ArcheAge.

Введение

Всем знакомы однотипные вопросы в школьных задачах по математике про мотоциклиста выехавшего из пункта А в пункт Б, которые вызывают скуку, отвращение, или просто безразличие. Вопросы, которые вызывают, все что угодно кроме интереса к изучению математики. Очевидно что, гораздо больший интерес и больше эмоций вызывают вопросы типа:
1) «как он смог меня одолеть в игре, если у моего персонажа и здоровья больше и DPS (Damage Per Second) выше?!»
2) «как быстрее всего заработать голду (игровую валюту), чтобы сделать своего персонажа сильнее?!»
На самом деле эти игровые вопросы очень похожи на классические школьные задачи. Разница лишь в том, что есть заинтересованность в получении ответа на игровые вопросы, есть цель, ради которой хочется решить эти задачи. К сожалению, очень многие преподаватели в школах и вузах совершенно не умеют заинтересовать обучаемых в получении конкретной информации, новом методе решений математических задач, доведении их до ответа. Но раз уж игры вызывают этот самый интерес, то грех не воспользоваться заинтересованностью в игре, для пробуждения интереса к математическому анализу.
Вот две задачи, которые являются лишь переформулированными вышеупомянутыми вопросами.
1) Петя и Коля решили помочь дедушке наполнить две одинаковые пустые бочки водой из колодца. Петя таскал воду в 5-и литровом ведре и на один заход к колодцу и обратно к бочке тратил 3 минуты, а Коля в 8-и литровом и на один заход тратил 5 минут. Каждый заполнял свою бочку. Кто из мальчиков быстрее заполнит свою бочку, если а) объём бочки 60 литров? б) если объем бочки 56 литров? (начали мальчики одновременно)
2) Два купца Семён и Добрыня покупают у крестьян по 10 пудов мёда за 5 золотых и везут его на продажу в соседние города. Добрыня везёт в ближайший город и продаёт там за 8 золотых, весь путь до города и обратно у него занимает 2 дня. Семён же, желающий продавать своё мёд как можно дороже, не ленится и везёт его ещё дальше, тратя на весь путь 3 дня, и продавая мёд в другом городе за 10 золотых. Кто же из купцов заработает больше за 360 дней непрерывной работы? Как изменится ситуация, если оба купца вынудят крестьян снизить цену на мёд до 3 золотых?
Разбор этих задач, описанный ниже, поможет ответить на животрепещущие вопросы игры ArcheAge (и других) про «паки» и DPS. А также позволит задуматься над такими понятиями как «дискретность» и «непрерывность», а так же над таким, казалось бы, очевидным вопросом как «прибыль».
Читать полностью »

Компания Hola объявляет начало весеннего конкурса по программированию! Призовой фонд увеличен:

  1. Первое место: 3000 USD.
  2. Второе место: 2000 USD.
  3. Третье место: 1000 USD.
  4. Возможно, мы решим отметить чьи-то чрезвычайно оригинальные решения двумя специальными призами в 400 USD.
  5. Если Вы отправите кому-то ссылку на этот конкурс, поставив наш адрес в CC, и этот человек займёт призовое место, Вы получите половину суммы приза (разумеется, не в ущерб награде победителя). За одного победителя такую награду может получить только один человек — тот, кто отправил ссылку первым.

Мы ищем талантливых программистов, поэтому авторы интересных решений будут приглашены на собеседования.

Конкурс по программированию на JS: Классификатор слов - 1

Правила

На этот раз мы решили попробовать что-то новенькое: для разнообразия, этот конкурс — не на производительность кода.

Условия конкурса на английском языке размещены на GitHub. Ниже — перевод на русский язык.

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

image
Это статья про довольно неожиданный результат выполнения программы на python. Матёрым разработчикам она покажется детским лепетом, но для тех, кто изредка использует python как полезный инструмент будет несомненно интересна. Также рекомендую её как гимнастику ума. Чтобы заняться этой гимнастикой могли все желающие не добавлял в статью ни строчки кода.
Читать полностью »

Forensic VS шрёдер: получение доступа к удаленным файлам - 1 Основой одного из заданий online-этапа NeoQUEST-2016 стала форензика, а именно — работа со средствами восстановления предыдущего состояния разделов Windows. Профессионалы знают и часто пользуются при пентестах или расследовании инцидентов информационной безопасности возможностями данной технологии.

Многим известная Volume Shadow Copy – служба теневого копирования томов, впервые появившаяся в ОС Windows Sever 2003. Она позволяет делать и восстанавливать моментальные снимки файловой системы (снепшоты), в том числе и системного раздела. Также прошлые снепшоты раздела могут быть подмонтированы в букву диска или в папку, как и обычный раздел. Таким образом, удается получить доступ к предыдущему состоянию системы вместе со ВСЕМИ файлами, в том числе и к файлам, в настоящий момент удаленным с этого раздела. Все эти свойства Volume Shadow Copy могут быть использованы специалистами по информационной безопасности следующими способами:

  1. Доступ и копирование занятых системой или пользовательскими приложениями файлов (БД паролей приложений, почтовые ящики Outlook, Thunderbird, БД Active Directory).
  2. Доступ и копирование удаленных файлов (в том числе и надежно затертых шредером).
  3. Сокрытие исполняемых файлов и модулей вредоносного бэкдора (делается снимок файловой системы, в котором они присутствуют, после чего они удаляются с текущего раздела, оставаясь в теневой копии).

На использовании возможности из второго пункта и было основано решение задания на форензику NeoQUEST. Подробнее — под катом!
Читать полностью »

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

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

Вот на этом видео крайне подробно описан (на русском языке) принцип работы:

Но ещё больше самого двигателя мне показалась любопытной следующая вещь. В описании этого видео Дмитрий Коржевский написал следующую вещь: «Боковую опору заменить магнитом НЕВОЗМОЖНО!!! Не задавайте больше этот вопрос!»

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

А вот задачка на выходные! Она плохо подходит, чтобы спрашивать на собеседовании, потому что слишком уж на инсайт (пожалуйста, никогда не задавайте такие задачи на собеседованиях), и слишком простая для соревнований. Как раз чтобы доставить тот самый satisfying click в мозгу, за который мы любим программирование. Итак:

Есть большой массив из N 32-битных чисел. Каждое число встречается два раза, а два числа -- по одному. Найти эти два числа за один проход по массиву с константными затратами памяти (то есть не зависящими от размера массива).

Не забывайте использовать тег <spoiler> для решений в комментариях!
Читать полностью »

Один из моих любимых развлекательных твиттеров – это @wacnt. Там появляются вопросы, на которые не может ответить математический поисковик Wolfram|Alpha. На некоторые, кстати, мне сумел дать ответ виртуальный ассистент Facebook M.

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

простое число, не большее 4000, получающееся самым широким при записи римскими цифрами шрифтом Times New Roman

Facebook M просто выдал самое большое из простых чисел, близких к 4000 – это 3989. Но это не обязательно так, ведь речь идёт о римской записи.

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

Для начала я составил список простых чисел, меньших 4000. Из-за лени я просто нагуглил их и вставил в скрипт.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js