Цифровой кроссворд Кроля

Кроль наивно думал, что сообразит по-быстрому для Фомуви сложную математическую задачу, взяв данные наобум, и освободится от назойливого инопланетянина на долгое время. Не тут-то было! Так что же случилось?

Цифровой кроссворд Кроля задача

Всё просто: Фомуви стало скучно, и он решил поиграть с Кролем. А во что может поиграть наш логик? Уж точно не в любимые компьютерные игры Кроля!

— Фомуви, отстань! Я играю, мне некогда. Я близок к победе, а ты меня отвлекаешь, няп!

— Не ворчи! Эти все стрелялки и гонки ничему тебя важному не учат. Давай порешаем логические задачи, а?

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

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

— Я отлично знаю математику, лучше тебя!

— Ой, кто бы говорил, Кроль!

— Вот… вот… если я придумаю тебе математическую головоломку, ты от меня отстанешь?

— На время её решения? Да!

— Тогда я сейчас такую сочиню, что неделю мне не будешь надоедать!

Конечно, эту историю рассказал мне Фомуви, смеялся. Кроль, чтобы инопланетянин отстал, нарисовал подобие кроссворда, только вместо букв вписал цифры и знаки сложения, вычитания, умножения. Затем сообщил, что надо решить кроссворд, используя только те цифры и знаки, что имеются в первом ряду. «Да-да, не только по горизонтали должны быть уравнения, но и по вертикали», — с умным видом произнес пушистый, дописывая цифры наобум.

Цифровой кроссворд Кроля 2

Но логик сделал вид, что принял задачу, как есть, и удалился к себе в комнату. Просто насильно мил не будешь, правда? Лежа на кровати и выдумывая себе какое-нибудь интеллектуальное развлечение, он то и дело поглядывал на кролькин листок. И тут его осенило – задача вполне решаема!

Друзья, а вы сможете решить цифровой кроссворд? Желаю удачи всем участникам, но 5 фомувиков обещаю лишь самому быстрому.

Оставить комментарий

Для отправки комментария вам необходимо авторизоваться.

  1. Fasal

  2. admin

    Что я могу сказать? Отлично! Теперь я знаю два варианта решения этой кроссвордной задачи :-)

  3. LoadRunner

    Я знаю их как минимум 4 тысячи :) И это не предел, при составлении макроса не тот тип переменной назначил, не рассчитал :)
    http://rghost.ru/56021921 — вот файлик с макросом и некоторыми этапами вычислений. Открывается в Microsoft Excel 2007 (делал там).
    На третьем листе представлены возможные решения. Далеко не все :) Если интересно, расскажу подробнее, что и как делал и прокомментирую код.

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

  4. LoadRunner

    В ходе двухдневного запуска макроса выявилось несколько багов, в связи с чем файл по ссылке выше потерял свою актуальность :) Да и у меня макрос для задачи в общем виде, а не с уже заданной первой строкой.
    Макрос для подбора вариантов с заданной первой строкой вот:
    http://rghost.ru/56075477
    Для запуска выбираем макрос «Подбор».
    Уже в первые 5 минут выдаёт больше, чем два варианта ;) Кратко его состав:
    1 лист: таблица всевозможных комбинаций цифр и знаков с подсчётом получившихся значений.
    2 лист: выборка из первого листа тех наборов цифр, которые соответствуют результатам по краю поля задачи.
    3 лист: подбор возможных комбинаций из выборки с листа 2.
    Изначально лист пуст, потому что это файл до запуска финального макроса по подбору вариантов.
    Для ускорения подсчётов, убрал определение знаков между числами (по сути — нам важно только, чтобы числа совпадали по горизонтали и вертикали, а сами знаки между числами на цифры влиять не будут). Я их сделаю позже отдельным макросом для уже готовых вариантов наборов чисел с 3 листа, а пока можно вручную посмотреть на первом листе (взяв из получившихся вариантов последовательности чисел и посмотрев по таблице с каким набором знаков получится нужное нам число).

  5. admin

    Где ты этому выучился? Вот это Да! Круто. Молодец!

  6. LoadRunner

    Да ну, это же ерунда :) Наверняка всё можно сделать не так коряво, как я.
    Тем более, в коде обнаружился ещё один баг (для общего случая, без первой строки).
    Общий макрос уже больше недели работает и комбинаций уже четверть миллиона :) Но там были сбои пару раз, так что они могут быть неправильными.

    А для данного случая (в задаче) у меня макрос 5 часов где-то работал, пока все комбинации перебрал. Не помню уже их точное количество, но несколько тысяч наберётся.

    И если не забуду, всё же сделаю нормальный вывод готового решения.

  7. admin

    А почему так долго? Какая конфигурация у компьютера?

  8. LoadRunner

    Да тут не в конфигурации дело же. Обсчёт всё равно будет делаться только одним ядром процессора. И все остальные параметры абсолютно не важны, только количество вычислительных блоков ядра.
    И точно не помню, Core i5 или i7. Ivy Bridge который, старшая модель в линейке, с индексом k.

    Да и речь идёт об обсчёте 74 887 557 306 120 комбинаций. Ну это по-чёрному прикидка, поскольку многие комбинации уже на первом условии срезаются и обсчёт идёт дальше, что значительно ускоряет дело.

  9. admin

    Мне этого не понять :-) Пробовал я как-то программировать с нуля. Усидчивости не хватает разобраться.

Подпишись на обновления