2014 dxdy logo

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

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




На страницу Пред.  1 ... 68, 69, 70, 71, 72  След.
 
 Re: Как писать быстрые программы
Сообщение10.04.2026, 00:39 
Dmitriy40 в сообщении #1721944 писал(а):
А, так Вы тоже оказывается про потерю кортежей ...

Ну я не знаю что сейчас значит "кортежи" (раньше были "цепочки"), но меня подспудно беспокоит "терапевтика" кубов малых простых (до 59) и отбрасывание высших степеней табличных простых (от 59 до 2^20) :mrgreen: Хотя я вашим объяснениям и оценкам вероятности доверяю.

-- 10.04.2026, 00:42 --

Dmitriy40 в сообщении #1721944 писал(а):
Тем более не вижу пользы от неё, по сравнению со скоростью перебора.

Согласен, правильный бенчмарк это скорость перебора, потому что там где ищется сейчас, всё направлено на нахождение одной цепочки раз в полгода всей компанией искателей.

 
 
 
 Re: Как писать быстрые программы
Сообщение10.04.2026, 00:53 
Yadryara в сообщении #1721942 писал(а):
Я не задаю не имеющих отношения к теме вопросов. И не имею привычки задавать риторические вопросы.
Однако я считаю по другому.
Yadryara в сообщении #1721942 писал(а):
Что можете сказать по поводу D(96,9) ? Можно ли дать какой-то прогноз? Не считая, а только ориентируясь на мои данные.
Ничего. Не вникал в Ваши данные.
Yadryara в сообщении #1721942 писал(а):
Но на мои вопросы почему-то гораздо меньше ответов по существу.
Я не соревнуюсь в кэфе ответов. Тем более есть разные мнения насколько они "по существу".
Yadryara в сообщении #1721942 писал(а):
Задача стоит: найти один-единственный кортеж. И главный вопрос: с какой скоростью ищутся кортежи?
Снова повторю: в практически интересном случае поиска неизвестных ранее кортежей эту скорость невозможно определить до момента нахождения первого кортежа, а после этого момента скорость уже не нужна так как задача выполнена.
И другое повторю: делать оценку по скорости выдачи кортежей для других паттернов не всегда адекватно. А иногда и сильно не адекватно. За неимением лучшего можно конечно и так, и даже ещё хуже. Однако лучший метод есть и давным давно используется - по скорости перебора.

Вот только задача в этой теме стоит другая: как увеличить скорость. Не найти кортеж, а увеличить скорость его поиска. Увеличение скорости подразумевает методику сравнения двух скоростей, чего с Вашим методом нельзя сделать не имея ни одного кортежа. А имея скорость перебора сравнивать скорости поиска можно.
На этом для меня вопрос со скоростью выдачи кортежей закрыт как неактуальный.
Вы хотите продолжайте в него упираться.

 
 
 
 Re: Как писать быстрые программы
Сообщение10.04.2026, 01:07 
Аватара пользователя
wrest в сообщении #1721940 писал(а):
Мысль простая.

Вот именно что простая. Интересно почему Дмитрий этого не понимает?

Dmitriy40 в сообщении #1721948 писал(а):
Однако я считаю по другому.

Ну так и непонятно: почему вы считаете по-другому?

Тогда тоже спрошу у wrest-a и у других читателей темы. Я разве не по теме что-то спрашиваю? Я разве какие-то вопросы риторические задаю?

Dmitriy40 в сообщении #1721948 писал(а):
Вот только задача в этой теме стоит другая: как увеличить скорость.

Конечно, я про это и говорю.

Dmitriy40 в сообщении #1721948 писал(а):
Не найти кортеж, а увеличить скорость его поиска.

А увеличить эту скорость нужно чтобы найти его. Вы даже этого не понимаете?

Dmitriy40 в сообщении #1721948 писал(а):
Не вникал в Ваши данные.

Приплыли. А как же тогда содержательно разговаривать по теме, если не вникать в данные??

Dmitriy40 в сообщении #1721948 писал(а):
Вы хотите продолжайте в него упираться.

Как то это грубовато что-ли. И вроде недружелюбно. wrest ранее говорил что я выливаю ушат холодной воды, но вот у меня уже не первый раз ощущение что это делаю не я.

wrest, цепочки и кортежи в данном случае синонимы.

 
 
 
 Re: Как писать быстрые программы
Сообщение10.04.2026, 01:16 
Yadryara в сообщении #1721949 писал(а):
Тогда тоже спрошу у wrest-a и у других читателей темы. Я разве не по теме что-то спрашиваю?

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

 
 
 
 Re: Как писать быстрые программы
