2014 dxdy logo

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

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




На страницу Пред.  1 ... 69, 70, 71, 72, 73, 74  След.
 
 Re: Как писать быстрые программы
Сообщение11.04.2026, 02:53 
Аватара пользователя
Сказать о сериях здесь можно так: сборная солянка. Представление в формате как у меня будет, например, таким:

Код:
     Счёт     Найдено      Время       Скорость
  от 0 до     D(24,6)      часов    D(24,6)/час
     34e9         112          7             16

Неужели и теперь не всё понятно и нужно меня неоднократно расспрашивать как я это посчитал и при этом ещё зачем-то переставить местами числитель и знаменатель и приписав это мне?

Это не риторический вопрос. Меня именно что интересует: почему Дмитрий так сделал?

Ну вот, а теперь уважаемый wrest, возможно, запустит в одном потоке счёт у себя. И, возможно, придумает способ как ускорить, не погружаясь в мир паттернов.

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

И тоже это не риторические вопросы. Именно что хочу понять: почему wrest, уже отчасти разобравшись, не захотел продолжить?

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

 
 
 
 Re: Как писать быстрые программы
Сообщение11.04.2026, 03:32 
Yadryara в сообщении #1722036 писал(а):
Меня именно что интересует: почему Дмитрий так сделал?
Успокойтесь: это банальная опечатка. Я уже лет 40 в курсе что скорость считается как штуки делить на время, а не наоборот. Мысль бежит впереди пальцев, глаз замыливается и не видит огрехов, тем более когда по 10 раз переделываешь текст остаются куски от предыдущего варианта, которые уже плохо согласуются с новыми, но уже не замечаешь мелких неточностей, тут бы глобально согласовать абзацы ...

 
 
 
 Re: Как писать быстрые программы
Сообщение11.04.2026, 11:37 
Yadryara в сообщении #1722036 писал(а):
Именно что хочу понять: почему wrest, уже отчасти разобравшись, не захотел продолжить?

По личным причинам, часть из которых вам не понравится, так что их упоминать не буду.
Другая часть тривиальна: в пентадекатлонной теме нафлужено 300 страниц, проскакивают какие-то склоки. Терминология пляшет туда-сюда. Каждый участник (или группы) придумал по велосипеду собственной конструкции. То есть мне надо изобретать свой велосипед. Можно. А зачем? :D А вот универсальные запчасти к велосипедам более-менее нейтральная часть.

 
 
 
 Re: Как писать быстрые программы
Сообщение11.04.2026, 13:09 
Аватара пользователя
wrest в сообщении #1722051 писал(а):
Другая часть тривиальна: в пентадекатлонной теме нафлужено 300 страниц, проскакивают какие-то склоки.

Кстати, я считаю, что флуда там довольно мало, а вот содержательных обсуждений полным-полно.

А склок там и вовсе не было, особенно в начале, когда мы были втроём.

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

Дмитрий написал прекрасные, очень быстрые программы, но далеко не все бросились по ним считать. Я пытался убедить считать именно по этим программам — не помогло. Но это были не склоки.

И 300 страниц там ещё и потому что не стали отделять, хотя я предлагал.

wrest в сообщении #1721799 писал(а):
То можно сделать такой глубокомысленный вывод, как например что из четырёх чисел идущих подряд, два числа обязательно чётные и два обязательно нечётные, и нечётные являются кандидатом в простые близнецы, а чётные -- таким кандидатом не являются :D

А вы понимаете что из 9-ти чисел идущих подряд, ровно два числа обязательно делятся именно на 3 в первой степени, а ровно одно делится на 3, как минимум во второй степени?

Если понимаете, тогда какие проблемы составить паттерн, сделав несколько аналогичных наблюдений? То есть если например есть болванка [1,1,1,1,1,1,1,1,1], то пока записываем туда [9,1,1,3,1,1,3,1,1].

А потом, для полноты картины запишем [1,9,1,1,3,1,1,3,1]. То есть двигаем девяточку слева направо, а 3-ки вслед за ней двигаются как бы сами собой.

Осталось расставить 2, 5 и 7 в степенях. Это не шибко сложно, особенно для коротких цепочек.

 
 
 
 Re: Как писать быстрые программы
Сообщение11.04.2026, 17:01 
Yadryara в сообщении #1722056 писал(а):
А вы понимаете что из 9-ти чисел идущих подряд, ровно два числа обязательно делятся именно на 3 в первой степени, а ровно одно делится на 3, как минимум во второй степени?

Вы напрасно настаиваете тут, в этой теме. Давайте вернёмся к вопросу как писать быстрые программы.

 
 
 
 Re: Как писать быстрые программы
Сообщение11.04.2026, 17:44 
Yadryara
Заведите себе уже отдельную тему про теорию кортежей и там объясняйте всем по 100 раз всю теорию с самого начала, зачем это размазывать каждый раз по разным темам то ... :facepalm:

 
 
 
 Re: Как писать быстрые программы
