Простые числа и палиндромы : Математика (общие вопросы) - Страница 13 fixfix
2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1 ... 10, 11, 12, 13, 14, 15, 16 ... 21  След.
 
 Re: Простые числа и палиндромы
Сообщение10.03.2021, 22:11 
Аватара пользователя


20/01/21
40
kazvadim

(Оффтоп)


 Профиль  
                  
 
 Re: Простые числа и палиндромы
Сообщение13.03.2021, 02:11 


15/11/20
179
Россия, Москва.
Dmitriy40
Может быть выписать в последовательность простые палиндромы, которые не справляются с простыми близнецами? И дальше отдельно исследовать эту последовательность?

 Профиль  
                  
 
 Re: Простые числа и палиндромы
Сообщение13.03.2021, 07:44 
Заслуженный участник


20/08/14
11867
Россия, Москва
kazvadim
Поясните на примере какие из $353701-1683=352018$ 13-значных простых палиндрома Вы собираетесь исследовать? И зачем?
Dmitriy40 в сообщении #1505995 писал(а):
Для 13-значных чисел палиндромов 9млн, из них 353701 простых, или 3.93%. При построении же 13-значного палиндрома из простых близнецов вашим методом всего получается 48000 палиндромов, из которых простых 1683, или 3.5%.


Ну и до кучи, выражение
kazvadim в сообщении #1508951 писал(а):
не справляются с простыми близнецами
совершенно непонятно, с простыми близнецами не нужно справляться, их на порядки больше простых палиндромов.

 Профиль  
                  
 
 Re: Простые числа и палиндромы
Сообщение14.03.2021, 00:00 


15/11/20
179
Россия, Москва.
Dmitriy40 в сообщении #1508960 писал(а):
kazvadim
Поясните на примере какие из $353701-1683=352018$ 13-значных простых палиндрома Вы собираетесь исследовать? И зачем?
Это, согласен, - ни к чему. Извините, что по рассеянности и торопливости не написал, что числа не все, а только те, которые извлекаются из наших формул простых палиндромов для простых близнецов... и попытаться исследовать - контрпримеры, выписав их в последовательность?

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


20/08/14
11867
Россия, Москва
kazvadim в сообщении #1509108 писал(а):
числа не все, а только те, которые извлекаются из наших формул простых палиндромов для простых близнецов... и попытаться исследовать - контрпримеры, выписав их в последовательность?
И снова непонятно, какие именно из $48000-1683=46317$ для наименьших возможных палиндромов из близнецов хотите выписать и снова зачем? Как-то 96.5% не тянут на звание контрпримеров, это скорее 3.5% простых палиндромов из близнецов контрпримеры к обратному утверждению. :mrgreen:
Dmitriy40 в сообщении #1505995 писал(а):
Для 13-значных чисел палиндромов 9млн, из них 353701 простых, или 3.93%. При построении же 13-значного палиндрома из простых близнецов вашим методом всего получается 48000 палиндромов, из которых простых 1683, или 3.5%.

 Профиль  
                  
 
 Re: Простые числа и палиндромы
Сообщение14.03.2021, 07:40 


15/11/20
179
Россия, Москва.
Dmitriy40

(Оффтоп)


 Профиль  
                  
 
 Re: Простые числа и палиндромы
Сообщение17.03.2021, 07:32 


15/11/20
179
Россия, Москва.
Dmitriy40 в сообщении #1504849 писал(а):
$p q A \overline q \overline p$
$p \overline q A q \overline p$
$q p A \overline p \overline q$
$q \overline p A p \overline q$
$\overline p \overline q A q p$
$\overline p q A \overline q p$
$\overline q \overline p A p q$
$\overline q p A \overline p q$
Не умею правильно формулировать задачку, извините.
Если заменить в первой формуле isprime=1 на isprime=0 и сохранить в массиве оставшиеся простые близнецы. А затем обрабатывать этот массив следующей формулой, и опять сохранять в массив оставшиеся простые близнецы, и так далее... интуиция мне подсказывает, что мы справимся... но только это программирование осилить пока не смогу (помощь нужна).

 Профиль  
                  
 
 Re: Простые числа и палиндромы
Сообщение17.03.2021, 16:46 
Заслуженный участник


20/08/14
11867
Россия, Москва
kazvadim
Ни в процитированной части, ни вообще в том сообщении, нет слова isprime.
И по моему нет разницы в каком порядке проверять на простоту ...
Всё ещё непонятно чего же Вы хотите.
Возьмите конкретный пример скажем с $p=17,q=19,A=0$ и по шагам расскажите что надо проверить и что сделать в обоих случаях результата проверки.

 Профиль  
                  
 
 Re: Простые числа и палиндромы