Сообщение10.04.2026, 01:37 
wrest в сообщении #1721945 писал(а):
Ну я не знаю что сейчас значит "кортежи" (раньше были "цепочки"), но меня подспудно беспокоит "терапевтика" кубов малых простых (до 59) и отбрасывание высших степеней табличных простых (от 59 до 2^20) :mrgreen:
В данном контексте кортеж это цепочка с точно всеми правильными количествами делителей. Я их разделил чтобы подчеркнуть что на выходе может быть и не вся правильная цепочка (мало ли что там считается в статистике, не уверен). Обычно это синонимы.

Про кубы и высшие степени, тут ведь как всегда вопрос какой ценой. Если "почти бесплатно", то лучше добавить проверку и находить больше кортежей. Если же это заметно замедляет, то не стоит. Величину "заметно" как раз и можно получить оценивая скорость выдачи кортежей в интересующем диапазоне, если она падает, то отказать, лучше пусть пропускаются. Если скорость перебора падает на 20%, а кортежей при этом добавляется лишь 4%, то смысла очевидно нет (0.8*1.04=0.832<1). Хотя реально это может дать на порядок более быстрый результат - если повезёт и флуктуации сложатся в нашу пользу. Вопрос надеяться на везение или на "грубую силу" (перебор).


Yadryara в сообщении #1721949 писал(а):
Ну так и непонятно: почему вы считаете по-другому?
Объяснять слишком долго. И к теме ускорения программ вопрос "почему я так считаю" отношения не имеет.
Беру пример с wrest-а, тоже игнорирую всё что считаю не по теме или банальностью/риторическим.

Yadryara в сообщении #1721949 писал(а):
Конечно, я про это и говорю.
Yadryara в сообщении #1721949 писал(а):
А увеличить эту скорость нужно чтобы найти его. Вы даже этого не понимаете?
Читайте по буквам: задача "найти кортеж" отличается от задачи "быстрее искать кортеж". Слова разные, и по написанию, и по смыслу. Вы даже этого не понимаете?
И решаться эти две задачи могут разными методами. Например задача "найти кортеж" может решаться запуском триллиона копий более медленной программы, т.е. для этой задачи не обязательно программу ускорять (например более быстрая программа не работает там где работает более медленная, как скажем с AVX2 и SSE2).
И задача "найти кортеж" вообще не для этой темы, тут про вторую, про скорость поиска.

Yadryara в сообщении #1721949 писал(а):
Приплыли. А как же тогда содержательно разговаривать по теме, если не вникать в данные??
А мне и нечего сказать содержательного по теме поиска D(96,6) и прочих, она мне не интересна и я не слежу что Вы по ней считаете.
Содержательного в этой теме - про скорость работы, это и обсуждаю.

