TGViewer
Компьютерная математика Weekly Компьютерная математика Weekly @compmathweekly · 1.49K subscribers
Post #115 1.51K
на мат. кружке еще бывает, что не сказано, на какие именно фигуры резать, просто предлагают, скажем, разрезать квадрат 4×4 без угловой клетки на 3 равные фигуры

как такую задачу поставить SAT-солверу, научился по сути у Феди Куянова


кроме переменных со смыслом «такая-то клетка поля принадлежит такой-то фигуре» заведем, грубо говоря, по переменной для каждого потенциально возможного движения

и напишем условия
1) что каждая клетка поля принадлежит ровно одной фигуре;
2) что если данное движение выбрано (соотв. ему переменная True), то оно переводит первую фигуру во вторую;
2') что хоть одно движение выбрано

(если режем не на две, а на K частей, то для каждого движения будет не одна а (K-1) переменная со смыслом «это движение переводит фигуру №0 в фигуру №l»)

как конкретно закодировать, что движение s переводит одну фигуру в другую? грубо говоря, для каждой клетки c надо добавить условие [-s,-c_0,s(c)_l] («если уж выбрано движение s, а клетка c выбрана в фигуру №0, то клетка s(c) должна быть выбрана в фигуру №l) и условие [-s,-c_l,s^{-1}(c)_0] (чтобы было не просто вложение, а биекция)

остается еще техническая возня — потому что, скажем, символ s выше используется в трех разных (с т.з. питона) смыслах (перебираю я наборы чисел — на сколько, грубо говоря, сдвигать-поворачиать; по каждому набору строится отображение, просто так написать в коде s(c) нельзя; а сат-солверу в списке условий нужно отдавать ни то и ни другое, а отдельно заведенный номер переменной…), или, скажем, я замел под ковер то, что s(c) может вылезти за границы фигуры и тогда никакой переменной s(c)_l вообще нет (контрольный вопрос: какое условие надо тогда написать : ) — но всё ж логика не такая сложная… и даже код вышел не длинный


на кружке объясняю, что при решении задач на разрезание на равные части полезно бывает думать, какое конкретно движение их совмещает — и нравится, что та же математика помогает при общении на эти темы с компьютером
  • 👍 13
  • ❤ 6
More from @compmathweekly
  1. Sep 20, 2026краткий апдейт на тему t.me/compmathweekly/141
  2. Aug 15, 2026just for fun на каникулах: purplesyringa.moe/blog/log-is-non-monotonic-in-php-and-lua/ — р…
  3. Aug 6, 2026история про Rowland'а и Sinkhorn limit немного повисла в воздухе — вернемся ненадолго матр…
  4. Jul 25, 2026будем переходить от многоугольника к новому многоугольнику с вершинами в серединах сторон…
  5. Jul 21, 2026во время ЛШСМ на компьютерные развлечения не хватает энергии, так что вот пока вместо моег…
  6. Jul 16, 2026упомянутый в прошлом посте Rowland (относительно) недавно рассказывал, оказывается, на сем…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →