2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1 ... 7, 8, 9, 10, 11, 12, 13 ... 47  След.
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение30.09.2015, 16:43 
Заблокирован
Аватара пользователя


22/03/08

7154
Саратов
Поигралась ещё немного в онлайн Wolfram Alpha.
Проверила интервал с $k=865802600000$ до $k=865805100000$ (25 раз выполнила команду перебора по 100000).
Интересно отметить, что перебор в 100000 шагов с проверкой вхождения по пяти элементам паттерна для WA совсем не проблема: 2-3 секунды. 25 команд выполнены, таким образом, примерно за одну минуту, а это 2500000 шагов цикла.
Лучшее решение в этой порции (показываю вместе с командой проверки):
Код:
Select[Range[0,180],PrimeQ[(865804336324*30030+7433)+#]&]
{0, 6, 24, 30, 54, 66, 116, 126, 156, 158, 174}

(паттерн
Код:
0, 6, 24, 30, 54, 66, 84, 90, 96, 114, 126, 150, 156, 174, 180

Имеем точное совпадение первых шести элементов паттерна плюс ещё три соответствия.
Вхождение по шести первым элементам паттерна по-прежнему очень редкое событие, всего в этой порции раза 3-4.
Все вхождения по пяти элементам паттерна в этой порции показываю:

(Результаты эксперимента)

Код:
{865802638942, 865802644954, 865802669406, 865802670159}
{865802722064, 865802738063, 865802746920, 865802781828, 865802785838}
{865802832356}
{865802960882, 865802963874}
{865803050770, 865803054841, 865803085234, 865803089737}
{865803105768, 865803108413, 865803173979}
{865803247028, 865803275096, 865803276513, 865803277383, 865803292835, 865803298276}
{865803315507, 865803346397, 865803352836, 865803363229, 865803389832}
{865803404004, 865803412734, 865803432741, 865803451473}
{865803502034, 865803561832, 865803581887, 865803591264}
{865803631835, 865803632031,
865803660438,
{0, 6, 24, 30, 54, 66, 96, 108}

865803663806, 865803677896}
{865803748608, 865803759995}
{865803801835, 865803808431, 865803830050, 865803838801, 865803840365}
{865803917648,
{0, 6, 24, 26, 30, 48, 54, 84, 90, 116, 138, 150, 174}

865803920030, 865803964998, 865803993556, 865803995888}
{865804001697, 865804068218, 865804074665}
{865804102401, 865804138156, 865804146256, 865804174025, 865804177169, 865804190279}
{865804237069, 865804253205}
{865804311879,
865804336324,
{0, 6, 24, 30, 54, 66, 116, 126, 156, 158, 174}

865804343585, 865804354992, 865804372904, 865804397668}
{865804414203, 865804438502, 865804447765, 865804486261}
{865804528426, 865804532818, 865804535310, 865804586526}
{865804600804, 865804605028, 865804611084, 865804617067, 865804624334,
865804639080,
{0, 6, 24, 30, 54, 66, 126, 140, 144}

865804663154, 865804690824}
{865804708720, 865804786503}
{865804802261, 865804852727, 865804854357, 865804864083, 865804891647}
{865804976538}

{865805006248, 865805013292, 865805040957, 865805045616, 865805061249, 865805084599}

[Кое-где показан результат проверки вхождения.]
Таких вхождений тоже не так уж много. В этой порции на 100000 шагов цикла максимум 8 вхождений.
При этом в эти пять совпадающих элементов иногда влезают другие простые числа (не в соответствии с элементами паттерна), что уже бракует вхождение, ибо оно должно быть точным - без лишних простых чисел. Точных вхождений по пяти первым элементам паттерна будет ещё меньше, чем здесь показано.

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


20/08/14
11781
Россия, Москва
Nataly-Mak в сообщении #1057869 писал(а):
Интересно отметить, что перебор в 100000 шагов с проверкой вхождения по пяти элементам паттерна для WA совсем не проблема: 2-3 секунды. 25 команд выполнены, таким образом, примерно за одну минуту, а это 2500000 шагов цикла.
Интересные данные, калькулятор утверждает, что достигнутая скорость составляет немногим больше 1млрд/с, что сравнимо со скоростью тотальной проверки с primesieve, но лишь по одной формуле, да ещё и зависимо от человеческих ошибок. Имхо игрушки всё это, тотальная проверка с primesieve быстрее, удобнее и надёжнее. А уж с поиском по паттернам и вообще не сравнимо (медленно).

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


22/03/08

7154
Саратов
Наконец-то, достучалась до неба :D Что-то мне сказали.
Написала maxal ЛС, начинающееся так:
Цитата:
Мне вот тут
http://mathhelpplanet.com/viewtopic.php ... 86#p244286
говорят, что PARI/GP работает с большими числами (речь идёт, конечно, о больших простых числах).

Вспомнила, что maxal большой специалист по PARI/GP.
Подумала, что может хоть чуточку просветить. И не ошиблась!
Получила следующее:
Цитата:
...примера преобразование вашего кода из сообщения post1057631.html#p1057631 для WolframAlpha в PARI/GP:
Код:
Select[Range[865800870000,865800871000],PrimeQ[(#*30030+7433+30)]&& PrimeQ[(#*30030+7433+24)]&& PrimeQ[(#*30030+7433+6)]&& PrimeQ[(#*30030+7433)]&]

Код:
for(n=865800870000,865800871000, if( ispseudoprime(n*30030+7433+30) &&  ispseudoprime(n*30030+7433+24) && ispseudoprime(n*30030+7433+6) && ispseudoprime(n*30030+7433), print(n); ); );

И вот она программка, о которой я уже давно пишу, и никто не проронил ни звука :lol:
А программка-то проще пареной репы, как я и предполагала.

Переписываю эту программку для всех 15 элементов кортежа, вставляя новые значения переменных цикла:
Код:
for(n=865805100000, 1000000000000, if( ispseudoprime(n*30030+7433) &&  ispseudoprime(n*30030+7433+6) && ispseudoprime(n*30030+7433+24) && ispseudoprime(n*30030+7433+30) && ispseudoprime(n*30030+7433+54) && ispseudoprime(n*30030+7433+66) && ispseudoprime(n*30030+7433+84) && ispseudoprime(n*30030+7433+90) && ispseudoprime(n*30030+7433+96) && ispseudoprime(n*30030+7433+114) && ispseudoprime(n*30030+7433+126) && ispseudoprime(n*30030+7433+150) && ispseudoprime(n*30030+7433+156) && ispseudoprime(n*30030+7433+174) && ispseudoprime(n*30030+7433+180), print(n); ); );

Начало цикла - это то значение n, до которого я уже проверила вручную в онлайн Wolfram Alpha, конечное значение переменной цикла пока поставила с потолка. Ну, вот чуточку проверить бы, до $n=1000000000000$ :?
А вдруг решение даже в этом интервале найдётся. Но оно, конечно, скорее всего, и не найдётся.
Ну, тогда и дальше можно пойти, от $10^{12}$ до $10^{13}$.

Так что же - устанавливать PARI/GP? :D
Есть на форуме ещё один форумчанин, который очень расхваливал этот пакет.
dmd
ау, это задача для вас :wink:
Вы писали, что быстродействие в этом пакете просто фантастическое. Ну так значит, выполнить приведённую программку - это просто на раз :-) Да?

-- Чт окт 01, 2015 09:54:41 --

В приведённой программе есть один недостаток: проверив все 15 элементов кортежа, она выдаёт решение, но... оно может оказаться бракованным, потому что между проверенными простыми числами - в соответствии с паттерном - могут находиться другие простые числа, и это нарушает следование простых чисел в кортеже друг за другом.
Вот пример такого бракованного решения для $k=17$ (прислал Jarek):
Код:
p
0,6,24,36,66,84,90,114,120,126,150,156,174,204,216,234,240
{38, 176, 224, 228}

Здесь имеем все 17 элементов кортежа, соответствующих паттерну. Но! Между ними затесались ещё 4 простых числа:
$p+38, p+176, p+224, p+228$.
То же самое выдаёт и Wolfram Alpha при выполнении команд, подобных приведённой в цитате.

Если бы я знала язык PARI/GP, то немного изменила бы эту программку.
Ну, например, так:
ищем первый вход - число p простое;
определяем номер этого простого числа k (это можно сделать :?: );
далее проверяем:
Код:
p[k+1]=p+6

(p[k+1] - простое число, следующее за простым числом с номером k - p[k])
если да, идём на проверку следующего простого числа p[k+2]; в противном случае - переход к следующей итерации.

Вот при такой процедуре у нас лишние простые числа не влезут в кортеж, всё будет точно в соответствии с паттерном.

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


22/03/08

7154
Саратов
Nataly-Mak в сообщении #1058061 писал(а):
Вот пример такого бракованного решения для $k=17$ (прислал Jarek):
Код:
p
0,6,24,36,66,84,90,114,120,126,150,156,174,204,216,234,240
{38, 176, 224, 228}

Здесь имеем все 17 элементов кортежа, соответствующих паттерну. Но! Между ними затесались ещё 4 простых числа:
$p+38, p+176, p+224, p+228$.

Поскольку это решение бракованное, покажу его для большей наглядности примера:
Код:
348413329032411643373: 0,6,24,36,66,84,90,114,120,126,150,156,174,204,216,234,240
{38, 176, 224, 228}

Проверяем:
Код:
Select[Range[0,240],PrimeQ[348413329032411643373+#]&]
{0, 6, 24, 36, 38, 66, 84, 90, 114, 120, 126, 150, 156, 174, 176, 204, 216, 224, 228, 234, 240}

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


10/07/15
286
Nataly-Mak в сообщении #1058061 писал(а):
Так что же - устанавливать PARI/GP? :D
Для изучения я скачивал один ехе-шник gp64-readline-2-7-4.exe. На первых порах достаточно.
Можно воспользоваться еще функцией nextprime или специальный цикл forprime ( цикл по простым числам)
Код:
forprime(p=pstart, pstart+240,
и проверять, чтобы разности принадлежали кортежу.

-- 01.10.2015, 10:27 --

Nataly-Mak в сообщении #1058061 писал(а):
определяем номер этого простого числа k (это можно сделать :?: );
primepi(x)

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


22/03/08

7154
Саратов
Begemot82 в сообщении #1058074 писал(а):
Nataly-Mak в сообщении #1058061 писал(а):
определяем номер этого простого числа k (это можно сделать :?: );
primepi(x)

Это где такая функция? В PARI/GP?

В онлайн Wolfram Alpha выдалось на это
Код:
primepi(26000127153037463)

что-то невразумительное.
Хотя на
Код:
primepi(13)

конечно, результат выдаёт - 6. Ну, это я и сама знаю :D

Так какой же номер имеет простое число 26000127153037463 :?:
Это простое число - первый вход, найденный по команде
Код:
Select[Range[865805100000, 865805100100],PrimeQ[(#*30030+7433)]&]


-- Чт окт 01, 2015 13:22:27 --

Begemot82 в сообщении #1058074 писал(а):
Для изучения я скачивал один ехе-шник gp64-readline-2-7-4.exe. На первых порах достаточно.

Ага, вот и с соседнего неба что-то сказали :D
Так значит, вам, Begemot82, можно без проблем попробовать реализовать поиск 15-ки с минимальным диаметром 180?
Или всё-таки есть какие-то проблемы?
exe-шник не тянет такой поиск?
Тогда в каком же пакете всё это Jarek ищет? У него прямо шутя получается.
230 квадратов уже нашёл!
А 15-ок с минимальным диаметром штук 20 уже.

 Профиль  
                  
 
 Re: Симметричные кортежи из последовательных простых чисел
Сообщение01.10.2015, 12:29 


10/07/15
286
$primepi(26000127153037463)$ в PAGI/GP работает, но ... очень долго, а
Код:
nextprime(26000127153037463+1)
%2 = 26000127153037481
выдает мгновенно, но и WA тоже не очень задумывается

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


22/03/08

7154
Саратов
Begemot82 в сообщении #1058091 писал(а):
$primepi(26000127153037463)$ в PAGI/GP работает, но ... очень долго

Значит, определить номер заданного простого числа для PARI/GP проблема. Хм...
Цитата:
а
Код:
nextprime(26000127153037463+1)
%2 = 26000127153037481
выдает мгновенно, но и WA тоже не очень задумывается

Проверила, совсем не задумывается, выдаёт мгновенно.

-- Чт окт 01, 2015 13:45:40 --

Интересно, а проверка достаточно больших чисел на простоту как быстро в PARI/GP выполняется?
Может быть, тут его хвалёное быстродействие совсем не такое уж быстродействие?

-- Чт окт 01, 2015 14:00:15 --

Begemot82
а можно так задать в PARI/GP:
Код:
nextprime(p+1)

:?:
p у нас вычислено в программе до этой команды.

В WA ничего не добилась с такой командой. Он меня не понимает :-)

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


10/07/15
286
Цитата:
nextprime(p+1)
В PARI/GP nextprime(x) выдает простое $p \geqslant x$ поэтому и $p+1$

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


22/03/08

7154
Саратов
Begemot82 в сообщении #1058101 писал(а):
Цитата:
nextprime(p+1)
В PARI/GP nextprime(x) выдает простое $p \geqslant x$ поэтому и $p+1$

Пусть $x=17$.
Тогда nextprime(x) выдаст 17
("простое $p \geqslant x$")

Правильно поняла?

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


10/07/15
286
Nataly-Mak
Да

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


22/03/08

7154
Саратов
Begemot82
спасибо.
Гляньте, пожалуйста, что я состряпала :?
Код:
for(n=865805100000, 1000000000000, if( ispseudoprime(n*30030+7433) && nextprime((n*30030+7433)+1)=n*30030+7433+6 && nextprime((n*30030+7433+6)+1)=n*30030+7433+24 && nextprime((n*30030+7433+24)+1)= n*30030+7433+30 && nextprime((n*30030+7433+30)+1)= n*30030+7433+54 && nextprime((n*30030+7433+54)+1)= n*30030+7433+66 && nextprime((n*30030+7433+66)+1)= n*30030+7433+84 && nextprime((n*30030+7433+84)+1)= n*30030+7433+90 && nextprime((n*30030+7433+90)+1)= n*30030+7433+96 && nextprime((n*30030+7433+96)+1)= n*30030+7433+114 && nextprime((n*30030+7433+114)+1)= n*30030+7433+126 && nextprime((n*30030+7433+126)+1)= n*30030+7433+150 && nextprime((n*30030+7433+150)+1)= n*30030+7433+156 && nextprime((n*30030+7433+156)+1)= n*30030+7433+174 && nextprime((n*30030+7433+174)+1)= n*30030+7433+180, print(n); ); );

PARI/GP это поймёт?

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


20/08/14
11781
Россия, Москва
Очевидно же, что выражение n*30030+7433 можно вычислить один раз в начале цикла, присвоить другой переменной и потом везде её и использовать. Код станет короче и понятнее.

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


10/07/15
286
Nataly-Mak в сообщении #1058107 писал(а):
PARI/GP это поймёт?
В PARI/GP оператор сравнения $==$. Есть особености в применение ";". После этих исправление ошибки исчезли.
Можно еще использовать вектора для кортежей и начальных чисел из формул
Код:
tup=vector(15);
r=[0,6,24,...156,174,180];
srt=vector(4);
srt=[7433,7433,7433,7433];

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


22/03/08

7154
Саратов
Begemot82 в сообщении #1058129 писал(а):
В PARI/GP оператор сравнения $==$. Есть особености в применение ";". После этих исправление ошибки исчезли.

Ага, то есть вместо:
Код:
nextprime((n*30030+7433)+1)=n*30030+7433+6

надо писать:
Код:
nextprime((n*30030+7433)+1)==n*30030+7433+6

Понятно.
Ну, а в остальном понимает, это уже хорошо.

Так, поехали дальше. Если я скачаю exe-программу, о которой вы сказали выше, я могу выполнить эту программку (код которой представила)?

-- Чт окт 01, 2015 16:47:39 --

Цитата:
Есть особености в применение ";".

Ещё с ";" что-то не так. Ну, об этом я вообще ничего пока не знаю.
Есть цикл по переменной n, заданы начальное и конечное значения этой переменной; далее тело цикла, состоящее из нескольких команд.
Что в конце надо написать - без понятия. Как цикл закрыть?

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 692 ]  На страницу Пред.  1 ... 7, 8, 9, 10, 11, 12, 13 ... 47  След.

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



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

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


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

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