Yadryara в сообщении #1721949 писал(а):
Как то это грубовато что-ли.
Да. Извините. И за чуть выше тоже. Надоело в пятый раз повторять одно и то же, вот и не удержался, дважды. :-(

 
 
 
 Re: Как писать быстрые программы
Сообщение10.04.2026, 01:52 
Аватара пользователя
wrest в сообщении #1721950 писал(а):
я просто не комментирую те ваши посты, что считаю нерелевантными теме,

А таковые есть?

Dmitriy40 в сообщении #1721951 писал(а):
Объяснять слишком долго. И к теме ускорения программ вопрос "почему я так считаю" отношения не имеет.

Это не страшно, я вроде никуда не тороплюсь. Возможно, что не имеет. Мне открыть другую тему или вы это сделаете сами?

Dmitriy40 в сообщении #1721951 писал(а):
Беру пример с wrest-а, тоже игнорирую всё что считаю не по теме

И напрасно, кстати, в этом берёте пример. Считаете, что не по теме — можно обсудить отдельно, в том числе в личке.

Dmitriy40 в сообщении #1721951 писал(а):
Читайте по буквам: задача "найти кортеж" отличается от задачи "быстрее искать кортеж". Слова разные, и по написанию, и по смыслу. Вы даже этого не понимаете?

Ну конечно разные, но в данном случае не вижу смысла их разделять. Вы помните что в итоге наших с вами оценок времени поиска кортежа 19-252, эта оценка от считанных месяцев доходила до 20 лет? Вашу цитату поискать?

Так что в практическом смысле необходимо именно быстрее искать кортеж, чтобы реально его найти.

И у меня уже не первый раз возникает ощущение, что вольно или невольно вы пытетесь запутать простой вопрос.

Dmitriy40 в сообщении #1721951 писал(а):
Да. Извините. И за чуть выше тоже.

Принимается. Возможно и я где-то был не вполне корректен.

 
 
 
 Re: Как писать быстрые программы
Сообщение10.04.2026, 04:03 
Yadryara в сообщении #1721952 писал(а):
Это не страшно, я вроде никуда не тороплюсь. Возможно, что не имеет. Мне открыть другую тему или вы это сделаете сами?
У меня вообще нет желания это обсуждать. Давайте обсуждать ускорение программ, а не кто что считает риторическим.
Yadryara в сообщении #1721952 писал(а):
И напрасно, кстати, в этом берёте пример. Считаете, что не по теме — можно обсудить отдельно, в том числе в личке.
У меня нет желания в очередной раз раздувать флуд кто что как или не так понял. Давайте обсуждать ускорение программ, а не кто что считает риторическим.

Yadryara в сообщении #1721952 писал(а):
Ну конечно разные, но в данном случае не вижу смысла их разделять.
А я вижу. Хотя бы потому что решать их можно существенно разными методами. В том числе социальными. Которые к скорости работы программ не имеют отношения вообще. Напомнить как я для Вас делал более медленные SSE версии программ ради уменьшения общего времени поиска? Это было решение первой задачи (найти), но никак не второй (ускорить программу). Общая скорость повышалась, да, но ценой замедления программы, а тут мы разговариваем про её ускорение. И потому считаю всё что не относится к ускорению работы отдельной программы не относящимся к текущей теме (ну разве что про глюки конкретных вариантов программ ещё удобно тут же обсуждать без выделения отдельных тем).

Yadryara в сообщении #1721952 писал(а):
Так что в практическом смысле необходимо именно быстрее искать кортеж, чтобы реально его найти.
Вопрос лишь в смысле выделенного слова "искать". Я понимаю его как быстрее перебирать кандидатов, чтобы быстрее обсчитать весь объём кандидатов до ожидаемого появления кортежа (например 67#). И я имею метод объективного измерения этой скорости и знаю сколько кандидатов в ожидаемом объёме, а значит поделив одно на другое легко оцениваю требуемое время. И мне для этого не нужны оценки по другим паттернам, непонятно как пересчитываемые к этому паттерну. И потому не интересна скорость нахождения D(96,6) или D(192,4).
Вы желаете понимать это слово как-то по другому, не как скорость перебора кандидатов, а как скорость выдачи кортежей. Обратите внимание, даже слова по смыслу разные: искать или выдавать (находить). И Вы сами тут же воспользовались первым, искать, а не выдавать/находить. Но скорость выдачи невозможно (или бессмысленно для уже обнаруженных кортежей) объективно измерить. Мне такой подход для ускорения работы программ не нравится потому что: а) имею опыт когда он не работает, с пересчётом скорости от других паттернов, б) есть надёжный метод сравнения скоростей перебора и он же позволяет оценивать и ожидаемое время, т.е. полностью покрывает мои потребности. Ваш метод может быть хорош для оценки требуемого времени нахождения кортежа (но это должно быть в другой теме! здесь кортежи не ищутся, здесь программы ускоряются), или ещё для чего-нибудь, но не для сравнения качества оптимизации программы.

 
 
 
 Re: Как писать быстрые программы
Сообщение10.04.2026, 10:31 
Yadryara
Возвращаемся к теме. :wink:
Yadryara в сообщении #1721938 писал(а):
Например, я пока применяю только алгоритм Полларда, а не ЕСМ.

Вы можете оценить скорость работы вашей реализации полларда применительно к тому сценарию где используете? Ну то есть -- сделать "эталонный" код, какой-то "эталонный" тестовый набор входных чисел, "правильный" результат и засечь время их обработки, Чтобы я, например, мог запустить у себя, получить этот результат и время (у меня будет другое - в соответствии с производительностью моего средства вычислений) и посмотреть можно ли ускорить. Ну или например вы считаете, что там и так всё норм., ускорение ничего не изменит в общей картине.

Я вот как-то разочаровался, мне кажется поллард не нужен. 8-)

 
 
 
 Re: Как писать быстрые программы
Сообщение10.04.2026, 10:49 
Аватара пользователя
wrest
Большая просьба. Именно просьба. Найдите самостоятельно какие-нибудь короткие цепочки. Скажем, длины 6. Очень желательно с числом делителей 24, 48 или 96.

wrest в сообщении #1721982 писал(а):
Я вот как-то разочаровался, мне кажется поллард не нужен.

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

Вы же сами меня спрашивали, хочу ли я учиться новому. Ну так и я вас об этом же спрашиваю.

 
 
 
 Re: Как писать быстрые программы
Сообщение10.04.2026, 11:01 
Yadryara в сообщении #1721985 писал(а):
Найдите самостоятельно какие-нибудь короткие цепочки. Скажем, длины 6.

Для этого надо вникать в конструирование "паттернов", а это мне неинтересно. См.:
wrest в сообщении #1711398 писал(а):
Мне неинтересны эквиделительные задачи из пентадектлонной темы, в целом.
Я не хочу вникать в алгоритмы формирования "паттернов", что там значат "места" и загадочные (для меня) сообщения типа

 
 
 
 Re: Как писать быстрые программы
Сообщение10.04.2026, 11:59 
Аватара пользователя
wrest в сообщении #1721988 писал(а):
Для этого надо вникать в конструирование "паттернов", а это мне неинтересно. См.:

Это и называется снова здоро́во. Я прекрасно помню, что вам было неинтересно. Но потом вы начали вникать и я обрадовался, что сейчас вы разберётесь и с вами можно будет говорить на одном языке. Почему же вы остановились?

Кстати, и Дмитрию поначалу не хотелось вникать. Я могу цитату поискать.

А мне вот было интересно разобраться именно с самого начала, с основ. Вам вроде бы должно быть легче, вроде бы вы и формулу для делителей знаете и КТО тоже знаете. То есть не только понимаете что означает эта аббревиатура.

Ну и мне вот не хочется вникать в C-код или в асм. Но я не подчёркиванию, что мне это неинтересно. Скорее наоборот: "ужасно интересно всё то что неизвестно". То есть я понимаю, что дело во мне, в моей лени. И да, запланировано преодоление этой лености.

Так что непонятно, почему уже пройдя некоторый путь, вы вдруг опять упорствуете.

Иногда полезно бывает отрешиться от того что говорят другие люди и самостоятельно разобраться в вопросе, обрести собственное ви́дение.

Так что подожду когда вам снова станет интересно. И наконец-то будем говорить на одном языке. К взаимному удовольствию.

 
 
 
 Re: Как писать быстрые программы
Сообщение10.04.2026, 13:00 
Аватара пользователя
Dmitriy40 в сообщении #1721956 писал(а):
Напомнить как я для Вас делал более медленные SSE версии программ ради уменьшения общего времени поиска?

Совершенно не нужно напоминать. А вот я как раз напомню, что именно поэтому и купил тот комп, что вы посоветовали, с AVX2 и с чем-то ещё, именно для того чтобы вам в дальнейшем не приходилось переделывать программы специально под меня. Чтобы то, что работает у вас, работало бы и у меня.

Да, некоторый оффтоп, разумеется есть, в том числе и с моей стороны. Но мне уж очень не хочется скакать из темы в тему. Уже вроде бы сформировалась традиция все вопросы по поиску кортежей обсуждать в одной теме. Ведь как ни крути — ускорение программ это центральный, важнейший вопрос. Так почему бы и не обсудить здесь и некоторые другие, смежные вопросы.

Dmitriy40 в сообщении #1721956 писал(а):
Вы желаете понимать это слово как-то по другому, не как скорость перебора кандидатов, а как скорость выдачи кортежей.

Подеркну. Это я пока что понимаю именно в этом смысле. Ибо запланировано использование разных методов для оценки скорости/эффективности.

Это задача не на один день и не на один месяц.

Ну а пока что начал считать D(96,9). И вот привожу все 112 найденных кортежей. Чтоб вопросов не было. Да, один из них оказался подлиннее, он D(96,10). Но я его не выкидывал.

Начальное число кортежа, valids по полю, максимальная длина непрерывной цепочки.

(Оффтоп)

Код:
104064483132761427464657542888472     9   9
219066296125717882744652178443672     9   9
236682180774927975605460605277272     9   9
291755975476824382640677823877272     10   9
833620278100310968743526589954072     9   9
73235856771651035212164362963672     11   9
144789276779434198710410789992472     11   9
361907567218952539371774502730072     9   9
455420938208923449169958069133272     11   9
15787554933961954401851960104472     11   9
160077032225232162138890531277272     9   9
955018687642677233627592685605272     9   9
989284250016502745541574149472472     11   9
203419418412563769657257251773272     11   9
975751126345768709747760276064472     10   9
392139202912084528198463317288472     9   9
821266481573864574426414801501272     9   9
462994193295317607461518559915672     9   9
635249563812056053886755853459672     9   9
27173607329862466713543821181272     10   9
848949160197282514489901850131672     11   9
307297615765473393589122702059672     9   9
189818428644221528478463110443672     10   9
232980824379714796813151243589272     9   9
527513024515207931541324404536472     10   9
231242223416806509858212168258072     9   9
430806753585247219592093482115672     10   9
218122106390859340471804129883672     9   9
700236172797411298310480390728472     10   9
310160112866413252296072023819672     10   9
708484714772115097536607281208472     9   9
265325350926378468528096233354072     9   9
315220276512447423954387762626072     10   9
485164480065555410631761203768472     10   9
716180690908443539342152363389272     9   9
821874495874715941603460257480472     10   9
305075410512796417971741349346072     9   9
210708559329304582263475657235672     9   9
20370764200708680456071246008472     9   9
190825125010002654903876172965272     9   9
250212067423289685816377771632472     9   9
713991391228733113481364875632472     9   9
437442828217347519468064132269272     10   9
183760794247283205641720928760472     9   9
705798530778087085211891496141272     10   9
948239172297382637023763504757272     11   9
21434983141577684055644375608472     9   9
622894928874063750613443984549272     9   9
908590721993613659445537123731672     9   9
66603704255754534989010773234072     9   9
819634462663256271098189250880472     9   9
239172106242426989540034116459672     10   9
924761621313220493876262386066072     10   9
818058984712497959667414678933272     10   9
970897460872581841254411179056472     12   9
992729052718270354099370872466072     9   9
37182407530946781323463713939672     10   9
590239251168938068813960835459672     10   9
699312418472581605610304719202072     10   9
716595927939731130681286571944472     9   9
757346958326394496001754135155672     11   9
819586143581085003994395404512472     12   9
239690851790330263409368674707672     10   9
589048086757574040078942377032472     11   9
769187705779005024774484451344472     9   9
805849461325825327731401681915672     10   9
872494550156667548286860328760472     9   9
666766690703642791465996729072472     9   9
529864003332830729916059915344472     9   9
406540399251366887012809828024472     9   9
977357517487223141498819614888472     9   9
2637194526919125062446234778072     9   9
815101273280088436426892809802072     10   9
869170212780406382702169223010072     10   9
202255832283137136529555130464472     9   9
211585526347023306816082454373272     9   9
431134280628363719442315631379672     10   9
189200617412645874817287759122072     11   9
439285888119334485795170971835672     9   9
464175378496893283079858613083672     9   9
541781118680337483309133121819672     9   9
582699440846887592126050809890072     9   9
751012687111279769416135713050072     10   9
341782246889478010534543184315672     9   9
529410775459321101076980046226072     9   9
446313800991570873036749173970072     9   9
962577484940996981932490651906072     9   9
973128751692529222721506471528472     12   9
334178892670548019013804717147672     11   9
152428326373983216518770004752472     9   9
932046396645028902996700540336472     9   9
977311964097164945836334290403672     10   9
24277875227553886450172791067672     9   9
303844299605164255080488747138072     10   9
327953094787650555928606993427672     10   9
613610239630216677808394717018072     9   9
350118985826708832677299673253272     9   9
321210648912752997972123536450072     10   9
459081751585872652532769415605272     9   9
322679874846535234426124990291672     10   9
389734635413405596676021042411672     10   9
501231735559022673493557675875672     9   9
743774273495925599980485782464472     9   9
951663355391715616431316251832472     10   10
321654613326396226317149337184472     11   9
738259850245429299998146169589272     10   9
49665838781818048655886525256472     10   9
571703575312621928226057092637272     10   9
820598479088209901072933505117272     9   9
227579604183941307708274024475672     9   9
998071654132717988869039266587672     9   9
361801891196025112481395026035672     9   9

Вот такие параметры считались:

Код:
Серия            2^     Комплектов       Счёт     Найдено      Время       Скорость
                         посчитано    от 0 до     D(96,9)     секунд    D(96,9)/час
0-0-8-1-0-4!     15     2! * 6!  4       1e33         112       1395            289
0-0-8-1-0-4!     16     2! * 6!  4       1e33         112       1337            302
0-0-8-1-0-4!     17     2! * 6!  3       1e33          90       1071            303

 
 
 
 Re: Как писать быстрые программы
Сообщение10.04.2026, 13:18 
Yadryara в сообщении #1721991 писал(а):
Так что непонятно, почему уже пройдя некоторый путь, вы вдруг опять упорствуете.

Я не хочу погружаться в этот мир (мирок) паттернов :D
Самое интересное в этой теме (где мы сейчас) для меня было
- сделать типизацию переменных в том коде что вы давали мне в личку и посмотреть как это влияет на скорость после компиляции в gp2c
- взять "эталонный" код с 24-й страницы, перейти на модулярные принципы проверки делимости на табличные простые, и там тоже типизировать так, чтобы сократить длинные вычисления
- попробовать применить модулярный принцип не к последовательным числам в одной цепочке, а к одному и тому же месту в миллионе цепочек
- попробовать написать свою встроенную функцию в pari/gp (omega_upto ) и тут неважно было что именно она делает, главное что она получается встроенной и быстрой.

Вот такие интересы. Ну а то, что это может применяться в эквиделительной теме - это для меня побочный эффект (а для вас - это основной эффект) :D

 
 
 
 Re: Как писать быстрые программы
