Отвечаю сразу на два поста.
Я уже давно паттернами не занимался. Насколько помню, полоса стартует с 4-й позиции.
Так что предельно просто вроде: отступаю после 58-й цифры один пробел, далее идёт поле из 31-й позиции, затем ещё один пробел и валидс.
Если находится более короткое число, то автоматически выравниваю доп. пробелами. Нет, все считают как бы с нуля. Вот смотрите, ещё приближения, здесь количество цифр 55-58:
Код:
257739783439350792114548487497164836165673983702307772180 111111 11111 111 111111 1 21
676716946534266976790109697984997204296934444259304685780 11 1111 1111111 11111111 21
852110944248859184364418742665163316568017721489189738580 11 111 11111111 11111111 21
1144939263432728386023686576415911494059906730776776962580 11 11 11111111 1 11111111 21
1677483986662264070424182764635745685154668169911515186580 111111 111111111 1111 1 1 21
3069335153022426268138651123113180304782091964609948180 111111111111 1 111111 1 20
18035948932736302564690043229592666351098301842059204180 1111111111111 1111111 20
21038717766507463123737639739866118499397097254024567380 11 1111 111 1111 1111111 20
266369483263167275043123520918979945973739278977902388180 11 1111111111 11111111 20
412131261310423269745657852211011464579720932024306319380 111111 11111 111 11111 1 20
513564802663468576390977847581296776356248568639160162580 111 1111111111111 111 1 20
544210915824048590382875060882794881139917346384766218580 111 11 11111 1 111111 111 20
639117687446245606619564898223897602355603682727071189780 1111 11 1111111111111 1 20
702034211175932903485536529652189189568832057648636325780 111 1 111111 1111111111 20
770932123636705078624405439284610791558927320784267565780 1 1111111111 11 1 111111 20
936086332337617474897664681629371726083128093951547948180 1 111111111111 11111 11 20
674373298042083373669054875783800142883920548696788018580 11 111111111 1 11111 111 20
664332516589934376301683885741329983536611857893069869780 11111 111111111 1 11111 20
703584151261305137731241761210194243400529452131705850580 1 1111 111111 111 111111 20
280748942456270879103097467061311126643198929132365597780 11111111 1111 1 11 11111 20
804582766776615590561398011686359883664755833691776013780 1111 11 111 111111 11111 20
109567602438309980462798053929867516443830020827123492180 11 11 11111111 1 1111111 20
712333950733457393758320520968283292360720001937575706580 111111111111111 1111 1 20
376230141889439612601765631939014962021331451492536778580 11111 1111111111111 11 20
1121075025003489116814257550469493799546648565241794172180 11 111 1111111111 11111 20
1123239897400871830066038518818312880378054584106663631380 1 111111 11111 111 11111 20
Да, на тестах я иногда пробовал пониже считать. Не до 1e54, а до 1e57. И уже при счёте до 1e57 временные затраты не линейны. А до 1e58 и до 1e59 — линейны. Если чисто по времени смотреть, то выгоднее считать до 1e58 и выше.
Так что эта 54-значная находка — большущая редкость.
Нет, единичка на 25-й позиции полосы (на 28-й позиции поля) часто появляется не потому что паттерн под 25-ку заточен, а потому что туда 28 попадает, то есть и квадрат и простое уже есть.
Начнём зеркальные паттерны считать (уже сегодня) — 1-ка должна будет часто появляться уже не на 28-й позиции поля, а на 4-й, то есть слева от полосы, тоже вплотную к ней.