Сообщение11.04.2026, 20:10 
Аватара пользователя
wrest в сообщении #1722059 писал(а):
Давайте вернёмся к вопросу как писать быстрые программы.

Этот вопрос как был центральным, так и остаётся. Никуда от него и не думал уходить. Вот Дмитрий написал программу, которая у него искала конкретные кортежи со средней скоростью 16 штук в час.

Вопрос к вам: как написать более быструю программу?

 
 
 
 Re: Как писать быстрые программы
Сообщение11.04.2026, 20:25 
Yadryara в сообщении #1722069 писал(а):
Вопрос к вам: как написать более быструю программу?

Другую или ускорить эту?

(Оффтоп)

Зачем вы паясничаете-то? :D

 
 
 
 Re: Как писать быстрые программы
Сообщение11.04.2026, 21:15 
Аватара пользователя
wrest в сообщении #1722070 писал(а):
Другую или ускорить эту?

Несущественно. Главное чтобы она кортежи D(24,6) быстрее искала.

Не паясчничаю и не подкалываю, совершенно серьёзно спрашиваю. Сильно подозреваю что такой поиск можно ускорить в сотни раз.

 
 
 
 Re: Как писать быстрые программы
Сообщение11.04.2026, 23:21 
Yadryara в сообщении #1722075 писал(а):
Несущественно.
Существенно: менять алгоритм или ускорять этот.
Yadryara в сообщении #1722075 писал(а):
Главное чтобы она кортежи D(24,6) быстрее искала.
Какие и сколько? Один любой? Один наименьший? Все до триллиона? Хоть сколько-нибудь до триллиона? Первые 1000шт? Любые 1000шт? И ещё несколько вопросов.
И вообще говоря может получиться 6 (или даже вплоть до $2^6-1=63$ если требования окажутся независимыми) разных программ, решающих разные задачи. Две правда уже и так решены, но можно бороться за ускорение поиска уже найденных результатов.
Так какую Вы хотите ускорять?

PS. Мне если что не особо интересно, просто бесит вот это умолчание важных условий в постановке задач для других. Получается диалог ради флуда диалога, вместо того чтобы сразу сказать полно и ясно.

 
 
 
 Re: Как писать быстрые программы
Сообщение12.04.2026, 02:26 
И опять же (снова): затраченное время на оптимизацию финальных стадий в программе для D(24,6) будет потрачено впустую мало поможет программе для D(24,31) - потому что в ней до финальных стадий будет доходить намного реже и их оптимизация уже не будет так сильно влиять на общую скорость. А оптимизировать до предела первые стадии в программе D(24,6) тоже не имеет большого смысла - скорость почти наверняка (после какого то этапа оптимизации) будет ограничиваться уже не ими, а финальными стадиями. Т.е. вообще не получится сравнить оптимальность первых стадий как только скорость упрётся в скорость финальных стадий.
Вот потому задачи ускорения поиска D(24,6) и D(24,31) могут быть сильно разными. И тратить время на первую вместо второй ... Непонятно зачем.

-- 12.04.2026, 02:42 --

Yadryara в сообщении #1722069 писал(а):
Вот Дмитрий написал программу, которая у него искала конкретные кортежи со средней скоростью 16 штук в час.
Если речь про однострочную программу с предыдущей страницы с кучкой numdiv, то нет, она искала вовсе не конкретные кортежи, а кортежи любой длины начиная с 6 и с любым количеством делителей кратным 24. И к кучке D(24,6) нашла и D(24,7) и даже D(48,6). Нашла бы и другие если подождать сильно подольше.
Да и скорость её не 16шт/ч, а зависит от диапазона, с ростом чисел скорость падает: 110млрд по 8 минут каждый это 880 минут или 15ч на все, а она работала 27ч.

 
 
 
 Re: Как писать быстрые программы
Сообщение12.04.2026, 04:04 
Аватара пользователя
Dmitriy40 в сообщении #1722085 писал(а):
Да и скорость её не 16шт/ч,

Ну вот, даже с этим начали спорить. Не согласен, на том интервале который я показал, именно 16 штук в час, по вашим данным.

Dmitriy40 в сообщении #1722085 писал(а):
Да и скорость её не 16шт/ч, а зависит от диапазона, с ростом чисел скорость падает:

Обычно конечно падает. Но не всегда, особенно в начале натурального ряда. Вот я пересчитал ваши цепочки, и получилась такая табличка:

Код:
     Счёт     Найдено      Время       Скорость
     * e9     D(24,6)      часов    D(24,6)/час
  0 —  34         112          7             16
  0 — 110         551         27             20


Примечание. Более длинные непрерывные кортежи с диаметром 24 тоже пока засчитаны как D(24,6). Не хочется усложнять обозначения, и но вроде можно записать и так: D(24,>=6)