Сообщение10.04.2026, 14:28 
wrest в сообщении #1721988 писал(а):
Для этого надо вникать в конструирование "паттернов",
В указанных условиях - не обязательно :mrgreen: :
код: [ скачать ] [ спрятать ]
Используется синтаксис Text
? forstep(x=6,oo,6, if((d=numdiv(x))%24<>0, next); a=x; while(numdiv(a-1)==d, a--); b=x; while(numdiv(b+1)==d, b++); if(b-a+1>=6, print(a,": ",[numdiv(t)|t<-[a..b]],", len=",b-a+1)); )
973277147: [24, 24, 24, 24, 24, 24], len=6
1029227571: [24, 24, 24, 24, 24, 24], len=6
1112348572: [24, 24, 24, 24, 24, 24], len=6
1460211423: [24, 24, 24, 24, 24, 24], len=6
1594708575: [24, 24, 24, 24, 24, 24], len=6
1770953820: [24, 24, 24, 24, 24, 24], len=6
1909693023: [24, 24, 24, 24, 24, 24], len=6
2064955524: [24, 24, 24, 24, 24, 24], len=6
2239515548: [24, 24, 24, 24, 24, 24], len=6
3417190620: [24, 24, 24, 24, 24, 24], len=6
3448477275: [24, 24, 24, 24, 24, 24], len=6
3826528924: [24, 24, 24, 24, 24, 24], len=6
4175344924: [24, 24, 24, 24, 24, 24], len=6
5332053723: [24, 24, 24, 24, 24, 24], len=6
5535402847: [24, 24, 24, 24, 24, 24], len=6
6282718946: [24, 24, 24, 24, 24, 24], len=6
6398311072: [24, 24, 24, 24, 24, 24], len=6
7062309472: [24, 24, 24, 24, 24, 24], len=6
7198522720: [24, 24, 24, 24, 24, 24], len=6
7482103848: [24, 24, 24, 24, 24, 24], len=6
7551076347: [24, 24, 24, 24, 24, 24], len=6
7893098015: [24, 24, 24, 24, 24, 24], len=6
8078816723: [24, 24, 24, 24, 24, 24], len=6
8564513947: [24, 24, 24, 24, 24, 24], len=6
8588277723: [24, 24, 24, 24, 24, 24], len=6
8686868200: [24, 24, 24, 24, 24, 24], len=6
8776708251: [24, 24, 24, 24, 24, 24], len=6
9027857311: [24, 24, 24, 24, 24, 24], len=6
9141573724: [24, 24, 24, 24, 24, 24], len=6
9144236572: [24, 24, 24, 24, 24, 24], len=6
9279940704: [24, 24, 24, 24, 24, 24], len=6
9334858972: [24, 24, 24, 24, 24, 24], len=6
9527088544: [24, 24, 24, 24, 24, 24], len=6
9571759323: [24, 24, 24, 24, 24, 24], len=6
9677469472: [24, 24, 24, 24, 24, 24], len=6
9842979615: [24, 24, 24, 24, 24, 24], len=6
10091010975: [24, 24, 24, 24, 24, 24], len=6
10091824223: [24, 24, 24, 24, 24, 24], len=6
10427933723: [24, 24, 24, 24, 24, 24], len=6
10494693724: [24, 24, 24, 24, 24, 24], len=6
10537749339: [24, 24, 24, 24, 24, 24], len=6
10684724346: [24, 24, 24, 24, 24, 24], len=6
10810663071: [24, 24, 24, 24, 24, 24], len=6
10933716572: [24, 24, 24, 24, 24, 24], len=6
11493885948: [24, 24, 24, 24, 24, 24], len=6
11611677471: [24, 24, 24, 24, 24, 24], len=6
11795040924: [24, 24, 24, 24, 24, 24], len=6
11846220448: [24, 24, 24, 24, 24, 24], len=6
12008728850: [24, 24, 24, 24, 24, 24], len=6
12856633568: [24, 24, 24, 24, 24, 24], len=6
12954962524: [24, 24, 24, 24, 24, 24], len=6
13138808350: [24, 24, 24, 24, 24, 24], len=6
13281932572: [24, 24, 24, 24, 24, 24], len=6
13375077792: [24, 24, 24, 24, 24, 24], len=6
13737727071: [24, 24, 24, 24, 24, 24], len=6
13827306724: [24, 24, 24, 24, 24, 24], len=6
13895749021: [24, 24, 24, 24, 24, 24], len=6
13960800160: [24, 24, 24, 24, 24, 24], len=6
14131296347: [24, 24, 24, 24, 24, 24], len=6
14162176924: [24, 24, 24, 24, 24, 24], len=6
14690644575: [24, 24, 24, 24, 24, 24], len=6
14824913049: [24, 24, 24, 24, 24, 24], len=6
14844195420: [24, 24, 24, 24, 24, 24], len=6
15009818523: [24, 24, 24, 24, 24, 24], len=6
15708788575: [24, 24, 24, 24, 24, 24], len=6
15967827420: [24, 24, 24, 24, 24, 24], len=6
16332972448: [24, 24, 24, 24, 24, 24], len=6
16438063171: [24, 24, 24, 24, 24, 24], len=6
16604900575: [24, 24, 24, 24, 24, 24], len=6
16723434075: [24, 24, 24, 24, 24, 24], len=6
17052220447: [24, 24, 24, 24, 24, 24], len=6
17187581723: [24, 24, 24, 24, 24, 24], len=6
17238162464: [24, 24, 24, 24, 24, 24], len=6
17268430304: [24, 24, 24, 24, 24, 24], len=6
17487285471: [24, 24, 24, 24, 24, 24], len=6
17538794140: [24, 24, 24, 24, 24, 24], len=6
17604647071: [24, 24, 24, 24, 24, 24], len=6
17659180314: [24, 24, 24, 24, 24, 24], len=6
17847663323: [24, 24, 24, 24, 24, 24], len=6
18012850972: [24, 24, 24, 24, 24, 24], len=6
18036555273: [24, 24, 24, 24, 24, 24], len=6
18130938200: [24, 24, 24, 24, 24, 24], len=6
18686591072: [24, 24, 24, 24, 24, 24], len=6
18962162523: [24, 24, 24, 24, 24, 24], len=6
19491866847: [24, 24, 24, 24, 24, 24], len=6
19670532703: [24, 24, 24, 24, 24, 24], len=6
19762984923: [24, 24, 24, 24, 24, 24], len=6
20066971420: [24, 24, 24, 24, 24, 24], len=6
20276992671: [24, 24, 24, 24, 24, 24], len=6
20633085275: [24, 24, 24, 24, 24, 24], len=6
21108021920: [24, 24, 24, 24, 24, 24], len=6
21137477048: [24, 24, 24, 24, 24, 24], len=6
21347164724: [24, 24, 24, 24, 24, 24], len=6
21363639271: [24, 24, 24, 24, 24, 24], len=6
21507097001: [24, 24, 24, 24, 24, 24], len=6
21684377824: [24, 24, 24, 24, 24, 24], len=6
21873719579: [24, 24, 24, 24, 24, 24], len=6
21886206172: [24, 24, 24, 24, 24, 24], len=6
22139277920: [24, 24, 24, 24, 24, 24], len=6
22452681948: [24, 24, 24, 24, 24, 24], len=6
22802283423: [24, 24, 24, 24, 24, 24], len=6
22821029063: [24, 24, 24, 24, 24, 24], len=6
22990306911: [24, 24, 24, 24, 24, 24], len=6
23451269020: [24, 24, 24, 24, 24, 24], len=6
23485024670: [24, 24, 24, 24, 24, 24], len=6
23676804346: [24, 24, 24, 24, 24, 24], len=6
24059283423: [24, 24, 24, 24, 24, 24], len=6
24358380891: [24, 24, 24, 24, 24, 24], len=6
24640378971: [24, 24, 24, 24, 24, 24], len=6
24742649321: [24, 24, 24, 24, 24, 24], len=6
24825183647: [24, 24, 24, 24, 24, 24], len=6
24850636600: [24, 24, 24, 24, 24, 24], len=6
25077713820: [24, 24, 24, 24, 24, 24], len=6
25401767522: [24, 24, 24, 24, 24, 24], len=6
25558160924: [24, 24, 24, 24, 24, 24], len=6
25694056449: [24, 24, 24, 24, 24, 24], len=6
25845407647: [24, 24, 24, 24, 24, 24], len=6
26875719772: [24, 24, 24, 24, 24, 24], len=6
27038720220: [24, 24, 24, 24, 24, 24], len=6
27656894273: [24, 24, 24, 24, 24, 24], len=6
27828118071: [24, 24, 24, 24, 24, 24], len=6
27882029147: [24, 24, 24, 24, 24, 24], len=6
28216469724: [24, 24, 24, 24, 24, 24], len=6
28259097818: [24, 24, 24, 24, 24, 24], len=6
28378922271: [24, 24, 24, 24, 24, 24], len=6
28381685343: [24, 24, 24, 24, 24, 24], len=6
28460503643: [24, 24, 24, 24, 24, 24], len=6
28468266143: [24, 24, 24, 24, 24, 24], len=6
28488462649: [24, 24, 24, 24, 24, 24], len=6
28495250618: [24, 24, 24, 24, 24, 24], len=6
28528903135: [24, 24, 24, 24, 24, 24], len=6
28651337180: [24, 24, 24, 24, 24, 24], len=6
28652751234: [24, 24, 24, 24, 24, 24], len=6
28677593436: [24, 24, 24, 24, 24, 24], len=6
28995303071: [24, 24, 24, 24, 24, 24], len=6
29256506144: [24, 24, 24, 24, 24, 24], len=6
29259526111: [24, 24, 24, 24, 24, 24], len=6
29494629346: [24, 24, 24, 24, 24, 24], len=6
29613010972: [24, 24, 24, 24, 24, 24], len=6
29667822172: [24, 24, 24, 24, 24, 24], len=6
30034920321: [24, 24, 24, 24, 24, 24], len=6
30472826523: [24, 24, 24, 24, 24, 24], len=6
31072917472: [24, 24, 24, 24, 24, 24], len=6
31165672220: [24, 24, 24, 24, 24, 24], len=6
31236028575: [24, 24, 24, 24, 24, 24], len=6
31362189023: [24, 24, 24, 24, 24, 24], len=6
31365905921: [24, 24, 24, 24, 24, 24], len=6
31489343584: [24, 24, 24, 24, 24, 24], len=6
31554848348: [24, 24, 24, 24, 24, 24], len=6
31735823775: [24, 24, 24, 24, 24, 24], len=6
31920590545: [24, 24, 24, 24, 24, 24], len=6
32207166043: [24, 24, 24, 24, 24, 24], len=6
32338707424: [24, 24, 24, 24, 24, 24], len=6
32839544348: [24, 24, 24, 24, 24, 24], len=6
32963225948: [24, 24, 24, 24, 24, 24], len=6
33493197723: [24, 24, 24, 24, 24, 24], len=6
33532439840: [24, 24, 24, 24, 24, 24], len=6
33792232770: [24, 24, 24, 24, 24, 24], len=6
33815574876: [24, 24, 24, 24, 24, 24, 24], len=7
33882087473: [24, 24, 24, 24, 24, 24], len=6
33894597074: [24, 24, 24, 24, 24, 24], len=6
33961812575: [24, 24, 24, 24, 24, 24], len=6
34225842075: [24, 24, 24, 24, 24, 24], len=6
34228725920: [24, 24, 24, 24, 24, 24], len=6
34922282017: [24, 24, 24, 24, 24, 24], len=6
34932349850: [24, 24, 24, 24, 24, 24], len=6
35234412650: [24, 24, 24, 24, 24, 24], len=6
35343429172: [24, 24, 24, 24, 24, 24], len=6
35453797024: [24, 24, 24, 24, 24, 24], len=6
35460512223: [24, 24, 24, 24, 24, 24], len=6
35819447415: [24, 24, 24, 24, 24, 24], len=6
36660519772: [24, 24, 24, 24, 24, 24], len=6
36747578272: [24, 24, 24, 24, 24, 24], len=6
36921044320: [24, 24, 24, 24, 24, 24], len=6
37205589472: [24, 24, 24, 24, 24, 24], len=6
37366390303: [24, 24, 24, 24, 24, 24], len=6
37408203423: [24, 24, 24, 24, 24, 24], len=6
37445226847: [24, 24, 24, 24, 24, 24], len=6
37518295072: [24, 24, 24, 24, 24, 24], len=6
37748807474: [24, 24, 24, 24, 24, 24], len=6
37982139345: [24, 24, 24, 24, 24, 24], len=6
38577578523: [24, 24, 24, 24, 24, 24, 24], len=7
38639356064: [24, 24, 24, 24, 24, 24], len=6
38729311071: [24, 24, 24, 24, 24, 24], len=6
38823080020: [24, 24, 24, 24, 24, 24], len=6
39461852570: [24, 24, 24, 24, 24, 24], len=6
39667501024: [24, 24, 24, 24, 24, 24], len=6
39677327071: [24, 24, 24, 24, 24, 24], len=6
Считать правда будет не быстро, у меня 8 минут до миллиарда и 7 часов до 34 миллиардов. Там кстати и две len=7 попались.
Только к теме ускорения поиска по паттерну это конечно отношения не имеет.

 
 
 
 Re: Как писать быстрые программы
