2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1 ... 150, 151, 152, 153, 154, 155, 156 ... 215  След.
 
 Re: Пентадекатлон мечты
Сообщение03.11.2022, 23:14 
Аватара пользователя


11/12/16
13850
уездный город Н
Huz
Thanks for the answer!

As Dmitriy40 wrote above, he counted all the patterns containing $7^5$ and $11^5$ (58 items). There are small intersections with the ranges that are currently being worked on. Below is a complete list in your notation.

(Оффтоп)

Код:
b1032:
b1036:
b107:
b1081:
b1085:
b1098:
b1102:
b1140:
b1143:
b1181:
b1185:
b1189:
b1487:
b1491:
b153:
b1534:
b1564:
b157:
b1609:
b1613:
b162:
b1857:
b1861:
b191:
b1930:
b1938:
b195:
b1980:
b1984:
b200:
b2004:
b2009:
b2013:
b2042:
b2047:
b2051:
b2114:
b2122:
b2158:
b2164:
b238:
b24:
b242:
b28:
b281:
b289:
b546:
b550:
b575:
b600:
b632:
b636:
b65:
b72:
b977:
b981:
b984:
b99:


-- 03.11.2022, 23:15 --

Dmitriy40 в сообщении #1568860 писал(а):
Так что это не мистика, а невнимательность. То Ваша, то моя. :-)

Вот и хорошо, что проверили.

-- 03.11.2022, 23:20 --

Huz
EUgeneUS в сообщении #1568863 писал(а):
As Dmitriy40 wrote above, he counted all the patterns containing $7^5$ and $7^5$ (58 items).


Now Dmitriy40 has counted all the patterns containing $7^2$ and $11^5$ (96 items). Below is a complete list in your notation

(Оффтоп)

Код:
b1021:
b1025:
b1059:
b1062:
b1066:
b1071:
b1076:
b1088:
b1093:
b1117:
b1120:
b1123:
b1129:
b1132:
b1168:
b1172:
b1177:
b122:
b126:
b132:
b14:
b140:
b145:
b1477:
b1482:
b150:
b1525:
b1556:
b1588:
b1591:
b1599:
b1604:
b1628:
b1631:
b1634:
b178:
b182:
b1837:
b1840:
b1847:
b1852:
b1876:
b1879:
b188:
b1882:
b19:
b1918:
b1927:
b1954:
b1959:
b1964:
b1968:
b1972:
b1991:
b1997:
b2:
b2001:
b2029:
b2034:
b2039:
b2088:
b2094:
b2098:
b2101:
b2110:
b2147:
b2153:
b228:
b232:
b256:
b261:
b266:
b269:
b278:
b45:
b49:
b5:
b524:
b527:
b531:
b536:
b54:
b541:
b558:
b562:
b567:
b591:
b61:
b622:
b627:
b87:
b9:
b96:
b965:
b970:
b973:

 Профиль  
                  
 
 Re: Пентадекатлон мечты
Сообщение04.11.2022, 02:51 
Заслуженный участник


20/08/14
11766
Россия, Москва
Кто там хотел очень посчитать, выложил в облако (папка M12n11 x32 SSE) x32 SSE версию всех 1044 ускорителей, без сокращений. Пример gp файла прилагается. Делить по потокам несложно, достаточно скопировать приложенный файл под новыми именами (сколько потоков будет), поправить в них номер потока (и стартовую точку), поделить общий список паттернов на кусочки (как угодно, например любым текстовым редактором умеющим сохранять не Unicode текст, UTF8 можно) и можно запускать. Уже мною посчитанные паттерны в списке закомментированы. Подробнее в приложенном (в том числе отдельно от архива) readme.

Но ИМХО нет смысла по ним считать, слишком медленно. Разве что лишь паттерны с самыми большими шагами/модулями. Надо делать компиляцию ускорителей на лету по методу Hugo (их будут десятки тысяч, но в каждый момент времени лишь один, который и работает), как будет время займусь, сейчас работы привалило.

 Профиль  
                  
 
 Re: Пентадекатлон мечты
Сообщение04.11.2022, 09:59 
Аватара пользователя


11/12/16
13850
уездный город Н
Dmitriy40
Спасибо!

