2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1 ... 24, 25, 26, 27, 28, 29, 30 ... 47  След.
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение30.01.2024, 14:12 
Заслуженный участник


20/08/14
11780
Россия, Москва
Исходя из моих цифр PARI проверяет 30e6/10м=50e3/с, около 50 тысяч цепочек в секунду. До 1e21 (где Врублёвским найдена 17-240-ка) надо перебрать примерно 450e12 цепочек, по 50e3/с это 9e9 секунд или 285 лет в один поток. Ну-ну. Какую таблицу не используй (с технологией выше размер таблиц особой роли не играет если только она больше десятков тысяч) и как не ускоряй перебор этих таблиц, 450e12 вариантов проверить всё равно придётся. И ускорять надо внутренний цикл, поднимать цифру 50e3/с. А чтобы например уложиться в сроки конкурса (вроде 2 месяца осталось?) надо PARI запустить в 1700 потоков. В принципе реально если кто имеет доступ к боинку или кластеру из пары сотен компов.
Вот только переписав эту совсем не сложную программу с PARI на C (используя готовую библиотеку проверки простоты чисел) несложно получить скорость раз в 100 выше. И соответственно хватит и пары десятков потоков.

Моя позапрошлогодняя (без двух ускорений в 2023, которые заточены строго на 19-252) программа перебирает 9e13 чисел в секунду (или около 400e6 цепочек в секунду), соответственно в одном потоке ей до 1e21 считать 130 дней. Чтобы успеть на конкурс надо её запустить минимум в 2 с небольшим потока (или за полтора месяца в 4 потока). Вопрос зачем, вряд ли Врублёвский пропустил меньшую 17-ку.

-- 30.01.2024, 15:05 --