Сообщение10.04.2026, 17:48 
Кстати среди этих чисел встретились и высшие степени:
Код:
3417190620:
   +0: [2^2; 3; 5; 56953177]
   +1: [13; 17^2; 461; 1973]
   +2: [2; 19^2; 2131; 2221]
   +3: [3^2; 7; 11; 4931011]
   +4: [2^5; 103; 1036769]
   +5: [5^5; 113; 9677]  -- 5-я степень
12954962524:
   +0: [2^2; 7; 59; 7841987]
   +1: [5^2; 307; 409; 4127]
   +2: [2; 3; 11^2; 17844301]
   +3: [13^2; 19; 31; 130147]
   +4: [32; 269; 1504991]
   +5: [3^5; 3529; 15107] -- 5-я степень
14844195420:
   +0: [2^2; 3; 5; 247403257]
   +1: [11^2; 43^3; 1543] -- 3 степень
   +2: [2; 7; 17^2; 3668857]
   +3: [3^2; 23; 439; 163351]
   +4: [2^5; 83; 5588929]
   +5: [5^2; 71; 2213; 3779]
Ну и много где встречаются степени выше первой чисел больше 5.

 
 
 [ Сообщений: 1067 ]  На страницу Пред.  1 ... 68, 69, 70, 71, 72  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group