Несколько вопросов:
1. Скажите, пожалуйста, какая у Вас система идентификации паттернов?
2. По перекрывающимся паттернам. На примере. Вот пять паттернов, которые с одним "основным" идентификатором (7104201241), но разным "дополнительным" (от 8 до 4)
Код:
/*         14642258400,          7104201241*/ v=[     1,     2,     3,    28,     5,    18,   121,    32,     3,    50, 16807,    12,     1,     2,    45]; z=[1,2,2,6,2,6,3,6,2,6,6,0,0,0,0]; n=5; pp=Mod(7104201241,14642258400);\\@LCM14642258400-7104201241-8
/*         14642258400,          7104201241*/ v=[     1,     2,     3,    28,     5,    18,   121,    32,     3,    50, 16807,    12,     1,     2,    45]; z=[0,2,2,6,2,6,3,6,2,6,6,6,0,0,0]; n=6; pp=Mod(7104201241,14642258400);\\@LCM14642258400-7104201241-7
/*         14642258400,          7104201241*/ v=[     1,     2,     3,    28,     5,    18,   121,    32,     3,    50, 16807,    12,     1,     2,    45]; z=[0,0,2,6,2,6,3,6,2,6,6,6,1,0,0]; n=6; pp=Mod(7104201241,14642258400);\\@LCM14642258400-7104201241-6
/*         14642258400,          7104201241*/ v=[     1,     2,     3,    28,     5,    18,   121,    32,     3,    50, 16807,    12,     1,     2,    45]; z=[0,0,0,6,2,6,3,6,2,6,6,6,1,2,0]; n=6; pp=Mod(7104201241,14642258400);\\@LCM14642258400-7104201241-5
/*         14642258400,          7104201241*/ v=[     1,     2,     3,    28,     5,    18,   121,    32,     3,    50, 16807,    12,     1,     2,    45]; z=[0,0,0,0,2,6,3,6,2,6,6,6,1,2,6]; n=6; pp=Mod(7104201241,14642258400);\\@LCM14642258400-7104201241-4

Правильно ли понимаю, что посчитав верхний паттерн с 5-ю проверяемыми числами, мы сразу проверим и следующие три? А последний, пятый, нужно считать отдельно?
3. Правильно ли понимаю, что Ваши планы в силе, и у Вас уже считаются все паттерны с $11^5$, а потом Вы запустите паттерны с $7^5$ и $11^2$? Это чтобы одно и тоже не считать.

 Профиль  
                  
 
 Re: Пентадекатлон мечты
Сообщение04.11.2022, 11:04 
Аватара пользователя


11/12/16
13850
уездный город Н
Пробный запуск (до $10^21$) пяти перекрывающихся паттернов.

Запускались эти паттерны:
Код:
/*         14642258400,         12378473145*/ v=[    45,     2,     1,    12, 16807,    50,   363,    32,     1,    18,     5,    28,     3,     2,     1]; z=[6,2,1,6,6,6,6,6,1,6,2,0,0,0,0]; n=7; pp=Mod(12378473145,14642258400);\\@LCM14642258400-12378473145-8
/*         14642258400,         12378473145*/ v=[    45,     2,     1,    12, 16807,    50,   363,    32,     1,    18,     5,    28,     3,     2,     1]; z=[0,2,1,6,6,6,6,6,1,6,2,6,0,0,0]; n=7; pp=Mod(12378473145,14642258400);\\@LCM14642258400-12378473145-7
/*         14642258400,         12378473145*/ v=[    45,     2,     1,    12, 16807,    50,   363,    32,     1,    18,     5,    28,     3,     2,     1]; z=[0,0,1,6,6,6,6,6,1,6,2,6,2,0,0]; n=7; pp=Mod(12378473145,14642258400);\\@LCM14642258400-12378473145-6
/*         14642258400,         12378473145*/ v=[    45,     2,     1,    12, 16807,    50,   363,    32,     1,    18,     5,    28,     3,     2,     1]; z=[0,0,0,6,6,6,6,6,1,6,2,6,2,2,0]; n=7; pp=Mod(12378473145,14642258400);\\@LCM14642258400-12378473145-5
/*         14642258400,         12378473145*/ v=[    45,     2,     1,    12, 16807,    50,   363,    32,     1,    18,     5,    28,     3,     2,     1]; z=[0,0,0,0,6,6,6,6,1,6,2,6,2,2,1]; n=6; pp=Mod(12378473145,14642258400);\\@LCM14642258400-12378473145-4


Log:

(Оффтоп)