Сообщение20.03.2021, 06:19 


15/11/20
179
Россия, Москва.
Dmitriy40
По поводу isprime - извините, у Вас в программе работает другая функция.
Если можно, объясните подробнее числа, которые вычисляет Ваша программа:
Код:
MyF(r,k)=my(i,n); n=[]; for(i=0,9, if(ispseudoprime(r+i*100^k), n=concat(n,[i]))); if(#n>3, print("n=",#n,":",r,"+",n));
{for(k=2,6,
   q=0;
   forprime(p=10^(k-1),10^k,
      if(p-q==2,
         pp=fromdigits(Vecrev(digits(p))); qq=fromdigits(Vecrev(digits(q)));
         MyF(p*10^(3*k+1)+q*10^(2*k+1)+qq*10^k+pp, k);
         MyF(q*10^(3*k+1)+p*10^(2*k+1)+pp*10^k+qq, k);
         MyF(pp*10^(3*k+1)+q*10^(2*k+1)+qq*10^k+p, k);
         MyF(qq*10^(3*k+1)+p*10^(2*k+1)+pp*10^k+q, k);
      );
      q=p;
   );
)}
}
И если есть возможность, пришлите код со всеми 8 формулами. Не умею работать с функцией MyF - наделаю ошибок.

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


20/08/14
11867
Россия, Москва
kazvadim
isprime и ispseudoprime — близнецы братья, они делают одно дело, но немного разными методами и соответственно с разной скоростью, особенно для больших чисел (больше триллионов). Ни та ни другая в ошибках не замечена, так что верить можно любой.

