2014 dxdy logo

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

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




На страницу Пред.  1 ... 61, 62, 63, 64, 65
 
 Re: Как писать быстрые программы
Сообщение23.03.2026, 16:24 
Yadryara в сообщении #1720924 писал(а):
То есть разница между результатами у вас и у меня огромная. И лишь отчасти она может объясняться доп. проверкой степени. Остальное — пока объясняю разными паттернами.

Видимо и паттерном в том числе. В задачах D(96,L) цепочки наверное отбрасываются позже потому, что множителей надо набрать больше чем для D(48,L). Но тут я не знаю, паттерноведение не ведаю :D
Однако разница в 30 раз наводит на мысли, что дело не только в паттерне.

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

 
 
 
 Re: Как писать быстрые программы
Сообщение23.03.2026, 16:39 
Аватара пользователя
Dmitriy40
Нету плато такого длинного, я же поэтому и остановился, хотя может стоило ещё строчку показать.

Меня пока интересовало распределение в начале и вблизи максимума. Чтобы сгладить статистику надо просто на подольше запустить, чтоб максимум был не 8 тысяч, а например 100 тысяч.

Ну вот, ниже тысячи падает и уже не возвращается:

Код:
[0, 1636, 3016, 3892, 4887, 5719, 6496, 7182, 7537, 7426, 7656, 7973, 8100, 7916, 8375, 8239, 8088, 8334, 8307, 8080, 8219, 8032, 7919, 8083, 8160, 7727, 7363, 7444, 7290, 7346, 7268, 7229, 7231, 7028, 6883, 6668, 6693, 6627, 6457, 6340, 6217, 5945, 6147, 6113, 5930, 5653, 5636, 5655, 5456, 5407, 5205, 5262, 5253, 5135, 4997, 5047, 4846, 4914, 4860, 4671, 4661, 4490, 4357, 4483, 4434, 4307, 4170, 4252, 4143, 4099, 4027, 3940, 3884, 3981, 3795, 3717, 3713, 3767, 3681, 3601, 3422, 3431, 3442, 3417, 3313, 3324, 3273, 3231, 3215, 3112, 3120, 3013, 3042, 3005, 3022, 2919, 2967, 2847, 2866, 2890, 2862, 2855, 2824, 2708, 2692, 2609, 2553, 2590, 2638, 2453, 2442, 2496, 2409, 2446, 2481, 2338, 2235, 2313, 2308, 2283, 2218, 2196, 2232, 2269, 2136, 2193, 2148, 2111, 2018, 2012, 2105, 2034, 2052, 1976, 1982, 1915, 1900, 1942, 1866, 1848, 1804, 1836, 1806, 1730, 1781, 1734, 1726, 1681, 1751, 1731, 1661, 1677, 1703, 1662, 1717, 1701, 1624, 1616, 1638, 1522, 1554, 1554, 1551, 1559, 1517, 1498, 1594, 1443, 1504, 1395, 1481, 1453, 1451, 1397, 1449, 1383, 1414, 1399, 1336, 1373, 1336, 1377, 1299, 1324, 1293, 1297, 1262, 1311, 1329, 1304, 1270, 1251, 1233, 1246, 1250, 1233, 1217, 1186, 1202, 1231, 1160, 1126, 1125, 1081, 1154, 1126, 1119, 1116, 1119, 1152, 1114, 1105, 1101, 1064, 1064, 1088, 972, 1055, 1067, 992, 1031, 977, 1036, 1011, 1008, 976, 981, 993, 961, 987, 1001, 1002, 971,

Концовка скучная:

Код:
0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]


-- 23.03.2026, 16:43 --

wrest
А вы запустите вашу программу по моему паттерну и увидите сами будет ли похожая статистика.

 
 
 
 Re: Как писать быстрые программы
Сообщение23.03.2026, 18:02 
Yadryara в сообщении #1720934 писал(а):
А вы запустите вашу программу по моему паттерну и увидите сами будет ли похожая статистика.

Так вы его дайте в тему :)
Я какой-то, кажется первый, попробовал, так он оказался кривой. Числа вида n0+k*m на него не все делятся...

 
 
 
 Re: Как писать быстрые программы
Сообщение23.03.2026, 18:18 
Аватара пользователя
wrest, как думаете, а вот это я для кого написал?

Yadryara в сообщении #1720561 писал(а):
Я же вам актуальные наборы дал, для D(96,20). Или у вас не получается запустить?

[..]

И цепочки у меня перебираются чуть иначе:

не n=n0+m*i*2

а n = v[1] * (n0 + m * i)

 
 
 
 Re: Как писать быстрые программы
Сообщение23.03.2026, 18:37 
Yadryara в сообщении #1720939 писал(а):
как думаете, а вот это я для кого написал?

Ок, подожду пока вы или ещё кто дадите сюда какой-нибудь несекретный паттерн с пояснениями как пользоваться.
Чтобы не только я мог попробовать поускорять, а кто угодно.

Ну и заодно, сообщите пож-ста с какой скоростью обрабатывается у вас, ибо если у вас уже в 10 раз быстрее, то незачем улучшать em3() с 29 страницы и/или em4() c 63 страницы.
А если у вас медленнее в 10 раз - то чего не берёте em3() с 29 страницы или em4() с 63 страницы?

Кстати это может и неплохо, что у вас по-другому считается. Наводит на мысли об унификации следующей версии, em5()

 
 
 [ Сообщений: 965 ]  На страницу Пред.  1 ... 61, 62, 63, 64, 65


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