Код:
LCM14642258400-12378473145-8:11671398696146496345: 12, 16,  8, 12, 12, 12, 12, 12, 12, 12,  8,192, 64,  8,  8,  valids=8, maxlen=7
LCM14642258400-12378473145-8:123095096429160624345: 12, 32,  4, 12, 12, 12, 12, 12, 12, 12, 16, 24,  8,  8,  4,  valids=8, maxlen=7
LCM14642258400-12378473145-8:201139545963018077145: 12, 64,  8, 12, 12, 12, 12, 12, 12, 12, 32, 48,  4, 16, 32,  valids=8, maxlen=7
LCM14642258400-12378473145-8:219517520002841875545: 12, 32, 24, 12, 12, 12, 12, 12, 12, 12, 16, 12,  4, 64, 16,  valids=9, maxlen=7
LCM14642258400-12378473145-8:315184951161384072345: 12, 32,  8, 12, 12, 12, 12, 12, 12, 12,  4, 48, 32, 16, 16,  valids=8, maxlen=7
LCM14642258400-12378473145-8:572488061216892389145: 12, 16, 16, 12, 12, 12, 12, 12, 12, 12,  4, 72, 32, 64,  2,  valids=8, maxlen=7
LCM14642258400-12378473145-8:946265320992363201945: 12, 16, 16, 12, 12, 12, 12, 12, 12, 12, 32, 24, 16, 32,  8,  valids=8, maxlen=7
LCM14642258400-12378473145-8: end, time: 97.252s
LCM14642258400-12378473145-7:139436300727550795545: 24,  8,  4, 12, 12, 12, 12, 12, 12, 12, 64, 12, 48, 16,  4,  valids=8, maxlen=7
LCM14642258400-12378473145-7:219517520002841875545: 12, 32, 24, 12, 12, 12, 12, 12, 12, 12, 16, 12,  4, 64, 16,  valids=9, maxlen=7
LCM14642258400-12378473145-7:866255046006773083545: 48, 64,  4, 12, 12, 12, 12, 12, 12, 12, 64, 12,128, 16,  4,  valids=8, maxlen=7
LCM14642258400-12378473145-7: end, time: 104.481s
LCM14642258400-12378473145-6:139436300727550795545: 24,  8,  4, 12, 12, 12, 12, 12, 12, 12, 64, 12, 48, 16,  4,  valids=8, maxlen=7
LCM14642258400-12378473145-6:219517520002841875545: 12, 32, 24, 12, 12, 12, 12, 12, 12, 12, 16, 12,  4, 64, 16,  valids=9, maxlen=7
LCM14642258400-12378473145-6:866255046006773083545: 48, 64,  4, 12, 12, 12, 12, 12, 12, 12, 64, 12,128, 16,  4,  valids=8, maxlen=7
LCM14642258400-12378473145-6: end, time: 104.768s
LCM14642258400-12378473145-5:139436300727550795545: 24,  8,  4, 12, 12, 12, 12, 12, 12, 12, 64, 12, 48, 16,  4,  valids=8, maxlen=7
LCM14642258400-12378473145-5:219517520002841875545: 12, 32, 24, 12, 12, 12, 12, 12, 12, 12, 16, 12,  4, 64, 16,  valids=9, maxlen=7
LCM14642258400-12378473145-5:866255046006773083545: 48, 64,  4, 12, 12, 12, 12, 12, 12, 12, 64, 12,128, 16,  4,  valids=8, maxlen=7
LCM14642258400-12378473145-5: end, time: 104.621s
LCM14642258400-12378473145-4:4213248911256753945: 48,  4, 12, 48, 12, 12, 12, 12, 12, 12, 32, 12, 32, 16,  2,  valids=8, maxlen=6
LCM14642258400-12378473145-4:23412101224195637145: 12, 32,  8, 24, 12, 12, 12, 12, 12, 12,  8, 12,  4, 16,  4,  valids=8, maxlen=6
LCM14642258400-12378473145-4:46444128429567437145: 12, 16,  4, 96, 12, 12, 12, 12, 12, 12, 64, 12, 32, 16, 16,  valids=8, maxlen=6
LCM14642258400-12378473145-4:126535643965258296345: 24, 32,  4, 48, 12, 12, 12, 12, 12, 12, 32, 12,  8, 16, 12,  valids=8, maxlen=6
LCM14642258400-12378473145-4:139436300727550795545: 24,  8,  4, 12, 12, 12, 12, 12, 12, 12, 64, 12, 48, 16,  4,  valids=8, maxlen=7
LCM14642258400-12378473145-4:174182912303266219545: 12, 32, 32, 96, 12, 12, 12, 12, 12, 12, 32, 12, 32,  8,  2,  valids=8, maxlen=6
LCM14642258400-12378473145-4:219517520002841875545: 12, 32, 24, 12, 12, 12, 12, 12, 12, 12, 16, 12,  4, 64, 16,  valids=9, maxlen=7
LCM14642258400-12378473145-4:328887938115963456345: 24, 64, 12, 24, 12, 12, 12, 12, 12, 12, 16, 12, 32, 16,  4,  valids=8, maxlen=6
LCM14642258400-12378473145-4:331430856672392045145: 96, 16, 16, 24, 12, 12, 12, 12, 12, 12, 12, 12, 32,  8,  8,  valids=8, maxlen=8
LCM14642258400-12378473145-4:438001447848721325145: 12, 32,  8, 36, 12, 12, 12, 12, 12, 12, 64, 12, 32, 64,  4,  valids=8, maxlen=6
LCM14642258400-12378473145-4:439179636526617955545: 12, 32,  4, 96, 12, 12, 12, 12, 12, 12, 12, 12,  4, 16,  4,  valids=9, maxlen=8
LCM14642258400-12378473145-4:521080111309953163545: 12, 64,  4, 48, 12, 12, 12, 12, 12, 12,  8, 12, 16, 16,  8,  valids=8, maxlen=6
LCM14642258400-12378473145-4:716802695328259493145: 12,  4,  8, 48, 12, 12, 12, 12, 12, 12,  4, 12, 64, 16,  4,  valids=8, maxlen=6
LCM14642258400-12378473145-4:790076508980945539545: 12, 24,  4, 96, 12, 12, 12, 12, 12, 12, 32, 12, 32, 24,  8,  valids=8, maxlen=6
LCM14642258400-12378473145-4:866255046006773083545: 48, 64,  4, 12, 12, 12, 12, 12, 12, 12, 64, 12,128, 16,  4,  valids=8, maxlen=7
LCM14642258400-12378473145-4: end, time: 156.363s