В коде MyF() трогать и не нужно, нужно лишь добавить ещё 4шт чуть других её вызовов в цикле. А там лишь голая арифметика (что на какую степень 10 умножить чтобы получить одно нужное число). В MyF() передаётся проверяемое число с нулём в середине и номер позиции этой середины в числе, функция проверяет какие из 10 чисел простые (функцией ispseudoprime для скорости) и выводит их список (в формате начальное число плюс цифра в серединку) если их больше 3-х в списке.
Код:
MyF(r,k)=my(i,n); n=[]; for(i=0,9, if(ispseudoprime(r+i*100^k), n=concat(n,[i]))); if(#n>3, print("n=",#n,":",r,"+",n));
{for(k=2,6,
   q=0;
   forprime(p=10^(k-1),10^k,
      if(p-q==2,
         pp=fromdigits(Vecrev(digits(p))); qq=fromdigits(Vecrev(digits(q)));
         MyF(p*10^(3*k+1)+q*10^(2*k+1)+qq*10^k+pp, k);
         MyF(q*10^(3*k+1)+p*10^(2*k+1)+pp*10^k+qq, k);
         MyF(pp*10^(3*k+1)+q*10^(2*k+1)+qq*10^k+p, k);
         MyF(qq*10^(3*k+1)+p*10^(2*k+1)+pp*10^k+q, k);
         MyF(p*10^(3*k+1)+qq*10^(2*k+1)+q*10^k+pp, k);
         MyF(q*10^(3*k+1)+pp*10^(2*k+1)+p*10^k+qq, k);
         MyF(pp*10^(3*k+1)+qq*10^(2*k+1)+q*10^k+p, k);
         MyF(qq*10^(3*k+1)+pp*10^(2*k+1)+p*10^k+q, k);
      );
      q=p;
   );
)}

 Профиль  
                  
 
 Re: Простые числа и палиндромы
Сообщение21.03.2021, 05:24 


15/11/20
179
Россия, Москва.
Dmitriy40
Спасибо! Теперь смогу увидеть все эти числа.
Dmitriy40 в сообщении #1504550 писал(а):
А среди 140 пятёрок ($n=5$) лишь три начинаются с 2, а не с 1. Интересно с чем связаны такие аномалии.
Это и есть предмет нашего поиска. Пусть крохотное (процентное) решение... всё же что-то нашли. Дальше есть ещё идеи...

 Профиль  
                  
 
 Re: Простые числа и палиндромы
Сообщение25.03.2021, 12:08 


15/11/20
179
Россия, Москва.
Вернулся на шаг назад.
$p A\overline p$, $\overline p Ap$
$q A\overline q$, $\overline q Aq$
Программа для этого алгоритмма:
Код:
b=10^1; c=10^9;
v=[1,3,7,9]; e=0; n=0;
{forprime(pr = b, c, qr=pr+2;
  if(isprime(qr)==1,
    d=digits(pr); rp=fromdigits(Vecrev(d)); l=#d;
    d1=digits(rp); w=d1[l];
    d2=digits(qr); rq=fromdigits(Vecrev(d2));
    d3=digits(rq); w1=d3[l]; fl=0;
    for(k=1,4, if(w==v[k], next));
        for(i=1,10, a=i-1;
            x=pr*10^(l+1)+a*10^l+rp; x1=rp*10^(l+1)+a*10^l+pr;
            if(isprime(x)==1, fl=1; e+=1; print1(x, ", "));           
            if(isprime(x1)==1, fl=1; e+=1; print1(x1, ", ")));
    for(k=1,4, if(w1==v[k], next));
        for(i=1,10, a=i-1;   
            y=qr*10^(l+1)+a*10^l+rq; y1=rq*10^(l+1)+a*10^l+qr;
            if(isprime(y)==1, fl=1; e+=1; print1(x, ", "));           
            if(isprime(y1)==1, fl=1; e+=1; print1(y1, ", ")));
        if(fl==0, n+=1; print("*** (", pr, ", ", qr, ")")); if(fl==1,  print(" (", pr, ", ", qr, ")"));
));
        print; print("   es=", e, ", no=", n, " ");
}
Обозначение «***» - для простых близнецов, которым не найдено решения с помощь этого алгоритма. $es$ - количество найденнных решений, $no$ -количесво не найденных решений.
До $10^3 es=160, no=0$
До $10^4 es=839, no=2 es/ no=419,5$.
До $10^5 es=4146, no=50 es/ no=82.9$.
До $10^6 es=23029, no=595 es/ no=38,$7.
До $10^7 es=142094, no=6197, es/ no=22,9$.
До $10^8 es=928493, no=59937, es/ no= 15,5$.
До миллиона: es=6379728, no=581199, es/ no= 11.
Отношение $es/ no$ уменьшается, но функця не линейная. Интересно станет ли $es/ no$ меньше 1.

 Профиль  
                  
 
 Re: Простые числа и палиндромы
Сообщение25.03.2021, 12:58 
Заслуженный участник


20/08/14
11867
Россия, Москва
Не вникая глубоко сразу вопрос: а что собственно делают эти два цикла кроме как впустую занимают время? Ведь тело цикла пустое если не считать if, который тоже нигде ничего не изменяет.
kazvadim в сообщении #1511043 писал(а):
Код:
    for(k=1,4, if(w==v[k], next));
    for(k=1,4, if(w1==v[k], next));

Ну и стандартный совет: ставьте закрывающую скобку с отступом открывающего оператора (if или for) если они не уместились в одну строку, чтобы было явно видно где именно цикл или условие начались и где закончились. Правильные отступы — сила! :D

 Профиль  
                  
 
 Re: Простые числа и палиндромы
Сообщение25.03.2021, 13:58 


15/11/20
179
Россия, Москва.
Dmitriy40 в сообщении #1511052 писал(а):
Не вникая глубоко сразу вопрос: а что собственно делают эти два цикла кроме как впустую занимают время? Ведь тело цикла пустое если не считать if, который тоже нигде ничего не изменяет.
kazvadim в сообщении #1511043 писал(а):
Код:
    for(k=1,4, if(w==v[k], next));
    for(k=1,4, if(w1==v[k], next));
Два цикла-это потому, что не смог собрать 4 варианта в один цикл. if - чтобы последняя цифра палиндромов была только 1,3,7,9.
Понимаю, мой код примитивный, громоздкий и программа считает медленно (плохо программирую), сделал, что пока смог. Нужно было посмотреть результат этого алгоритма.

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


20/08/14
11867
Россия, Москва
Вы не поняли, эти два цикла не делают вообще ничего! От их удаления вообще ничего не изменится. Смотрите, они выглядят так:
Используется синтаксис Text
for(k=1,4,              \\Цикл по k=1,2,3,4.
        if(w1==v[k],    \\Если что-то чему-то равно,
                next    \\то текущее k не обрабатывать и перейти к следующему.
        )               \\Конец условия.
        ...             \\Здесь должно быть продолжение тела цикла, что именно надо сделать с каждым конкретным k если условие выше не будет выполнено - и оно у вас пусто! т.е. ничего делать и не надо.
);                      \\Конец цикла.
В итоге если условие выполнено то k пропускается, а если не выполнено, то тоже ничего не делается. Т.е. ничего не делается независимо от (не)выполнения условия. Т.е. всегда.
Отступы — сила! :D

Может конечно Вы так и задумывали, не знаю не смотрел, но в 99% случаев это ошибка (не там стоит закрывающая цикл скобка).

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 301 ]  На страницу Пред.  1 ... 10, 11, 12, 13, 14, 15, 16 ... 21  След.

Модераторы: Модераторы Математики, Супермодераторы



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

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


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

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