Поделюсь ещё забавной (вряд ли имеющей практический смысл) идеей.
Если число x является решением, то оно имеет допустимый остаток по всем вообще простым, даже те что больше самого x. По простым больше диаметра цепочки количество запрещённых остатков всегда равно длине паттерна, т.е. для 19-252 любое число x можно за 19 делений проверить на 19 запрещённых остатков по простым большим этого x. Но это так, мысли в сторону.
Идея вот в чём. Если число x решение, то оно имеет правильное значение не только по таблице скажем 41#, но и вообще по любой таблице из произведения любых комбинаций простых чисел. И если нас интересует к примеру x<67#, то можно искать строгое пересечение таблиц 67# (7.858e24) и скажем произведения простых с 71 по 131 (почти 67e24, главное больше 67#) и произведения простых с 137 по 193 (378e24>67#) и так далее. То есть заменить вычисление допустимых остатков на вычисление КТО с кучей таблиц и вместо деления (получения остатка) и определения его допустимости просто вычислять таблицы по КТО и оставлять в них только совпадающие элементы.
К сожалению все таблицы отличающиеся от произведения последовательных первых простых (т.е. 67#) будут иметь размер больше, сильно больше. А раз уж КТО в обычном режиме (без сложных извращений) не умеет выдавать числа отсортированно, то не получится идти по всем таблицам одновременно и получать их итерационно (последовательно), придётся сначала все их вычислить, отсортировать (отдельная песня!) и лишь потом исключать лишние элементы. А таблица 137-193 имеет уже не 3e17 элементов, а 85e24 элементов! И соответственно вычислять её в 300 миллионов раз дольше таблицы 67#. И очень вряд ли вычисление КТО будет в сотню миллионов раз быстрее проверки элемента таблицы 67# всего лишь по 12 простым на допустимые остатки. Так что идея интересная, но страшно (на много порядков!) тормозная.
Смысл имелся бы если бы все таблицы получать строго в порядке возрастания чисел. И тогда просто идти по таблицам сравнивая числа из всех них и оставляя только совпадающие, это совсем просто и быстро. Но для этого надо во-первых извратиться с КТО, во-вторых общее число элементов можно поделить лишь на два массива, каждый размером до корня из полного количества. И для такого вычисления таблицы 137-193 с 85e24 элементов надо два (отсортированных! причём по разным критериям!) массива размером до примерно 9e12 (общим размером под 300ТБ). Тоже нереально.

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


29/04/13
8135
Богородский
Dmitriy40 в сообщении #1627529 писал(а):
А раз уж КТО в обычном режиме (без сложных извращений) не умеет выдавать числа отсортированно, то не получится идти по всем таблицам одновременно и получать их итерационно (последовательно), придётся сначала все их вычислить, отсортировать (отдельная песня!) и лишь потом исключать лишние элементы.

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

А ведь дельты неслучайные, ложатся циклично, образуют узоры. Я ещё летом писал. Вот для 6-го числа 19-252 узоры для периодов 11#

Код:
11363   223    13 + 7#*1    224
1145A   439    19 + 7#*2       216
12453   509    89 + 7#*2             70
1235A   593   173 + 7#*2               84
1146A   769   139 + 7#*3          176
12463   839   209 + 7#*3             70
1236A   923    83 + 7#*4               84
11453  1279    19 + 7#*6                 356
1135A  1363   103 + 7#*6               84
12353  1433   173 + 7#*6             70
11463  1609   139 + 7#*7          176
1136A  1693    13 + 7#*8               84
12363  1763    83 + 7#*8             70
1245A  1979    89 + 7#*9       216
11353  2203   103 + 7#*10   224
1246A  2309   209 + 7#*10                            106


и 13#

Код:
    439                 440
   1609             1170
   3743         2134
   4003                               260
   4289                            286
   5459             1170         
   5899                 440
   8293                    2394
   9463                        1170
   9749                            286       
  10009                               260
  10163                                         154
  13753                                  3590
  14299                                      546
  14453                                         154
  15469                                            1016   
  15623                                         154
  16169                                      546
  19759                                  3590
  19913                                         154
  20173                               260
  20459                            286
  21629                        1170
  24023                    2394
  24463                 440
  25633             1170
  25919                            286
  26179                               260
  28313         2134
  29483             1170
  29923                 440
  30029                                                         106

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение07.02.2024, 14:35 
Заслуженный участник


20/08/14
11780
Россия, Москва
Узоры просматриваются, кто же спорит.
Только как из первого получить второй? Вот ведь вопрос.
Было 4 пика, стало 6. И только два остались на месте (+106 и центральный). Сохранится ли даже хоть это дальше? Надо смотреть. Ну и остальное.
Придумаете как получать следующий узор из предыдущего (или из пары произвольных) - возможно будет прорыв.

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение07.02.2024, 15:56 
Заслуженный участник


20/08/14
11780
Россия, Москва
Я вот вчера проверил ещё одну идею ускорения конкретно своей программы.
В новой версии есть затык, так как проверяется делимость лишь на 71 и больше (меньшие проверены построением таблиц), то они слишком плохо отфильтровывают неподходящие кандидаты: за 2 такта на число проверяют делимость на простые 71-128 и отсеивают 15.67:1, но так как обрабатывается сразу 32 числа, то из каждой такой партии на второй фильтр попадает в среднем 2 числа, а он выполняется существенно медленнее и фильтруя сразу по 23 простым 131-251 отсеивает до общего коэффициента 197:1, но уже за 2.7 такта, в итоге проверка по простым 71-251 занимает 4.7 такта на число.
Но нам ведь совершенно не обязательно пользоваться таблицами именно подряд простыми, можно и по любым, а чем меньше простое, тем сильнее по нему отфильтровывается. И значит можно освободить простые 67-59 для фильтров, а до 61#=1e23 добить простыми 131-137 (почти до 6e23), пусть количество проверок станет в итоге больше, зато много кандидатов будет отфильтровываться первым фильтром без вызова второго.
В итоге вышло что использовать надо 53# и 131,137, что увеличивает количество проверок в 2 раза для перекрытия всего 67# (с 3e17 до 6e17), зато коэффициент фильтрации растёт с 15.67:1 до 47:1, т.е. на второй фильтр попадёт лишь 70% всех чисел. При этом время на число для первого фильтра увеличится не сильно, с 2.0 тактов до 2.5 тактов, но общее время станет $2.5\cdot0.3+0.7(2.5+2.7)=4.4$ такта на число (время второго фильтра не растёт вплоть до 32 проверяемых простых). Выигрыш 7% в скорости. При двухкратном проигрыше в объёме вычислений. Однозначно отказать.
Продление этой идеи делает только хуже: скорость растёт медленно, а объём вычислений растёт гораздо быстрее.
В итоге ещё одна интересная идея отправляется в помойку. Или в архив интересных, но бесполезных в данной задаче.


Другая идея, давно всё хочу сделать.
Считать одновременно не 32 числа, а 64. Смысл в том что уже через 3 итерации (из 12) из 64 чисел в среднем остаётся 26 и их можно скомпоновать в один регистр с 32 числами и в итоге вместо 12+12 итераций по 32 числа выполнить лишь 3+3+9. Ускорение 24/15=1.6 раза почти без потерь скорости. Но. Как всегда есть но: это ускоряет лишь первый фильтр, который будет выполняться не за 5.3 такта на итерацию, а за скажем 6 тактов на итерацию, и 64 числа обработаются не за $24\cdot5.33=128$ тактов, а за $(3+3)\cdot6+9\cdot5.3=84$ такта или за 1.3 такта на число. Выигрыш -0.7 такта на число, или с 4.7 до 4.0 такта на два фильтра. Всего 18%! А при учёте прочих фильтров упадёт и до 15%. При 60% ускорении вычислений! Вот важность ускорять лишь критичные места, а не абы что. И первый фильтр при всей его важности оказывается не столь уж критическим местом.
Идея тоже отправляется в долгий ящик, ради теоретических 15% заметно усложнять программу не буду (там есть несколько нерешённых проблем и сколько они отнимут в скорости я пока не знаю, надо реально решать и смотреть что получится, выигрыш вполне свестись и к нулю).


PS. Вот даже интересно было бы прикинуть сколько таких неудавшихся идей (фактически алгоритмов) уже были придуманы и из-за неэффективности отброшены или отложены. Может получиться и поболее чем у кое-кого неназываемого. ;-)

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


