Перейти к содержанию

Рекомендуемые сообщения

Опубликовано

Даже быстрым взлядом зыркнуть в наши изначальные ... потуги - сразу видно, что можно было делать аккуратней, уверенней, оптимальней и быстрее. Да плюс "четверознаки" - это же тоже интересно! И требуют повторной дистилляции.

 

Возражений нет?

 

UPD: Процедура решения следующая. Все четырёхзнаки "abcd" делятся на два двузнака: "ab"+"cd". Далее поочерёдно перебираем все "a" (традиционно с конца к началу - от '9' до '0'), строим фильтры для всех "ab-xx", отсеиваем отфильтрованное (те комбинации, которые заведомо дают '100') - остальное решается вручную (или не решается). Иногда фильтры дают хороший отсев и на перебор остаётся всего 14 (или даже меньше) вариантов - но часто придётся считать всю сотню комбинаций "xx" от '00' до '99'.

 

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

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
  • Похожий контент

    • E.K.
      Автор E.K.
      Процесс решения для шестизнаков следующий. Все шестизнаки "abcdef" делятся на два трёхзнака: "abc"+"def". Если "abc"="010", а "def" = "002"^n или "010", то все такие комбинации отфильтровываются, так как очевидно дают сотню:
       
      "010"*"010" = "010"^"002" = V(...V("010"^"002"^n)...) = 100
       
      Таким образом, на вторую фильтрацию и затем на "ручную обработку" отправляются все "abc", которые "не-010" (таких 205 штук) и "def", которые "не-002^n,010" - а такая вообще только одна осталась.
       
      Само собой, при решении данной задачи будет применяться вся мощь наработанного арифметического арсенала, посему очевидно, что по сравнению с предыдущими решениями процесс должен быть заметно более эффективным (вот любопытно, а можно ли как-то замерить степень этой "более эффективности"?)
    • E.K.
      Автор E.K.
      "Вторая прогонка" (или уже третья? - вроде бы "проход номер два" вон там уже делали) - более тщательное решение пятизнаков "abcde".
       
      В первый раз стояла дилемма - как решать? Есть два варианта: 1) перебирать трёхзнаки "abc" и аналогично решению шестизнаков разбить задачу на два блока: "abc = 10" и "abc != 10" - и 2) перебирать двузнаки "ab" и решать задачу блоками: "ab = 10" и "ab != 10".
       
      Как показала практика, метод решения сочетает оба метода. Если фильтр по "ab-xxx" даёт приемлимый результат (не слишком много комбинаций для ручного обсчёта) - то считаем оставшиеся "xxx". Если же фильтр работает недостаточно хорошо, то "проваливаемся" в "abc-xx" - и строим фильтры для оставшихся "abc". Например,
       
      90xxx-91xxx   9+1 = 10               not "002^n,010" = 1  -- всего один вариант для обсчёта, его и оставляем.
      92xxx              92+"008" = 100     not "008" = 86  -- слишком много, проваливаемся в трёхзнаки:
        
        920xx-921xx, 922xx-924xx, 923xx-926xx-929xx, 925xx, 927xx, 928xx   -- и для них строим фильтры "второго уровня".
       
      Само собой, при возможности считаем комбинации "0-1", "2-4", "3-6-9" совместно (например, 920xx-921xx, 922xx-924xx, 923xx-926xx-929xx). Также необходимо подсматривать в решения пятизнаков при первом проходе и в решения шестизнаков, начинающихся с нуля.
       
      Также хочу заметить, что фильтр "not 002^n,010 = 1" -- оставляет только одну комбинацию. Однако, решение для трёхнака 786 хоть и выглядит изысканно: (7!/8!)^-6 = 262144 = 2^18 -- но его применение приводит к появлению монструозной конструкции о семнадцати корнях из числа 10^262144.

       
      Технически это допустимо, но всё же в качестве бонус-трека в случае срабатывания фильтра "not 002^n,010" считать и эту комбинацию тоже. К тому же, она достаточно легко решается.
       
      Вроде всё на этом. Замечания/пожелания/исправления есть?
    • E.K.
      Автор E.K.
      Решение трёхзнаков = тупо "в лоб", никаких особых методик и приёмов здесь не придумано, да и вроде и быть не может. Всё уже приведено в изначальной ветке решений - здесь же просто тоже самое положу в более красивом виде. Хотя... а вдруг увидится что-то ранее пропущенное?
       
      0xx-1xx =>
       
      Решено: 5 + 9 = 14.
      Не решено: 95 + 91 = 186.
      0xx-1xx.xods

    • E.K.
      Автор E.K.
      Здесь в этой теме представлены вычисления трёхзнаков "не-xxx" - таких трёхзнаков, из которых не получаются "001", "002", "002^n", "003", ... "012" (более старшие трёхзнаки не потребуются). Само собой, эта работа уже была проделана в изначальной ветке "lib - 123", однако не все решения там оптимальны, да и повторный проход по теме может обнаружить потерянные комбинации (как это только что произошло с двузнаками).
       
      Чтобы каждый раз не перебирать всю тысячу комбинаций, то поиск нужных вариантов будет строиться следующим образом: сначала подбирается фильтр, отсеивающий заведомо решабельные комбинации, а затем вручную работаем с оставшимися - и в некоторых случаях их будет совсем немного.
       
      Итак, предстоит перебрать все трёхзнаки и выдать списки:
       
      не-001                     не-006
      не-002                     не-007
      не-002^n                 не-008
      не-002^n-010        не-009
      не-003                     не-010
      не-004                     не-011
      не-005                     не-012
       
      Ну, поехали...
       
      UPD:  Отдельно стоящая "не-002^n" не нужна, она всегда вместе с "не-010" идёт. То есть, требуется подсчитать "не-002^n,010".
    • E.K.
      Автор E.K.
      Дамы и господа, мальчики и девочки -
       
      Разрешите представить вам труд многомесячной работы творческого арифметического коллектива по теме "как сложить ровно 100 из того что было". Интереснейшее было цифровое путешествие, весьма сложная задачка - и не уверен, что в будущем получится придумать похожие по сложности и трудоёмкости прочие арифметические забавы. Что там было и как мы учились "карательной арифметики" - эти упражнения все достаточно тщательно расписаны уже ранее, достаточно потыкать по ссылкам на нашем фанклуб-форуме.
       
      Здесь же и сразу хочу сформулировать эту архисложную арифметическую задачку:
       
      Из каких десятичных наборов цифр при помощи простейших арифметических операций: плюс, минус, умножить, разделить, степень и корень (включая дробные и отрицательные степени и корни), да плюс факториал - из каких десятичных комбинаций невозможно получить ровно "100" ?  Переставлять цифры запрещено, склеивать вместе - можно.
       
      Например-1:
       
      0210 = 10^2  -- так нельзя! Двойку переставлять назад не позволяется.
       
      0210:   (0!/2)√(10) = (1/2)√(10) = 10^2 = 100  -- а вот так можно. // кстати, там был корень 1/2-степени - это допускается.
       
      Внимание! В дальнейшем знак корня '√' заменяю на символ 'V' ради уменьшения энтропии вычислений.
       
      Например-2:  отличный пример как можно вычислять в рамках условия задачки:
       
      17206:    1/7*(-20+6!) = 1/7*(-20+720) = 1/7*700 =100
       
      Например-3:
       
      Простые комбинации.. Ну, например, 12345 и обратно - пример с конкатенациями (слепкой) цифр и факториалами, а второй вообще какой-то очень простой..
       
      12345:    12/3-4!+5! = 100
      54321:    5*4*(3+2)*1 = 100
       
      Например-4:  Да просто возьмите номерной знак своего автомобиля (или рядом стоящего транспортного средства) - и попробуйте из этих цифр в условиях этой задачки получить ровно 100. Склеивать цифры можно, переставлять нельзя!
×
×
  • Создать...