Может конечно я что-то не так понял в ваших результатах.

 
 
 
 Re: Как писать быстрые программы
Сообщение12.04.2026, 05:05 
Аватара пользователя
Dmitriy40 в сообщении #1722079 писал(а):
Существенно: менять алгоритм или ускорять этот.

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

Существенно: сравнивать скорости программ на одном и том же компе и в одном потоке. По возможности подравнять и другие условия поиска. Здесь я опять-таки полагаю что меня понимают. И вполне возможно, что лучше меня понимают как корректно сравнить скорости.

Dmitriy40 в сообщении #1722079 писал(а):
Какие и сколько? Один любой? Один наименьший? Все до триллиона? Хоть сколько-нибудь до триллиона? Первые 1000шт? Любые 1000шт?

Любые 100 штук D(24,>=6).

Может вы обратили внимание, что я старался находить не менее ста кортежей в каждой порции, чтобы скорость, которую я по ним считал, была понадёжней. Ну вот, например, последний поиск D(96,>=9):

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

0-0-9-0-0-4!     15     2! * 6! 12       1e34          98        818            432
0-0-9-0-0-4!     16     2! * 6! 10       1e34          85        629            487
0-0-9-0-0-4!     17     2! * 6! 10       1e34          85        753            407
0-0-9-0-0-4!     18     2! * 6!  2       1e34          16        157            368

0-1-8-0-0-4!     15     2!*6!*1 70       1e35         106        528            723
0-1-8-0-0-4!     16     2!*6!*1 70       1e35         106        500            764
0-1-8-0-0-4!     17     2!*6!*1 70       1e35         106        500            764
0-1-8-0-0-4!     18     2!*6!*1 70       1e35         106        560            682
                     
1-0-8-0-0-4!     16  2!*6!*1*1 130       1e37         108        470            828
1-0-8-0-0-4!     17  2!*6!*1*1 130       1e37         108        461            844
1-0-8-0-0-4!     18  2!*6!*1*1 130       1e37         108        480            812

Как видим, не всегда удавалось находить не менее 100 из-за переполнения стека. Автоматический перезапуск пока не применял.

Dmitriy40 в сообщении #1722079 писал(а):
И ещё несколько вопросов.

Задавайте.

Dmitriy40 в сообщении #1722079 писал(а):
Так какую Вы хотите ускорять?

Я считал что моя мысль простая и вроде должна быть понятна: надо написать такую программу, которая будет искать кортежи быстрее. В данном случае речь пока о любых по величине не менее чем 100 кортежах D(24,>=6).

Будет ли ускоряться существующая программа или написана полностью новая — несущественно. Важен именно результат, то есть скорость нахождения кортежей.

Dmitriy40 в сообщении #1722085 писал(а):
Вот потому задачи ускорения поиска D(24,6) и D(24,31) могут быть сильно разными.

Конечно сильно разные.

Dmitriy40 в сообщении #1722085 писал(а):
И тратить время на первую вместо второй ... Непонятно зачем.

Возможно, со временем поймёте.

Ну вот, например, такие причины имеются:

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

Dmitriy40 в сообщении #1722079 писал(а):
Мне если что не особо интересно, просто бесит вот это умолчание важных условий в постановке задач для других.
[..]
вместо того чтобы сразу сказать полно и ясно.

А не надо беситься. Вполне можно уточнить у автора. Я вроде не имею привычки объявлять вопросы риторическими и игнорить их. Вот выше ответил вроде бы подробно. Или всё равно нет полной ясности? Нет проблем, можно ещё уточнить.

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

 
 
 
 Re: Как писать быстрые программы
Сообщение12.04.2026, 12:47 
Я думаю так, что действительно нужна тема по расчету плотности цепочек. Нужна формула расчёта вероятности по паттерну. И проверка что формула правильная на малых длинах. Если это конечно ещё не сделано. Ну вот для D(24,6) в диапазоне 10^9-10^10 при m=6 нашлось 35 цепочек. Применение паттерна должно увеличивать вероятность.
Если это для темы-мечты, ехать туда. Если нет, то создавать новую тему.

 
 
 
 Re: Как писать быстрые программы
Сообщение12.04.2026, 13:45 
Аватара пользователя
wrest в сообщении #1722105 писал(а):
Нужна формула расчёта вероятности по паттерну. И проверка что формула правильная на малых длинах. Если это конечно ещё не сделано.

Я исхожу из того что это ещё не сделано. По крайней мере, в законченном удобоваримом виде я этого вроде не видел.

wrest в сообщении #1722105 писал(а):
Ну вот для D(24,6) в диапазоне 10^9-10^10 при m=6 нашлось 35 цепочек. Применение паттерна должно увеличивать вероятность.

Не только вероятность, но и скорость увеличивается. Заметили по моим новым данным? Даже несмотря на то, что интервал (а значит и среднее число цепочки) вырос на два порядка, серия с одним простым опять выиграла у всех остальных.

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


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