Рубрика «логические задачи»

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

Загадка

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

  • Для начала, представим подозреваемых. Есть три мужчины (Джордж, Джон, Роберт) и три женщины (Барбара, Кристина, Иоланда). Каждый человек находится в отдельной комнате (ванная, столовая, кухня, гостиная, кладовая, кабинет). В каждой комнате найдено подозрительное оружие (сумка, огнестрельное оружие, газ, нож, яд, верёвка). Вопрос: кого нашли на кухне?
  • Подсказка 1. При мужчине на кухне нет ни верёвки, ни ножа, ни сумки. Оружие не является огнестрельным. Вопрос: какое оружие найдено на кухне?

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

Японские кроссворды (также нонограммы) — логические головоломки, в которых зашифровано пиксельное изображение. Разгадывать кроссворд нужно с помощью чисел, расположенных слева от строк и сверху от столбцов.

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

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

Решение цветных японских кроссвордов со скоростью света - 1

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

На Хабре было несколько статей про генерацию кроссвордов. В одной из них «Самый сложный кроссворд, составленный компьютером» говорилось про очень сложный кроссворд, составленный компьютером, которому «пришлось немного помочь» вручную. Во второй статье «Алгоритм формирования кроссвордов» рассказывается про алгоритм, созданный автором для составления кроссвордов, и отмечается, что этот «самый сложный кроссворд» остался непокоренным и говорится, что «может быть эта непокоренная вершина вдохновит кого-нибудь на новый штурм!». Что же, можно принять вызов. Что из этого получилось, смотрите под катом.

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

Однажды попалась мне игра пентамино, где было необходимо уложить 13 фигурок в квадрат 8 на 8. После некоторого периода времени, втечение которого я безуспешно пытался решить эту задачу, я решил, что необходимо написать программу, которая бы делала это за меня. Для этого необходимо было выбрать алгоритм решения. Первое, что приходит на ум — это обычный алгоритм ветвей и границ, когда фигурки укладываются одна за другой примыкая друг к другу (алгоритм с танцующими ссылками здесь не подходит, поскольку фигурки разные). Для ускорения этого алгоритма обычно используются различные эвристики, например, предпочтение отдается ветвлению с наименьшим количеством вариантов. Можно придумать и реализовать и другие эвристики в этом алгоритме, но тут я подумал, что множество различных ухищрений для ускорения решения подобных задач уже реализовано в SAT солверах. Поэтому, необходимо перевести задачу на соответствующий математический язык и воспользоваться каким-либа SAT солвером. О том, как это было реализовано и какие получились результаты можно почитать под катом.
Читать полностью »

Современные веб-фреймворки в основном используются для написания корпоративных приложений, но они давно уже достаточно гибки и функциональны и для других областей. Попробуем написать логическую казуальную игру на ASP.NET Core 2. Рассмотрим процесс создания игрового проекта, а так же новшества фреймворка и сопутствующих инструментов.

ДЕМО
Исходники
Читать полностью »

image

У каждого есть свои методы, касающиеся общего подхода к устранению проблем, существуют распространенные ловушки, которых, кажется, не удалось миновать никому. Наш крайне шаблонный образ мыслей был оптимизирован для решения определенных проблем в ходе эволюции, и это обошлось нам недешево. Конечно, нет шаблонов, подходящих под все жизненные ситуации. Но Дэвид Баптиста раскрывает нам сущность трех наиболее распространенных ловушек, чтобы мы смогли распознать их в момент неизбежной встречи. И повести себя правильно, то есть – принять правильное решение!Читать полностью »

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

Итак, задача состоит в том, чтобы получить случайно перемешанный кубик 3×3×3, ознакомиться с его конфигурацией и вращением привести каждую из граней к одному цвету. Делать это не нужно вслепую или в темноте, движения никак не ограничены. Нужна лишь скорость. Допустимые модели кубиков, порядок перемешивания и прочие детали регулируются регистрирующей результат организацией. Одно остаётся неизменным: максимальное оптимальное число ходов никогда не может быть больше 20. Это так называемое число Бога.
Читать полностью »

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

Джей Флэтлэнд и Пол Роуз создали собственную версию робота для решения головоломки. Она в состоянии решить её за приблизительно 1,1 секунды, что даёт изобретателям повод претендовать на рекорд.
Читать полностью »


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