-- 04.11.2022, 11:12 --

Как видно:
1.Первый паттерн нашел 7 находок. Из них одна есть в каждом из пяти паттерне, остальные уникальны.
2. Последний паттерн нашел 15 находок.
3. Три паттерна в середине нашли по три находки, все они одинаковы и имеются в находках последнего паттерна.

Итого:
а) рабочее время: 253.605 секунд.
б) wasted time: 313.87 секунд.

Вывод:
1. Для больших LCM может и не имеет объединять паттерны, быстрее посчитается, чем с этим возиться.
2. Для малых LCM объединять нужно.

 Профиль  
                  
 
 Re: Пентадекатлон мечты
Сообщение04.11.2022, 11:45 
Заслуженный участник


20/08/14
11766
Россия, Москва
EUgeneUS в сообщении #1568878 писал(а):
1. Скажите, пожалуйста, какая у Вас система идентификации паттернов?
Никакой, просто не заморачивался этим, для работы надо всего лишь различать все 1044 паттернов между собой, а так как я предпочитаю делить паттерны по величине шага, то в качестве номера используется Mod(x,y) (в обратном порядке для удобства сортировки). А для уникальности добавляю последнюю цифру (она равна номеру позиции числа 32p в 11-ке, которая сама смещена в 15-ке, смещение хорошо видно в z[]).
Ваш ID реализовал позже, да и всё равно неправильно (и как сделать правильно не уверен что понимаю). При желании Вы можете взять высланный список и использовать его, там есть ID, который можно просто добавить к имени паттерна через дефис (да, руками), и либо переименовать все файлы .exe, либо изменить в .gp строку
pat_name=strsplit(pat[g],"@")[2];
на такую
pat_name=strjoin(strsplit(strsplit(pat[g],"@")[2],"-")[1..3],"-");
которая выделит лишь моё обозначение паттерна для его запуска.
Ниже, при записи в лог, в команде w=strprintf("%s:%d:",pat_name,h); вместо pat_name можно будет использовать strjoin(strsplit(strsplit(pat[g],"@")[2],"-")[4..7],"-"), выделяющую из строки (например "LCM554400-145849-8-2-1B-41-11", ID выделен жирным) лишь Ваш ID для записи в лог. Это выполняется редко, так что лишних тормозов не будет.
Эти доработки не проверял, пишу из головы.
EUgeneUS в сообщении #1568878 писал(а):
Правильно ли понимаю, что посчитав верхний паттерн с 5-ю проверяемыми числами, мы сразу проверим и следующие три? А последний, пятый, нужно считать отдельно?
Совершенно правильно.
EUgeneUS в сообщении #1568878 писал(а):
Правильно ли понимаю, что Ваши планы в силе, и у Вас уже считаются все паттерны с $11^5$, а потом Вы запустите паттерны с $7^5$ и $11^2$? Это чтобы одно и тоже не считать.
Оставшиеся $11^5$ с шагом 8116970400 считаются, но это надолго, там 8шт паттернов с 4 проверяемыми местами, а первый такой считался 27300с=7.6ч (скорость составила 1e22/8116970400/27300=4.5e7/с), так что только они на двое суток, плюс 22шт с 5 проверяемыми местами, они два считались 4200с и 7300с (скорость 1e22/8116970400/4200=3e8/с и 1e22/8116970400/7300=1.7e8/с), это ещё часов 40, плюс с 6-ю проверяемыми местами, в общем на 4-5 суток работа есть. Правда это в один поток, можно конечно запустить несколько, но ... не знаю.
Дойдёт ли до счёта $7^5 11^2$ с шагом 14642258400 не знаю, возможно. А может к тому времени освобожусь и сделаю ускорение счёта за счёт лишних простых и компиляции на лету ... Пока даже поточнее оценить выигрыш не удаётся, скорость вон как гуляет.
Если уж давать советы что считать, то полезнее видимо вариант $7^2 11^2$ с шагом 42688800 - хоть и сильно дольше, зато максимальная вероятность найти решения. Какой именно из них очевидно без разницы.
EUgeneUS в сообщении #1568881 писал(а):
Пробный запуск (до $10^21$) пяти перекрывающихся паттернов.
Оценим скорость:
7 проверяемых мест: 1e21/14642258400/97с=7e8/с
7 проверяемых мест: 1e21/14642258400/104с=6.5e8/с
6 проверяемых мест: 1e21/14642258400/156с=4.4e8/с
Все где-то раза в два медленнее моей, вполне ожидаемо (SSE 128 бит регистры, AVX2 256 бит регистры).
Т.е. система работает, и даже с ожидаемой скоростью. :-)
EUgeneUS в сообщении #1568881 писал(а):
Для больших LCM может и не имеет объединять паттерны, быстрее посчитается, чем с этим возиться.
Ну да, с самым большим шагом именно так и произошло, выше писал что за примерно секунду каждый посчитался. У Вас тоже за сравнимое время (2с-5с каждый) посчитались бы.
Но у Вас времена порядка сотни секунд на 1e21, а на полном диапазоне 1e22 будет минут по 15-20 каждый, это явно сильно дольше чем минута на удаление лишних 1-4 из группы похожих. Впрочем принципиально выводы одобрям-с. ;-)

