Кроль наивно думал, что сообразит по-быстрому для Фомуви сложную математическую задачу, взяв данные наобум, и освободится от назойливого инопланетянина на долгое время. Не тут-то было! Так что же случилось?
Всё просто: Фомуви стало скучно, и он решил поиграть с Кролем. А во что может поиграть наш логик? Уж точно не в любимые компьютерные игры Кроля!
— Фомуви, отстань! Я играю, мне некогда. Я близок к победе, а ты меня отвлекаешь, няп!
— Не ворчи! Эти все стрелялки и гонки ничему тебя важному не учат. Давай порешаем логические задачи, а?
— Не хочу я думать, няяяяп! Отойди. Сходи в полицию, посмотри там все нераскрытые дела, может и найдешь, чем пополнить свой багаж логических задач.
— Я хочу провести время со своим другом, а в полиции меня уже все знают. Я к тому, что часто там бываю. Ты плохо знаешь математику, может позанимаемся по этому предмету?
— Я отлично знаю математику, лучше тебя!
— Ой, кто бы говорил, Кроль!
— Вот… вот… если я придумаю тебе математическую головоломку, ты от меня отстанешь?
— На время её решения? Да!
— Тогда я сейчас такую сочиню, что неделю мне не будешь надоедать!
Конечно, эту историю рассказал мне Фомуви, смеялся. Кроль, чтобы инопланетянин отстал, нарисовал подобие кроссворда, только вместо букв вписал цифры и знаки сложения, вычитания, умножения. Затем сообщил, что надо решить кроссворд, используя только те цифры и знаки, что имеются в первом ряду. «Да-да, не только по горизонтали должны быть уравнения, но и по вертикали», — с умным видом произнес пушистый, дописывая цифры наобум.
Но логик сделал вид, что принял задачу, как есть, и удалился к себе в комнату. Просто насильно мил не будешь, правда? Лежа на кровати и выдумывая себе какое-нибудь интеллектуальное развлечение, он то и дело поглядывал на кролькин листок. И тут его осенило – задача вполне решаема!
Друзья, а вы сможете решить цифровой кроссворд? Желаю удачи всем участникам, но 5 фомувиков обещаю лишь самому быстрому.
Что я могу сказать? Отлично! Теперь я знаю два варианта решения этой кроссвордной задачи
Я знаю их как минимум 4 тысячи
И это не предел, при составлении макроса не тот тип переменной назначил, не рассчитал 
Если интересно, расскажу подробнее, что и как делал и прокомментирую код.
http://rghost.ru/56021921 — вот файлик с макросом и некоторыми этапами вычислений. Открывается в Microsoft Excel 2007 (делал там).
На третьем листе представлены возможные решения. Далеко не все
В данный момент пришлось с нуля запускать макрос нахождения всех возможных комбинаций. Так что через пару дней, когда он завершит свою работу (обсчёт миллиардов комбинаций в Excel без оптимизации кода — это вам не шутки), предоставлю, может быть, все комбинации
В ходе двухдневного запуска макроса выявилось несколько багов, в связи с чем файл по ссылке выше потерял свою актуальность
Да и у меня макрос для задачи в общем виде, а не с уже заданной первой строкой.
Кратко его состав:
Макрос для подбора вариантов с заданной первой строкой вот:
http://rghost.ru/56075477
Для запуска выбираем макрос «Подбор».
Уже в первые 5 минут выдаёт больше, чем два варианта
1 лист: таблица всевозможных комбинаций цифр и знаков с подсчётом получившихся значений.
2 лист: выборка из первого листа тех наборов цифр, которые соответствуют результатам по краю поля задачи.
3 лист: подбор возможных комбинаций из выборки с листа 2.
Изначально лист пуст, потому что это файл до запуска финального макроса по подбору вариантов.
Для ускорения подсчётов, убрал определение знаков между числами (по сути — нам важно только, чтобы числа совпадали по горизонтали и вертикали, а сами знаки между числами на цифры влиять не будут). Я их сделаю позже отдельным макросом для уже готовых вариантов наборов чисел с 3 листа, а пока можно вручную посмотреть на первом листе (взяв из получившихся вариантов последовательности чисел и посмотрев по таблице с каким набором знаков получится нужное нам число).
Где ты этому выучился? Вот это Да! Круто. Молодец!
Да ну, это же ерунда
Наверняка всё можно сделать не так коряво, как я.
Но там были сбои пару раз, так что они могут быть неправильными.
Тем более, в коде обнаружился ещё один баг (для общего случая, без первой строки).
Общий макрос уже больше недели работает и комбинаций уже четверть миллиона
А для данного случая (в задаче) у меня макрос 5 часов где-то работал, пока все комбинации перебрал. Не помню уже их точное количество, но несколько тысяч наберётся.
И если не забуду, всё же сделаю нормальный вывод готового решения.
А почему так долго? Какая конфигурация у компьютера?
Да тут не в конфигурации дело же. Обсчёт всё равно будет делаться только одним ядром процессора. И все остальные параметры абсолютно не важны, только количество вычислительных блоков ядра.
И точно не помню, Core i5 или i7. Ivy Bridge который, старшая модель в линейке, с индексом k.
Да и речь идёт об обсчёте 74 887 557 306 120 комбинаций. Ну это по-чёрному прикидка, поскольку многие комбинации уже на первом условии срезаются и обсчёт идёт дальше, что значительно ускоряет дело.
Мне этого не понять
Пробовал я как-то программировать с нуля. Усидчивости не хватает разобраться.