2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1 ... 7, 8, 9, 10, 11, 12, 13 ... 59  След.
 
 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
11921
Россия, Москва
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
11921
Россия, Москва
Очевидно же, что выражение 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, заданы начальное и конечное значения этой переменной; далее тело цикла, состоящее из нескольких команд.
Что в конце надо написать - без понятия. Как цикл закрыть?

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

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



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

Сейчас этот форум просматривают: YandexBot [bot]


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

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