2014 dxdy logo

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

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




На страницу Пред.  1 ... 66, 67, 68, 69, 70
 
 Re: Как писать быстрые программы
Сообщение07.04.2026, 20:46 
Аватара пользователя
Dmitriy40 в сообщении #1721770 писал(а):
Подразумевалось что в этом интервале есть одна цепочка. Т.е. мат.ожидание интервала, не количества цепочек.

В каком, в этом интервале? Вот я указал интервал: $0-61\#$. Понятно же какая нижняя граница, а какая верхняя?

А у вас, как понимаю, указана только какая-то одна граница, а вторая не указана. Предположу, что речь идёт об интервале: $0-1e28$ Так? И в нём ожидается ровно 1 цепочка?

Dmitriy40 в сообщении #1721770 писал(а):
Откуда Вы это знали?! Как получили цифру 11 месяцев?

Потому что я уже довольно долго гонял программу и сделал вывод о линейности временных затрат. Так что если я за месяц проверил 1/11 интервала, то нечего и мудрить — на весь интервал уйдёт 11 месяцев. Я об этом уже рассказывал. Даже больше месяца потратил — где-то в феврале-марте прошлого года.

Dmitriy40 в сообщении #1721770 писал(а):
Сколько центральных 15-к для этого нашли и за какое время?

Ну где-то полторы-две сотни и нашёл. Это несущественно вроде. Прогнозы по HL1 уже были нами ранее многократно проверены и я доверял этой оценке. Кстати, она блестяще подтвердилась: было найдено 1147 кортежей.

Dmitriy40 в сообщении #1721770 писал(а):
Что-то в своих примерах Вы с ног на голову всё перевернули.

Не заметил такого. Или имеете в виду что есть разные способы счёта? Да, конечно есть, и я уже сколько-то лет говорю, что неплохо для надёжности считать разными способами.

Dmitriy40 в сообщении #1721770 писал(а):
Сначала говорили для оценки времени нужна средняя скорость нахождения кортежей (с чем я и стал спорить),

А зачем с этим спорить? По известной средней скорости разве нельзя оценить затраты времени на нахождение того или иного количества кортежей ?

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

Нет, это вы перевернули. У меня время как было в знаменателе, так и остаётся:

средняя скорость равна
мат.ожидание количества кортежей в интервале разделить на ожидаемое время проверки того же самого интервала


Dmitriy40 в сообщении #1721770 писал(а):
из мат.ожидания количества кортежей (1 кортеж на интервал 1e28) и неизвестной средней скорости нахождения кортежей (ни один ещё не найден) получите ожидаемое время.

Ожидаемое время чего? Среднее время нахождения одного кортежа? Это время очевидно будет равно времени проверки этого интервала. Проверили этот интервал и в среднем нашли один кортеж.

Dmitriy40 в сообщении #1721770 писал(а):
Yadryara в сообщении #1721768 писал(а):
Нет конечно, если известны тенденции, то можно экстраполировать их, учтя найденные ранее скорости.
Не работает. Или слишком грубо.

Работает. Вот что вы сами сказали:

Dmitriy40 в сообщении #1646941 писал(а):
Вот теперь в него верю.

А слишком грубо или не слишком, это станет ясно когда я попытаюсь экстраполировать. А до этого ещё далеко.

 
 
 
 Re: Как писать быстрые программы
Сообщение07.04.2026, 21:53 
Yadryara
Эта тема заявлена про ускорение работы программ.
Вот у меня есть программа P1.
После попытки её оптимизации получаю программу P2.
Чтобы выяснить какая быстрее (чтобы найти искомый кортеж побыстрее) запускаю обе на 1 час:
P1 работает 1 час и находит 0 кортежей;
P2 работает 1 час и находит 0 кортежей.
Вычисляю скорости Вашим методом: v(P1)=0/1=0, v(P2)=0/1=0 - одинаковые?! А как же оптимизация?
Вопрос: ну и какая из них быстрее и выгоднее и какую использовать?
И нет, они не одинаковы, они очень и очень разные.
Хотя считают один и тот же паттерн с одним и тем же мат.ожиданием в одном и том же интервале. Только P1 будет обрабатывать этот интервал 1 год, а P2 17 лет. Вот такая "оптимизация".
Ну и как мне по Вашему методу понять какую использовать?

 
 
 
 Re: Как писать быстрые программы