29/04/13
8135
Богородский
Dmitriy40 в сообщении #1628746 писал(а):
Было 4 пика, стало 6. И только два остались на месте (+106 и центральный). Сохранится ли даже хоть это дальше?

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

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

Сильное усложнение происходит. Но и много повторов становится. Для 17# дельта $7854$ встречается 16 раз из 64. Как это использовать — не понятно. Может кому идея придёт.

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


29/04/13
8135
Богородский
Yadryara в сообщении #1628759 писал(а):
106 это аппендикс, он тоже сохраняется, то в самом верху, то в самом низу.

Для того чтобы ось симметрии легла точно в центр $\frac{p\#}2$ надо считать остатки не для 1-го числа и не для 6-го, а для центрального, 10-го. Тогда аппендикс всегда будет вверху, в первой строчке. И каждый остаток будет иметь парный, дополняющий его до $p\#$. Например, здесь $53+2257=11\#$ и $977+1333=11\#$

Код:
    53         106
   277               224
   493                     216
   563                            70
   647                                 84
   823                                    176
   893                                          70
   977                                               84
  1333                                                    356
  1417                                               84
  1487                                          70
  1663                                    176
  1747                                84
  1817                           70
  2033                     216
  2257               224


Справедливо это будет и для $67\#$.

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


29/04/13
8135
Богородский
Dmitriy40 в сообщении #1628746 писал(а):
возможно будет прорыв.

Теперь уже есть прорыв? По другой причине?

Ведь вычитание выполняется гораздо быстрее КТО? В КМ бывают запутанные частицы, а здесь запутанные пары остатков
налицо. Если $145661904018925087$ кандидат, то и парный кандидат известен:

$67\#-145661904018925087   = 7858321405418363036954003$

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение08.02.2024, 14:53 
Заслуженный участник


20/08/14
11780
Россия, Москва
Симметризация это хорошо.
Но скорее для PARI, и не столь уж сильно (проверка кандидата сильно дольше вычисления КТО).

В моей же программе в любом случае придётся проверять оба кандидата на делимость по простым 71-...
Я выше сказал что вычисление КТО и проверка делимости по простым 71-127 у меня занимает 2.0 такта на число, если убрать проверку и оставить только КТО, скорость будет 1.0 такта на число. Но КТО и так уже вычисляется во внутреннем цикле всего одним сложением по модулю, замена его на вычитание выигрыша не даёт вообще. А внешние циклы занимают слишком мало времени (менее 1%) и такое их ускорение смысла не имеет.

Под прорывом я понимал другой алгоритм: без вычисления всех 3e17 вариантов (для 67# и 19-252) получать их строго по возрастанию и сравнивать с другими такими же возрастающими таблицами (тоже без полного их вычисления). Совпадений для двух таблиц (67# и 71-131) будет примерно 3e17/8e24*3.65e24/6.7e25=2e-9, 500млн:1, или в 18 раз меньше исходных 3e17. Взяв не одну дополнительную таблицу, а штук 10, количество совпадений упадёт с исходных 293e15 до 64e12, их уже можно проверить подробно. Насколько сложным выйдет одновременный расчёт всех этих таблиц и проверка совпадений я пока не думал, вполне возможно будет медленнее текущей проверки делимостей. Но пока нет метода расчёта строго возрастающих таблиц (что ценно само по себе) это и прикидывать незачем.

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


29/04/13
8135
Богородский
Давайте ещё раз по актуальному алгоритму проверки кандидатов.

На первом этапе производится отсев по простым до 37 включительно.

На втором этапе производится отсев по простым до 251 включительно.

Правильно?

Что происходит, если первый этап пройден успешно, а на 2-м обнаруживается неподходящий остаток? Число отбрасывается и о нём забывают?

Но, согласно принципу симметрии (работает только для 10-го числа цепочки), если число вдруг имеет неподходящий остаток по модулю больше чем 37, но не больше чем 67, парное число тоже не годится.

Если $1172883813594069709832759$ не годится по модулю 59, то и парный кандидат не годится по тому же модулю:

$67\#-1172883813594069709832759   = 6685437737486197346046331$

Получается что, например. для давно закрытого диапазона $61\#$ такие числа проверялись по два раза?

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение09.02.2024, 19:43 
Заслуженный участник


20/08/14
11780
Россия, Москва
Yadryara в сообщении #1628933 писал(а):
Правильно?
По моему не совсем.
0. Отсев по 37# вообще не производится, он произведён один раз при построении таблицы.
1. Блоками по 32 числа из таблицы внутри интервала 37# производится отсев по простым 41-128. Если в каждом блоке не осталось ни одного допустимого числа, то уход на проверку следующего блока.
2. Далее для всех оставшихся чисел из 32 производится их отсев каждого сразу по 23 простым 128-256: одно вычисление сразу всех 23 остатков и потом 19 сравнений с недопустимыми остатками сразу по 23 простым, если любой остаток совпал - переход к следующему числу.
3. Если число не отсеялось (так случается в среднем каждое 5156-е число), то проверка его дальше до упора.
4. Если проверили все блоки по 32 в таблице 37#, то продвигаем начало интервала на величину 37# и повторяем с п.1 пока не достигнем конца заказанного интервала (он обычно 1e17 если без оптимизаций, это секунд 40 в 4 потока, потом допроверка найденных кандидатов в PARI и цикл кусками по 1e17 до посинения).
Реально работает чуть более сложно (и раза в 3 быстрее), но принцип тот же.

Yadryara в сообщении #1628933 писал(а):
Если $1172883813594069709832759$ не годится по модулю 59, то и парный кандидат не годится по тому же модулю:
По моему это работает только для остатка 0 по каждому простому, по другим запрещённым остаткам не работает: для 59 остаток 2 разрешён, а 59-2=57 нет. Т.е. Вы предлагаете не проверять парные для всего лишь $\frac{1}{41}+\frac{1}{43}+\frac{1}{47}+\frac{1}{53}+\frac{1}{59}+\frac{1}{61}+\frac{1}{67}=0.136$ всех чисел, которые дают остаток 0 по любому простому 41-67, менее 14% всех, при том что перебор по простым больше 37 идёт последовательно и парные числа просто не входят в проверяемый диапазон (проверяется кусочками по 1e17-1e21 в разных вариантах) ... Как-то очень уж сложно выходит.
И это я не вспоминаю что парные числа могут попасть на разные ядра/потоки и как между ними обмениваться тоже вопрос.

Yadryara в сообщении #1628933 писал(а):
Получается что, например. для давно закрытого диапазона $61\#$ такие числа проверялись по два раза?
Нет, не получается: проверяется и 1172883813594069709832759, и 6685437737486197346046331, но строго по одному разу каждое (на самом деле оба эти числа запрещены по 5 и не попадут даже в таблицу 37#). Куски по 37# перебираются линейно (с выравниванием на границу куска). Потери от выравнивания (и соответственно двойной проверки некоторых чисел) не превышают 37# на весь заказанный диапазон (1e17) и меньше сотой доли процента.


В итоге я всё равно плохо понимаю что именно Вы предлагаете исключить. Вот ткните в команду, которую не надо выполнять для второго числа из пары в алгоритме (это почти то что и делается у меня в программе, почти на PARI, только выделил где массивы, а где матрицы, а где скаляры, ну и без реальной инициализации и без многопоточности):
Код:
forstep(base=0,oo,1e17, MyProg(base); );\\Самый внешний цикл, реально вынесен из программы наружу (в PARI)

{MyProg(base)=my();
   tab[]=vector(#37);\\Таблица увеличения числа относительно начала 37#
   mm[,]=matrix(37#,19+23);\\Увеличение остатков по простым 41-128 и 128-256 от начала 37#
   p42[]=primes([41,256]); pr19[]=primes([41,128]); p23[]=primes([128,256]);
   mask7[]=vector(19,[]);\\Битовые маски разрешённых остатков по 19 простым 41-128
   list8[,]=matrix(23,19];\\Список запрещённых остатков (их всегда 19) по 23 простым 128-256

   for(bi=floor(base/37#),(base+1e17-1)/37#,
      b=bi*37#; bm[]=vector(19+23,b%p42[]);\\Остатки по простым на начало диапазона 37#
      forstep(i=1,#tab[],32,\\Цикл по таблице 37#
         m32[]=vector(32,1);\\Пока все числа допустимы
         forprime(p=41,128,
            PAR: m32[]=m32[] and mask7[p][(mm[i..i+31,1..19]+bm[1..19])%p19[]];\\Параллельное вычисление 32-х остатков по модулю простого p и накопление в m32 только разрешённых чисел
            if(m32[]==0, next(2));\\Если разрешённых чисел среди 32 не осталось, т.е. весь массив равен 0, переходим к следующему i
         );
         foreach(select(x->x==1,m32[],1),n,\\Цикл только по номерам ненулевых элементов в m32[]
            PAR: m23[]=(mm[b+tab[i]+n,20..42]+bm[20..42])%p23[];\\Параллельное вычисление остатков одного числа b+tab[i]+n по 23 модулям простых 128-256
            for(j=1,19, PAR: if(m23[]==list8[1..23,j], next(2)));\\Если хоть по одному простому число запрещено переходим к следующему n (сравнение параллельно сразу по всем 23 простым)
            print(b+tab[i]+n);\\Тут какая-то дальнейшая проверка
         );\\Цикл по кандидатам в m32[] после первого отсева
      );\\Цикл по таблице 37#
   );\\Цикл по 1e17
}
Всё правее символов "PAR:" выполняется одновременно для всего массива. Могу и на PARI корректно написать (вместо PAR сделать через apply()), но получится ещё более громоздко и менее понятно.
Ну и как сюда вкорячить парные числа то ... Они ж при совсем другом и base и bi и b. Да плюс среди m32[] их может быть и не одно, там же сразу 32 числа проверяются ...

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение09.02.2024, 19:57 
Аватара пользователя


29/04/13
8135
Богородский
Сразу главное:

Dmitriy40 в сообщении #1628950 писал(а):
По моему это работает только для остатка 0 по каждому простому, по другим запрещённым остаткам не работает: для 59 остаток 2 разрешён, а 59-2=57 нет.

Нет! Оба запрещены:

59: x 40:

[1,3,7,9,10,11,12,13,14,15,16,17,18,19,20,21,24,26,27,28,
31,32,33,35,38,39,40,41,42,43,44,45,46,47,48,49,50,52,56,58]

Видите симметрию? И так по каждому модулю. Говорю же, надо смотреть по 10-му числу, то есть брать паттерн

v= [-126,-120,-114,-96,-84,-54,-36,-30,-6,0,6,30,36,54,84,96,114,120,126]

и для него смотреть допустимые остатки.

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение09.02.2024, 20:11 
Заслуженный участник


20/08/14
11780
Россия, Москва
А, точно: для симметричных паттернов и остатки будут симметричными, факт.
И вообще такая форма паттернов во многом удобнее.

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение09.02.2024, 20:52 
Аватара пользователя


29/04/13
8135
Богородский
Dmitriy40 в сообщении #1628950 писал(а):
всех чисел, которые дают остаток 0 по любому простому 41-67,

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

Dmitriy40 в сообщении #1628950 писал(а):
проверяется [..] но строго по одному разу каждое

Неудачно выразился. Я это и имел в виду, что два числа проверяете по разу каждое. А сырая идея заключалась в том, чтобы проверять одно, а парное отбрасывать без проверки.

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

Говорю же сырая идея. Ещё подумаю. Может быть идти от центра 39e23 в любую сторону и знать что в другой части по простым 2-67 ровно та же картина. И тогда проверок будет меньше.

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение09.02.2024, 21:53 
Аватара пользователя


29/04/13
8135
Богородский
Yadryara в сообщении #1628962 писал(а):
Может быть идти от центра 39e23 в любую сторону

Имел в виду точно $\frac{67\#}2$.

Ну вот на примере маленьких чисел.

Код:
      2   3  5  7

75
...
100   0  -2  0 -5
101  -1  -1 -4 -4
102   0   0 -3 -3
103  -1  -2 -2 -2
104   0  -1 -1 -1

105   1   0  0  0   

106   0   1  1  1
107   1   2  2  2
108   0   0  3  3
109   1   1  4  4
110   0   2  0  5
...
135


Идём в центр $\frac{7\#}2=105$ и перебираем как обычно снизу вверх диапазон $5\#=30$. От 105 до 135. Не нашли ни одного подходящего числа по модулям 2-7. Значит симметричный диапазон $5\#$ с другой стороны от 105, то есть от 75 до 105, можно вообще не проверять. Ближайшие подходящие числа 73 и 137.

Конечно очень навряд ли весь диапазон $37\#$ окажется пустым после проверки по 2-67. Но все оставшиеся числа в диапазонах (сколько их в среднем остаётся?) $\frac{67\#}2-37\#$ и $\frac{67\#}2+37\#$ будут в одинаковом количестве и на симметричных относительно $\frac{67\#}2$ местах.

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение09.02.2024, 22:45 
Заслуженный участник


20/08/14
11780
Россия, Москва
Yadryara в сообщении #1628964 писал(а):
Конечно очень навряд ли весь диапазон $37\#$ окажется пустым после проверки по 2-67. Но все оставшиеся числа в диапазонах (сколько их в среднем остаётся?)
В среднем $6635520\cdot\frac{24}{41}\frac{24}{43}\frac{28}{47}\frac{34}{53}\frac{40}{59}\frac{42}{61}\frac{48}{67}=389229$ или около 6%.
Хорошо, это интересно.
Но а дальше? 37# ведь вообще не интересно, надо полный 67#. Попытка увеличить диапазон с 37# до 41# увеличит и количество чисел (до 160млн) и процент остающихся чисел до 10%, а если сразу до 61#, то останутся 48/67=72% с каждой стороны. И-и-и что ... Если даже и дальше тенденция сохранится (на следующие 37# или 61# от центра, что вроде логично), то выигрыш выходит в 28% (лишь столько чисел будут запрещены с одной из сторон и соответственно можно не проверять их парное)?
Кстати 28% подозрительно близко к удвоенным 13.6% что насчитал выше, 28% это от половины диапазона, от полного будет 14% (ведь в первой половине их проверять таки придётся), фактически оно же.
Идея интересная, но пока слишком сырая.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 692 ]  На страницу Пред.  1 ... 24, 25, 26, 27, 28, 29, 30 ... 47  След.

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



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

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


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

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