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

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

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

Необходимо решить (превратить в "100") все комбинации, которые заканчиваются на трёхзнак "def", не дающий ни степень двойки, ни десятку. Такой всего один... и ещё один "странный", который даёт 2^18. Согласитесь, что 10^2^18 это как-то многовато... так что предлагаю решить оба варианта, тем более, что второй "странный" всё равно отфильтровывается моментально.

 

Итак, два трёхзнака "def" ->

 

676
786
  // (7!/8!)^-6 = 8^6 = 2^18

 

Фильтр, используются комбинации трёхзнаков, список которых находится вот здесь.

!xxx-def-filter.txt  !xxx-def-filter.xods

676:    (-"002"+6)! + 76 = ("010"-6)! + 76 = 100    not "002,010" = 19 штук.
786:    "002"*(7*8-6) = "007"+7+86  = 100            not "002,007" = пусто! нет таких.

 

К ручному обсчёту:


667676  676676  677676  678676  726676  737676  746676  757676  766676  767676
768676  776676  778676  786676  787676  788676  797676  856676  877676

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

Мне вот такой вариант близок по духу :)
856676      VV..14шт..VV( (8^-5)V(-66+76) ) = 100

  • Улыбнуло 1

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

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



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

    • E.K.
      Автор E.K.
      Восьмёрки. Комбинации "не 010", которые начинаются с цифры 8 - их всего 19 штук и выглядят они вот так:
       
      806    827    847    852    855    856    858    860    861    866
      867    870    871    876    877    878    880    881    887
       
      Фильтр-1:
      !8xx-xxx.txt  !8xx-xxx.xods
       
      806xxx        -80+6!/"004" = (V(8+0!)/6)V("010") = -8+(-0!+6)!-"012" = 100        not "004,010,012" = 38. => многовато, требуется фильтр второго уровня.
      827xxx-847xxx
                         V(V( (8+2)^(7+"001") )) = (8+2)^V(7-"003") = (8+2)^(7-"005") = 100    not "001,003,005" = 1.
      852xxx       8*(5^2)/"002" = [8*5/2*"005"] = -8+5!-2*"006" = [-8+5!-2-"010"] = 100    not "002,006" = пусто!
      855xxx                   8*(5*5)/"002" = -8-5+5!-"007" = 100     not "002,007" = пусто!
      856xxx                   -8+5!-6*"002" = -8+5!-6-"006" = 100    not "002,006" = пусто!
      858xxx                  (-8+58)*"002" = 85+8+"007" = 100        not "002,007" = пусто!
      860xxx-861xxx    - фильтр1 пустой -
      866xxx                  (8!/6!-6)*"002" = 86+6+"008" = 100       not "002,008" = 8.
      867xxx                  (8+6*7)*"002" = 86+7+"007" = 100        not "002,007" = пусто!
      870xxx-871xxx    - фильтр1 пустой -
      876xxx                  (8+7*6)*"002" = 87+6+"007" = 100        not "002,007" = пусто!
      877xxx                  87+7+"006" = 100                                    not "006" = 1.
      878xxx                  [87+8+"005"]                                            [not "005" = 76.] - многовато, включаем фильтр-2.
      880xxx-881xxx    - фильтр1 пустой -
      887xxx                  [88+7+"005"]                                            [not "005" = 76.] - многовато, включаем фильтр-2.
       
      Итого, к обработке:
       
      806xxx
      827xxx-847xxx
      860xxx-861xxx
      866xxx
      870xxx-871xxx
      877xxx
      878xxx
      880xxx-881xxx
      887xxx
    • E.K.
      Автор E.K.
      Трёхзнаки "abc" = "не 010", которые начинаются с "9", выглядят вот так:
       
      957  983  986
       
      Фильтр:
      !9xx-xxx-filter.txt  !9xx-xxx-filter.xods
      957xxx     95+7-"002" = -V(9)!+5!-7-"007" = 100                                                          not "002,007" = пусто!
      983xxx     98+3-"001" = (-V(9)! + 8!/(3!)!)*"002" = ((V(9)!)!-(8-3)!)/(3+"003") = 100    not "001,002,003" = пусто!
      986xxx     (-V(9)!+8!/6!)*"002" = 98+6/"003" = 9+86+"005" = 100                             not "002,003,005" = 4.
       
      К обсчёту:   986707  986717  986767  986787
    • 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.
      В "тройках" будет немного сложнее по сравнению с двойками, поскольку высчитывать конкретную "00n" из тысячи возможных вариантов - это несколько некомфортно.. Будем вынуждены внедрять предварительную оптимизацию и фильтрацию.
       
      Итак, работа проделана в отдельной ветке "Lib-123 решения" - там подсчитаны все оставшиеся после предварительной фильтрации комбинации и выявлены те, которые не дают "001", "002", "002^n,010", "003", ... "012".
    • 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".
×
×
  • Создать...