-- 04.11.2022, 11:59 --

Dmitriy40 в сообщении #1568593 писал(а):
Yadryara в сообщении #1568574 писал(а):
А как вчерашний запуск? Нашлось ли что-то выше 3е18?
Да оставил его считаться в одном потоке, что-то малоинтересное нашлось конечно (короче 8-ми в лог не выводил), до 3e19:
Досчиталось до 1e20, всего нашлось 35шт девяток (часть была показана в процитированном сообщении) и одна десятка:
96611541525509016217: 16, 16, 32, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 16, 48, valids=10, maxlen=10
Никакого рекорда она конечно не устанавливает.

 Профиль  
                  
 
 Re: Пентадекатлон мечты
Сообщение04.11.2022, 12:27 
Аватара пользователя


11/12/16
13850
уездный город Н
Продолжаю пробный запуск. Теперь запускал паттерны с $(7^1, 11^1)$ с тремя и пятью проверяемыми числами до $10^{16}$
С пятью проверяемыми числами считалось 111 секунд. Это уже 3.6 года на паттерн на поток :-(
С тремя проверяемыми числами считалось 1515 секунд. Беда-а-а-а.
При этом нашлось всего 1 и 2 убогих находки (с maxlen 5-6).

Проверю ещё скорость для $(7^2, 11^1)$, $(7^1, 11^2)$ и $(7^2, 11^2)$.

Dmitriy40 в сообщении #1568885 писал(а):
Если уж давать советы что считать, то полезнее видимо вариант $7^2 11^2$ с шагом 42688800

Да, я тоже склоняюсь к этому варианту. Но для него нужно исключать дубли. Там 226 паттернов, а при Вашей сортировке дубли исключаются довольно просто.
Как исключу дубли - опубликую список паттернов (в Вашей нотации) и начну счет.

По идентификацию паттернов. Вашу нотацию крайне сложно сматчить с моей нотацией или нумерацией Хуго. А это было бы полезно для контроля правильности исключения дублей и планирования счета. Соответствие между моей нотацией и нумерацией Хуго у меня есть.
Для простоты генерации нотации можно указывать обе позиции с 7-ками.
Например (болдом выделена разница с прошлым вариантом нотации):
"2-1B-5100-11" (тут только $7^1$ в позиции 5)
"6-1B-2291-32" (тут $7^2$ в позиции 2 и $7^1$ в позиции 9)

 Профиль  
                  
 
 Re: Пентадекатлон мечты
Сообщение04.11.2022, 12:59 
Аватара пользователя


29/04/13
8113
Богородский
Dmitriy40 в сообщении #1568885 писал(а):
Досчиталось до 1e20, всего нашлось 35шт девяток (часть была показана в процитированном сообщении) и одна десятка:
96611541525509016217: 16, 16, 32, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 16, 48, valids=10, maxlen=10
Никакого рекорда она конечно не устанавливает.

Здорово! Устанавливает. Полагаю, что это наша наименьшая непрерывная 10-ка за всё время счёта(с февраля). Да, она в 32 раза больше мирового рекорда Hugo, но для нас-то рекордная.

Это проверяется сразу десяток паттернов из группы правых 75-к. Всего таких 140 штук из 1044.

Долго возился с Вашими новыми прогами. В итоге запустил-таки самый последний паттерн:

LCM554400-31545-4:2980117728311755545: 12, 8, 8, 96, 6, 12, 12, 12, 12, 12, 16, 12, 8, 8, 8, valids=7, maxlen=5

LCM554400-31545-4:2980646202231513945: 24, 12, 4, 96, 4, 12, 12, 12, 12, 12, 8, 12, 8, 16, 64, valids=7, maxlen=5

LCM554400-31545-4:2987891770403817945: 24, 16, 8, 24, 8, 12, 12, 12, 12, 12, 32, 12, 16, 24, 12, valids=7, maxlen=5

Объсните, плиз, что значит стэп. У меня пока так:

Код:
step=2*10^7;\\Это попыток на один вызов уск. и показ прогресса, слишком много не ставьте


Hugo, если у Вас есть комп под Виндой, прошу сравнить скорость работы Вашей программы с программой Дмитрия на одних и тех же паттернах.

 Профиль  
                  
 
 Re: Пентадекатлон мечты
Сообщение04.11.2022, 13:25 
Заслуженный участник


20/08/14
11766
Россия, Москва
EUgeneUS в сообщении #1568887 писал(а):
Для простоты генерации нотации можно указывать обе позиции с 7-ками.
Это сделал, вот программа генерации паттернов:

(Оффтоп)

Код:
len=11;\\Генерация паттернов для M12n11
{for(s2=4,8,
   v2=vector(len,d, 2^if(s2==d, 5, ((s2-1)%len)%4==(d-1)%4, 2, ((s2-1)%len)%2==(d-1)%2, 1, 0));
   for(s3=1,len*2,
      v3=vector(len,d, v2[d]*3^if(((s3-1)%len)%9==(d-1)%9, 2, ((s3-1)%len)%3==(d-1)%3, 1, 0));
      if(#select(x->setsearch([1,2,3,6],numdiv(x)),v3)<11, next);
      for(s5=1,len+5,
         v5=vector(len,d, v3[d]*5^if(s5==d, 2, ((s5-1)%len)%5==(d-1)%5, 1, 0));
         if(#select(x->setsearch([1,2,3,6],numdiv(x)),v5)<11, next);
         for(s7=1,len*2+7, d=s7%len+1;
            v7=v5;v7[d]*=7^if(s7<=len, 5, s7<=len*2, 2, 1);
            if(d-7>0, v7[d-7]*=7); if(d+7<=len, v7[d+7]*=7);
            if(#select(x->setsearch([1,2,3,6],numdiv(x)),v7)<11, next);
            for(s11=1,len*2+11,
               v=v7; v[s11%len+1]*=11^if(s11<=len, 5, s11<=len*2, 2, 1);
               if(#select(x->setsearch([1,2,3,6],numdiv(x)),v)<11, next);
               z=vector(#v,d,numdiv(v[d]));
\\Здесь получен готовый паттерн длиной ровно 11 в v[], z[], дальше его расширение до длины 15, самым тупым способом
               while(v[8]!=32,
                  z=concat([0],z);
                  v=concat([1],v);
                  if(v[5]==32, v[1]*=4, v[7]==32, v[1]*=2);
                  if(v[10]%9==0, v[1]*=9, v[4]%3==0, v[1]*=3);
                  if(v[6]%5==0, v[1]*=5); if(v[8]%7==0, v[1]*=7); if(v[12]%11==0, v[1]*=11);
               );
               while(#v<15,
                  z=concat(z,[0]);
                  v=concat(v,[1]);
                  if(v[#v-4]==32, v[#v]*=4, v[#v-6]==32, v[#v]*=2);
                  if(v[#v-9]%9==0, v[#v]*=9, v[#v-3]%3==0, v[#v]*=3);
                  if(v[#v-5]%5==0, v[#v]*=5); if(v[#v-7]%7==0, v[#v]*=7); if(v[#v-11]%11==0, v[#v]*=11);
               );
\\Всё, паттерн длиной 15, выводим в желаемом формате
               pp=Mod(0,v[1]); for(i=2,#v,pp=chinese(pp,Mod(-i+1,v[i])));
               dd=select(x->(x%7==0),v,1); d1=dd[1]; d2=v[d1]; d2=if(d2%7^5==0,5,d2%7^2==0,2,1);\\Первая семёрка есть всегда
               d3=0; d4=0; if(#dd>1 && z[dd[2]]>0, d3=dd[2]; d4=v[dd[1]]; d4=if(d4%7^5==0,5,d4%7^2==0,2,1););\\Вторая не всегда
               printf("/*%15d,%15d*/ v=%6d; z=%d; n=%d; pp=Mod(%d,%d);\\\\@LCM%d-%d-%d-%X-%X%X-%X%X%X%X-%X%X\n",pp.mod,lift(pp),v,z,#select(x->(x==6),z),lift(pp),pp.mod,pp.mod,lift(pp),s2,s5+8-s2, select(x->(x>0),z,1)[1],c=select(x->(x>0),z,1);c[#c],d1,d2,d3,d4,s11%len+1+8-s2,if(s11<=len,5,s11<=len*2,2,1));
            );
         );
      );
   );
)}
quit;
Паттерны выводятся на экран, но их будет 2284шт - много дублей. :-(
Вывод своего обозначения оставил чтобы не переименовывать выложенные ускорители. Как доработать файл перебора .gp для работы с такими именами паттернов в списке показывал выше.
Я запускаю это дело так:
gp.exe -q M12n11_pats_EUgeneUS.gp |sort /r |deldups >M12n11_pats_EUgeneUS.txt
Т.е. сортирую по убыванию (именно и только для этого слева в списке выводятся шаг и начальное число) и потом удаляю дубли внешней утилиткой. Полученный файл (ровно 1044 паттерна) и утилитку вышлю Вам на почту (а, да и Антону тоже, вдруг он стесняется напомнить).
Биекцию с Hugo делать не вижу необходимости (хотя на базе неё можно сразу убить дубли), проще говоря лень. Впрочем, если будет ну очень надо ... Тем более Вы уже разобрались как.

-- 04.11.2022, 13:36 --

Yadryara в сообщении #1568893 писал(а):
Объсните, плиз, что значит стэп.
Если посмотрите на внутренность программы перебора, то там цикл идёт не по реальным числам (hh), а по индексам (ii), которые увеличиваются как раз на величину step за каждый вызов ускорителя, он ровно столько и проверяет. Т.е. это прирост количества попыток (индексов) на один вызов ускорителя и вывод прогресса на экран.
Это менее удобно для человека, зато сильно проще в коде, точно не может быть дублей, все числа целые, ничего округлять не надо (за исключением стартовой точки, которой кстати сам не пользуюсь, добавил только для вас), не нужно добавлять лишней работы при вызове ускорителя (те самые +35000), величина step не зависит от шага/модуля паттерна (а реальные числа зависят) и соответственно скорость (интервал вывода прогресса и время работы ускорителя) примерно одинакова для любых паттернов с одинаковым количеством проверяемых мест, ...
В принципе ничто не мешает перебирать и по другому, к моменту запуска перебора все параметры паттерна (v[], z[], pp) уже прочитаны и готовы к использованию. Мне показалось удобнее так, во всяком случае пока что.

-- 04.11.2022, 14:03 --

Yadryara в сообщении #1568893 писал(а):
Долго возился с Вашими новыми прогами.
Дык спрашивайте, я ж завсегда помогу чем могу. ;-) Ну конечно когда не сплю. :mrgreen:

 Профиль  
                  
 
 Re: Пентадекатлон мечты
Сообщение04.11.2022, 14:13 
Аватара пользователя


11/12/16
13850
уездный город Н
Dmitriy40
Почему-то в этих паттернах:

Код:
/*            42688800,            18674041*/ v=[     1,     2,     3,     4,     5,    18,    49,    32,     3,    50,   121,    12,     1,    14,    45]; z=[1,2,2,3,2,6,3,6,2,6,3,0,0,0,0]; n=3; pp=Mod(18674041,42688800);\\@LCM42688800-18674041-8
/*            42688800,            18674041*/ v=[     1,     2,     3,     4,     5,    18,    49,    32,     3,    50,   121,    12,     1,    14,    45]; z=[0,2,2,3,2,6,3,6,2,6,3,6,0,0,0]; n=4; pp=Mod(18674041,42688800);\\@LCM42688800-18674041-7
/*            42688800,            18674041*/ v=[     1,     2,     3,     4,     5,    18,    49,    32,     3,    50,   121,    12,     1,    14,    45]; z=[0,0,2,3,2,6,3,6,2,6,3,6,1,0,0]; n=4; pp=Mod(18674041,42688800);\\@LCM42688800-18674041-6


Не находится цепочка:
Код:
T(6,9) 15724736975643 Hugo van der Sanden 2022-01-11


Хотя, вроде бы, должна в первом, где три числа проверяется :roll:

 Профиль  
                  
 
 Re: Пентадекатлон мечты
Сообщение04.11.2022, 14:27 
Аватара пользователя


29/04/13
8113
Богородский
Dmitriy40 в сообщении #1568897 писал(а):
да и Антону тоже, вдруг он стесняется напомнить

:D

Стесняюсь, ага :-) Получил три письма на почту и ещё в личку. Премного благодарен.

Dmitriy40 в сообщении #1568897 писал(а):
Дык спрашивайте, я ж завсегда помогу чем могу. ;-) Ну конечно когда не сплю. :mrgreen:

Я давно уже заметил, что по утрам Вы очень редко здесь бываете. А я, наоборот, в 5-6 утра активен.

 Профиль  
                  
 
 Re: Пентадекатлон мечты
Сообщение04.11.2022, 14:40 
Заслуженный участник


20/08/14
11766
Россия, Москва
EUgeneUS в сообщении #1568900 писал(а):
Хотя, вроде бы, должна в первом, где три числа проверяется :roll:
Правы, должна. Беда!
Проверить можно быстро так: LCM42688800-18674041-8.exe 368357 1 - выдаёт пустой вектор (число - число цепочки делённое нацело на шаг/модуль паттерна).
Причина в расширении паттернов до 15, ускоритель гад проверяет и непроверяемые места чтобы туда не попали малые простые (нужно было для пентадекатлона). Нужно ему это запретить (перекомпиляция всех ускорителей), что повлечёт некоторое снижение скорости. Забыл про этот момент.
Это блин всё пересчитывать надо ...
Исправляю.

-- 04.11.2022, 15:15 --

Архив в облако перевыложен.
Теперь данная цепочка находится:
LCM42688800-18674041-8:15724736975641: 4, 8, 12, 12, 12, 12, 12, 12, 12, 12, 12, 24, 8, 32, 20, valids=9, maxlen=9
Ценой стало снова падение скорости вдвое для 946-ти паттернов из 1044-х: компилятор таблиц для ускорителей снова считает что для тройки есть два разрешённых остатка. Почему - не знаю. А разбираться пока некогда. :-(

Запустил у себя перепроверку ранее насчитанного, решений с $7^5 11^5$ по прежнему не нашлось. $7^2 11^5$ начали считаться.

-- 04.11.2022, 15:37 --

О, оказывается можно автоматом проверить какие паттерны можно объединять - их .exe отличаются только датой компиляции (в первых 256 байтах файла).
Например LCM56818792800-54097514041-4.exe и LCM56818792800-54097514041-5.exe отличаются сильно, а LCM56818792800-54097514041-5.exe и LCM56818792800-54097514041-6.exe всего в двух байтах (команда сравнения в консоли fc /b file1 file2).

 Профиль  
                  
 
 Re: Пентадекатлон мечты
Сообщение04.11.2022, 16:00 
Заслуженный участник


20/08/14
11766
Россия, Москва
Из 1044 паттернов осталось 833. Но объединить паттерны с разным количеством проверяемых чисел так не получилось, надо z[] анализировать.

 Профиль  
                  
 
 Re: Пентадекатлон мечты
Сообщение04.11.2022, 16:56 


05/06/22
293
Yadryara в сообщении #1568893 писал(а):
Hugo, если у Вас есть комп под Виндой, прошу сравнить скорость работы Вашей программы с программой Дмитрия на одних и тех же паттернах.

I don't have access to a Windows computer. But Natalia has managed to get someone to build my code for Windows.

 Профиль  
                  
 
 Re: Пентадекатлон мечты
Сообщение04.11.2022, 17:02 
Аватара пользователя


11/12/16
13850
уездный город Н
Dmitriy40 в сообщении #1568906 писал(а):
О, оказывается можно автоматом проверить какие паттерны можно объединять - их .exe отличаются только датой компиляции (в первых 256 байтах файла).
Например LCM56818792800-54097514041-4.exe и LCM56818792800-54097514041-5.exe отличаются сильно, а LCM56818792800-54097514041-5.exe и LCM56818792800-54097514041-6.exe всего в двух байтах (команда сравнения в консоли fc /b file1 file2).


Не думаю, что это хороший алгоритм. Как-то нет гарантии, что ничего не пропустим (лишнего не выкинем).

Алгоритм объединения паттернов:
1. Паттерны группируются по Вашему ID (без дополнительного ID после "-"). Будут группы по 1, 2, 3 и 5 штук. По 4 вроде бы тоже должны быть, но почему-то в $(7^2, 11^2)$ не попалось.
2. В каждой группе (кроме "индивидуальных", их не с чем объединять) выбираем паттерн с наименьшим числом проверяемых чисел. Если таких несколько, то берем любой из них.
3. Далее проверяем, что проверяемые числа в выбранном паттерне совпадают с проверяемыми числами в других паттернах группы. Если совпадают, то эти другие паттерны выкидываем.

Как правило объединения происходят так:
1. Группа из двух паттернов объединяется в один. Редко не объединяется.
2. Группа из трех паттернов объединяется в один. Редко объединяется в два.
3. Группа из пяти паттернов объединяется в два: один остаётся индивидуальным, четыре объединяются в один.

 Профиль  
                  
 
 Re: Пентадекатлон мечты
Сообщение05.11.2022, 09:39 
Аватара пользователя


11/12/16
13850
уездный город Н
Замерил скорость с новыми ускорителями на $10^{16}$

Получилось так (в одном потоке):
LCM554400, 3 проверяемых числа - 2628.180s
LCM554400, 5 проверяемых чисел - 200.345s
LCM3880800, 3 проверяемых числа - 397.668s
LCM3880800, 5 проверяемых чисел - 28.937s
LCM6098400, 3 проверяемых числа - 242.266s
LCM6098400, 5 проверяемых чисел - 19.143s
LCM42688800, 3 проверяемых числа - 44.901s
LCM42688800, 5 проверяемых чисел - 3.193s

Теперь по паттернам с LCM42688800:
Всего паттернов: 226 шт.
После удаления перекрывающихся получилось 138 шт. Из них:
Проверяемых чисел 7 - не осталось ни одного
Проверяемых чисел 6 - 20 шт.
Проверяемых чисел 5 - 60 шт.
Проверяемых чисел 4 - 50 шт.
Проверяемых чисел 3 - 8 шт.

Запустил расчет паттернов LCM42688800 только с 6-ю проверяемыми числами (20 шт) до $10^{21}$ в четыре потока. И уже только это потребует несколько дней :-(

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3218 ]  На страницу Пред.  1 ... 150, 151, 152, 153, 154, 155, 156 ... 215  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group