Сообщение08.04.2026, 04:44 
Аватара пользователя
Dmitriy40 в сообщении #1721779 писал(а):
Вычисляю скорости Вашим методом: v(P1)=0/1=0, v(P2)=0/1=0 - одинаковые?!

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

О чём тут вы спрашиваете? Разве это с самого начала не было понятно??

А у вас-то время почему в числителе? Вот в этом утверждении:

Dmitriy40 в сообщении #1721770 писал(а):
среднюю скорость вычисляете как известное непонятно откуда время делить на мат.ожидание количества кортежей.

Подчёркивание моё. Это ложь. Я так не вычисляю. Я не время делю, а делю на время.

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

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

Dmitriy40 в сообщении #1721779 писал(а):
Ну и как мне по Вашему методу понять какую использовать?

Так я же только что написал:

Yadryara в сообщении #1721777 писал(а):
А слишком грубо или не слишком, это станет ясно когда я попытаюсь экстраполировать. А до этого ещё далеко.

Я ещё D(96, 8) не закончил считать. А впереди ещё D(96, 9), D(96, 10) и так далее.

 
 
 
 Re: Как писать быстрые программы
Сообщение08.04.2026, 12:55 
Yadryara в сообщении #1721788 писал(а):
Для того чтобы ответить на этот вопрос, нужно, например, в качестве одного из методов тестировать их на более коротких цепочках.
А на более коротких кортежах их скорости перебора (и соответственно выдачи кортежей) становятся одинаковыми. Из-за слишком частого пролёта кортежей до медленных финальных проверок, которые и ограничивают скорости обеих программ и которые не оптимизировались и остались одинаковыми в обеих. Довольно частая ситуация вообще-то, когда оптимизируется лишь часть программы, а не вся целиком.
Так как же выбрать одну из двух программ? Какая из них оптимальнее? Дала эффект оптимизация или ну её нафиг? Ваш метод (измерение/оценка средней скорости выдачи кортежей) ответа не даёт.

Yadryara в сообщении #1721788 писал(а):
Понятно же, что для данного случая для сравнения скоростей он неприменим.
А между тем это самый практически интересный случай - поиск неизвестного пока кортежа!
И если измерять скорость именно перебора кандидатов - тогда скорость вполне измерима и позволяет сравнивать разные версии программ, даже для разных паттернов! Даже если кортежей при этом не находится ни одного.
О чём Вам и говорю, что этот метод сравнения (скорости не выдачи кортежей, а перебора кандидатов) более универсален. И при наличии оценок мат.ожидания легко пересчитывается в ожидаемое время или среднюю скорость выдачи кортежей. Но наоборот не всегда! И как раз в самом интересном случае (поиск неизвестного кортежа) - обратно не пересчитывается! Потому что в числителе 0 и скорости всех вариантов программ оказываются равными (нулевыми), что не позволяет сделать вывод какая быстрее и выгоднее.
И поэтому речь всегда шла именно про скорость перебора, а не выдачи кортежей. Ваше желание оценивать последнюю для ненайденных кортежей непонятно и не позволяет для них сравнивать скорости разных вариантов программ и соответственно выполнять оптимизацию скорости их поиска. А для накопления статистики уже известных кортежей да, можно и так.

-- 08.04.2026, 13:03 --

Dmitriy40 в сообщении #1721807 писал(а):
А для накопления статистики уже известных кортежей да, можно и так.
Только смысла нет - скорость перебора кандидатов и скорость выдачи кортежей монотонно связаны, чем выше первая, тем выше вторая (и наоборот). Потому можно всегда оптимизировать первую как более просто измеримую, это даст эффект и для второй.

 
 
 [ Сообщений: 1039 ]  На страницу Пред.  1 ... 66, 67, 68, 69, 70


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