<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Электронный научно-практический журнал «Современные научные исследования и инновации» &#187; Виталий Смирнов</title>
	<atom:link href="http://web.snauka.ru/issues/author/loginza19PYDVvb8UubR2d19EcRUz/feed" rel="self" type="application/rss+xml" />
	<link>https://web.snauka.ru</link>
	<description></description>
	<lastBuildDate>Sat, 18 Apr 2026 09:41:14 +0000</lastBuildDate>
	<language>ru</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Смирнов В.В., Спиридонов Ф.Ф. Компьютерная математика в исследовании простых чисел</title>
		<link>https://web.snauka.ru/issues/2013/02/20410</link>
		<comments>https://web.snauka.ru/issues/2013/02/20410#comments</comments>
		<pubDate>Fri, 01 Feb 2013 06:33:38 +0000</pubDate>
		<dc:creator>Виталий Смирнов</dc:creator>
				<category><![CDATA[01.00.00 ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ]]></category>
		<category><![CDATA[компьютерная математика]]></category>
		<category><![CDATA[простые числа]]></category>
		<category><![CDATA[числовые последовательности]]></category>

		<guid isPermaLink="false">https://web.snauka.ru/?p=20410</guid>
		<description><![CDATA[Введение Изучение простых чисел ведется с глубокой древности, как учеными, так и служителями различных культов. Одним из первых проблему выявления простых чисел поставил древнегреческий ученый Эратосфен, позднее значительных результатов удалось добиться и другим исследователям, среди которых выдающимися считаются работы П. Ферма, Л. Эйлера, К. Гаусса, А. Лежандра, П. Чебышева и ряда других учёных. Простые числа [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Введение</strong></p>
<p>Изучение простых чисел ведется с глубокой древности, как учеными, так и служителями различных культов. Одним из первых проблему выявления простых чисел поставил древнегреческий ученый Эратосфен, позднее значительных результатов удалось добиться и другим исследователям, среди которых выдающимися считаются работы П. Ферма, Л. Эйлера, К. Гаусса, А. Лежандра, П. Чебышева и ряда других учёных.</p>
<p>Простые числа являются ключом к разрешению многих математических проблем и появляются в разных областях математики и ее приложениях. Криптография, имитационное моделирование, тестирование материнских плат персональных компьютеров – вот современный перечень практического применения простых чисел. Поэтому простые числа интересуют не только математиков, но и некоторые коммерческие организации, а также военных (разведку и контрразведку), ввиду их особого применения в области защиты информации [1].</p>
<p>О важности вопроса изучения простых чисел говорят и следующие факты:</p>
<p>1) за поиск больших простых чисел назначены крупные денежные премии;</p>
<p>2) некоторые из простых чисел являются запрещенными (законы об авторском праве запрещают их хранить и распространять).</p>
<p>Существуют открытые проекты поиска простых чисел-рекордсменов, в которых каждый может принять участие [2-4].</p>
<p>В данной работе используются средства известной системы компьютерной математики Maple для исследования числовых последовательностей, которые могут содержать простые числа. Предлагаются инструменты исследования в виде Maple-процедур, позволяющих наглядно представить состав и структуру таких числовых последовательностей.</p>
<p>Дальнейшее изложение материала ведётся с вставкой фрагментов диалога с компьютером в среде рабочего листа Maple. Начало ячеек ввода помечается угловой скобкой вида &#8220;&gt;&#8221;, содержимое этих ячеек – команды Maple, окрашено в красный цвет. В среде Maple легко получить справку по поводу действия каждой команды; для этого достаточно выделить её и нажать клавишу [F1] на клавиатуре. Ячейка ввода, законченная символом &#8220;точка с запятой (;)&#8221;, при исполнении (клавиша [Enter]) возвращает ячейку вывода – результат вычислений, содержимое которого по умолчанию окрашено в синий цвет. Некоторые команды в ячейке ввода порождают графическое изображение. Возможности Maple в области математической графики очень богаты. Отчасти этим и объясняется предпочтение авторов, отданное данному математическому пакету.</p>
<h1>1. Натуральные числа: простые и составные</h1>
<p>Напомним, что положительные числа, используемые для счета, называют натуральными. Последовательность натуральных чисел является бесконечной. Рассмотрим часть этой последовательности.</p>
<p align="left"><span style="color: #ff0000;"><strong><span style="color: #000000;">&gt;</span> restart:<br />
</strong></span><span style="color: #ff0000;"><strong><span style="color: #000000;">&gt;</span> N := {k $ k = 1..30};</strong></span></p>
<p><span style="color: #0000ff;">N:={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30}</span></p>
<p>Один из способов разделения всего множества натуральных чисел на непересекающиеся подмножества следующий: простые числа, составные числа и единица.</p>
<p>Простые числа – это те, которые делятся без остатка только на 1 и самих себя, составные числа &#8211; те, которые могут быть представлены через произведение простых сомножителей.</p>
<p>Рассмотрим множество целых чисел от 2 до 30.</p>
<p align="left"><strong><span style="color: #ff0000;"><span style="color: #000000;">&gt;</span> Z := { seq(k, k = 2..30) };</span></strong></p>
<p><span style="color: #0000ff;">Z:={2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30}</span></p>
<p align="left">Выберем простые числа из этого множества.</p>
<p align="left"><strong><span style="color: #ff0000;"><span style="color: #000000;">&gt;</span> P := select( isprime, Z );</span></strong></p>
<p><span style="color: #0000ff;">P:={2, 3, 5, 7, 11, 13, 17, 19, 23, 29}</span></p>
<p align="left">Ни одно из них не разлагается на множители.</p>
<p align="left">Теперь исключим простые числа из исходного множества. Это составные числа.</p>
<p align="left"><strong><span style="color: #ff0000;"><span style="color: #000000;">&gt;</span> C := remove( isprime, Z);</span></strong></p>
<p><span style="color: #0000ff;">C:={4, 6, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 22, 24, 25, 26, 27, 28, 30}</span></p>
<p align="left">Каждое из полученных чисел раскладывается на множители.</p>
<p align="left"><strong><span style="color: #ff0000;"><span style="color: #000000;">&gt;</span> for k from 1 to nops(C) do C[k] = ifactor(C[k]): od;</span></strong></p>
<p><span style="color: #0000ff;">4 = (2)^2</span></p>
<p><span style="color: #0000ff;">6 = (2)*3)</span></p>
<p><span style="color: #0000ff;">8 = (2)^3</span></p>
<p><span style="color: #0000ff;">9 = (3)^2</span></p>
<p><span style="color: #0000ff;">10 = (2)*(5)</span></p>
<p><span style="color: #0000ff;">12 = (2)^2*(3)</span></p>
<p><span style="color: #0000ff;">14 = (2)*(7)</span></p>
<p><span style="color: #0000ff;">15 = (3)*(5)</span></p>
<p><span style="color: #0000ff;">16 = (2)^4</span></p>
<p><span style="color: #0000ff;">18 = (2)*(3)^2</span></p>
<p><span style="color: #0000ff;">20 = (2)^2*(5)</span></p>
<p><span style="color: #0000ff;">21 = (3)*(7)</span></p>
<p><span style="color: #0000ff;">22 = (2)*(11)</span></p>
<p><span style="color: #0000ff;">24 = (2)^3*(3)</span></p>
<p><span style="color: #0000ff;">25 = (5)^2</span></p>
<p><span style="color: #0000ff;">26 = (2)*(13)</span></p>
<p><span style="color: #0000ff;">27 = (3)^3</span></p>
<p><span style="color: #0000ff;">28 = (2)^2*(7)</span></p>
<p><span style="color: #0000ff;">30 = (2)*(3)*(5)</span></p>
<p>Согласно «Основной теореме арифметики», впервые сформулированной и доказанной К. Гауссом в 1801 г. [5], такое разложение единственно. И это одна из причин, по которой математики не считают 1 простым числом. Ведь единицу можно добавлять в качестве сомножителя в любом количестве, и, тогда, о единственности разложения сказать затруднительно.</p>
<h1>2. Простые числа на числовой прямой, решето Эратосфена</h1>
<p>На первый взгляд расположение простых чисел в натуральном ряду кажется беспорядочным. Однако представим процесс нахождения простых чисел графически, воспользовавшись одним из древнейших методов нахождения простых чисел, называемым &#8220;Решето Эратосфена&#8221;.</p>
<p>Начать можно с изображения N натуральных чисел на числовой прямой. Затем произвести последовательные исключения (вычеркивания) всех чисел кратных простым. То есть вначале мы вычеркиваем все числа, кратные 2, затем все числа кратные 3, 5 и т.д. Вычеркивание будем производить при помощи синусоид, с периодом, кратным рассматриваемому числу.</p>
<p>Согласно правилу использования метода, вычеркивания производятся до числа, не превышающего квадрата наибольшего из простых делителей. Причина здесь в том, что для любого составного числа <em>X</em> наименьший целый делитель, кроме 1, расположен в пределах</p>
<p><a href="https://web.snauka.ru/wp-content/uploads/2013/02/image0011.png"><img class="alignnone size-full wp-image-20417" src="https://web.snauka.ru/wp-content/uploads/2013/02/image0011.png" alt="" width="89" height="25" /></a></p>
<p>Вот соответствующая Maple-процедура:</p>
<p align="left"><strong><span style="color: #ff0000;">&gt; with(plottools): with(plots):<br />
</span></strong><strong><span style="color: #ff0000;">nl:=proc(N)<br />
</span></strong><strong><span style="color: #ff0000;">local i,q,m,a,b,s,sn,c:<br />
</span></strong><strong><span style="color: #ff0000;">for i to N do<br />
</span></strong><strong><span style="color: #ff0000;">if isprime(i) then<br />
</span></strong><strong><span style="color: #ff0000;">  q[i]:=disk([i,0], 0.5, color=red):<br />
</span></strong><strong><span style="color: #ff0000;"> else<br />
</span></strong><strong><span style="color: #ff0000;">  q[i]:=disk([i,0], 0.5, color=yellow):<br />
</span></strong><strong><span style="color: #ff0000;"> end if:<br />
</span></strong><strong><span style="color: #ff0000;"> m[i]:=textplot([i,0,i]):<br />
</span></strong><strong><span style="color: #ff0000;">end do:<br />
</span></strong><strong><span style="color: #ff0000;">a:=seq(q[i],i=1..N):<br />
</span></strong><strong><span style="color: #ff0000;">b:=seq(m[i],i=1..N):<br />
</span></strong><strong><span style="color: #ff0000;">m:=isqrt(N):<br />
</span></strong><strong><span style="color: #ff0000;">s:=1:<br />
</span></strong><strong><span style="color: #ff0000;">for i to m while s&lt;m do<br />
</span></strong><strong><span style="color: #ff0000;"> s:=ithprime(i):<br />
</span></strong><strong><span style="color: #ff0000;"> sn[i]:=plot(s*sin(x*Pi/s),x=s..N,y=-m..m,color=COLOR(RGB,i/s,i/m,s/m))<br />
</span></strong><strong><span style="color: #ff0000;">end do:<br />
</span></strong><strong><span style="color: #ff0000;">c:=seq(sn[k],k=1..i-1):<br />
</span></strong><strong><span style="color: #ff0000;">display(a,b,c,axes=none);<br />
</span></strong><strong><span style="color: #ff0000;">end proc:</span></strong></p>
<p align="left">Вычеркнем, например, все составные числа среди целых в промежутке от 0 до 50.</p>
<p align="left">&gt; <strong><span style="color: #ff0000;">nl(50)</span>;</strong></p>
<p align="left"><a href="https://web.snauka.ru/wp-content/uploads/2013/01/circle_125.gif"><img class="alignnone size-full wp-image-20382" src="https://web.snauka.ru/wp-content/uploads/2013/01/circle_125.gif" alt="" width="842" height="305" /></a></p>
<p align="left">Красным цветом выделены простые числа. Для удобства вычеркивающим синусоидам назначены различные цвета и амплитуды.</p>
<p align="left">Обобщая можно предложить следующий способ вычеркивания всех составных чисел, начиная с некоторого целого <em>v</em>&gt;<em>p</em>, где <em>p</em> – заданное простое число и заканчивая <img src="http://latex.codecogs.com/gif.latex?p^{2}" alt="p^{2}" align="absmiddle" />.</p>
<p align="left">1. Вычисляем произведение периодических функций вида</p>
<p align="left"><a href="https://web.snauka.ru/wp-content/uploads/2013/02/circle_1271.gif"><img class="alignnone size-full wp-image-20418" src="https://web.snauka.ru/wp-content/uploads/2013/02/circle_1271.gif" alt="" width="73" height="48" /></a></p>
<p align="left">где <em>i</em> пробегает значения всех простых чисел не превышающих <em>р</em>.</p>
<p align="left">2. Строим полученную синусоиду на числовой оси.</p>
<p align="left">&gt; <strong><span style="color: #ff0000;">ss:=proc(v)<br />
local p,k,h,t,P:<br />
if isprime(v) then<br />
p:=v:h:=p:<br />
else<br />
p:=prevprime(v):h:=p:<br />
end if:<br />
while h&gt;2 do<br />
t:=prevprime(h):<br />
p:=p,t:<br />
h:=t:<br />
end do;<br />
P:=1:<br />
for k to nops([p]) do<br />
P:=P*sin(x*Pi/p[k])<br />
end do:<br />
plot(P,x=p[1]+0.5..p[1]^2,tickmarks = [[seq(i, i = 1 .. p[1]^2)],[]]);<br />
end proc:</span></strong></p>
<p>Пусть p=7, тогда <img src="http://latex.codecogs.com/gif.latex?p^{2}=49" alt="p^{2}=49" align="absmiddle" />. Выполненная процедура <strong>ss(7)</strong> возвращает график с вычеркнутыми составными числами в промежутке от 7 до 49.</p>
<p align="left">&gt; <strong><span style="color: #ff0000;">ss(7);</span></strong><a href="https://web.snauka.ru/wp-content/uploads/2013/02/circle_129.gif"><img class="alignnone size-full wp-image-20411" src="https://web.snauka.ru/wp-content/uploads/2013/02/circle_129.gif" alt="" width="679" height="256" /></a></p>
<p>Заметим, что на графике легко различить простые числа, отличающиеся между собой на 2, 4 и на 6 единиц. Такие разницы будут присутствовать и в дальнейшем.</p>
<h1>3. Сравнимые по модулю и взаимно простые числа</h1>
<p>Как простые, так и составные числа подчиняются ещё одному важному правилу: для данного целого отличного от нуля числа b, всякое целое число а единственным образом представимо в виде</p>
<p style="text-align: center;" align="right"><em>а</em> = <em>bq</em> + <em>r</em> , где   0≤ <em>r</em> &lt; | <em>b</em> |.                                          (1)</p>
<p>При этом число <em>q</em> называется неполным частным, а число <em>r</em> &#8211; остатком от деления <em>а</em> на <em>b</em> . Получим подобное представление для нашего множества простых чисел при делении каждого из них на 2.</p>
<p align="left">&gt; <strong><span style="color: #ff0000;">b:=2:</span></strong><br />
&gt; <strong><span style="color: #ff0000;">for k from 1 to nops(P) do P[k] = b*cat(`*`)*cat(floor(P[k]/b))+cat(irem(P[k],b)): od;</span></strong></p>
<p><span style="color: #0000ff;">2 = 2*1+0</span></p>
<p><span style="color: #0000ff;">3 = 2*1+1</span></p>
<p><span style="color: #0000ff;">5 = 2*2+1</span></p>
<p><span style="color: #0000ff;">7 = 2*3+1</span></p>
<p><span style="color: #0000ff;">11 = 2*5+1</span></p>
<p><span style="color: #0000ff;">13 = 2*6+1</span></p>
<p><span style="color: #0000ff;">17 = 2*8+1</span></p>
<p><span style="color: #0000ff;">19 = 2*9+1</span></p>
<p><span style="color: #0000ff;">23 = 2*11+1</span></p>
<p><span style="color: #0000ff;">29 = 2*14+1</span></p>
<p>Рассматривая последний результат, вспомним ещё одно определение: говорят, что целые числа <em>a</em> и <em>b</em> равноостаточны или сравнимы по модулю натурального числа <em>m</em> &gt; 1, если <em>a</em> и <em>b</em> имеют одинаковые остатки от деления на <em>m</em>. В нашем случае видно, что все простые числа (кроме двойки) сравнимы по модулю 2, т.к. имеют остаток от деления на двойку, равный 1. Но, таковы также и все нечётные числа. Поэтому все простые числа, кроме 2, &#8211; нечётные.</p>
<p>Числа могут быть также взаимно просты. В этом случае их наибольший общий делитель равен единице. Например, взаимно простыми с числом 2 являются все нечётные числа.</p>
<p align="left">&gt; <strong><span style="color: #ff0000;">t:=2: sp:=NULL:<br />
for i to nops(N) do<br />
if igcd(N[i],t)=1 then sp:=sp,N[i]; fi:<br />
od:</span></strong></p>
<p align="left"><strong><span style="color: #ff0000;">sp;</span></strong></p>
<p><span style="color: #0000ff;">1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29</span></p>
<p align="left">В том числе, опять же, все простые, кроме числа 2.</p>
<p>Предложим вычислительный инструмент – процедуру для представления любого множества чисел в виде (1)</p>
<p align="left">&gt;<strong><span style="color: #ff0000;"> sm:=proc(b,s)<br />
local k:<br />
for k from 1 to nops(s) do print(s[k] = b*cat(`*`)*cat(floor(s[k]/b))+cat(irem(s[k],b))):  od;<br />
end proc:</span></strong></p>
<p align="left">Например, представим каждое число из множества</p>
<p align="left">&gt;<strong><span style="color: #ff0000;"> sa:={seq(k, k = 592..600)};</span></strong></p>
<p><span style="color: #0000ff;">sa:={592, 593, 594, 595, 596, 597, 598, 599, 600}</span></p>
<p align="left">в виде разложения (1) при делении на 23:</p>
<p align="left">&gt;<strong><span style="color: #ff0000;"> sm(23,sa);</span></strong></p>
<p><span style="color: #0000ff;">592 = 23*25+17</span></p>
<p><span style="color: #0000ff;">593 = 23*25+18</span></p>
<p><span style="color: #0000ff;">594 = 23*25+19</span></p>
<p><span style="color: #0000ff;">595 = 23*25+20</span></p>
<p><span style="color: #0000ff;">596 = 23*25+21</span></p>
<p><span style="color: #0000ff;">597 = 23*25+22</span></p>
<p><span style="color: #0000ff;">598 = 23*26+0</span></p>
<p><span style="color: #0000ff;">599 = 23*26+1</span></p>
<p><span style="color: #0000ff;">600 = 23*26+2</span></p>
<p>Следующая процедура выделяет из исходного множества числа, взаимно простые с предложенным числом.</p>
<p align="left">&gt; <strong><span style="color: #ff0000;">sc:=proc(t,ss)<br />
local sp,i:<br />
sp:=NULL:<br />
for i to nops(ss) do<br />
if igcd(ss[i],t)=1 then sp:=sp,ss[i]; fi:<br />
od:<br />
sp;<br />
end proc:</span></strong></p>
<p align="left">Например, выделим из множества целых чисел Z взаимно простые с числом 6:</p>
<p align="left">&gt; <strong><span style="color: #ff0000;">sc(6,Z);</span></strong></p>
<p><span style="color: #0000ff;">5, 7, 11, 13, 17, 19, 23, 25, 29</span></p>
<p align="left">Представим каждое из этих чисел в виде разложения (1):</p>
<p align="left">&gt; <strong><span style="color: #ff0000;">sm(6,{%});</span></strong></p>
<p><span style="color: #0000ff;">5 = 6*0+5</span></p>
<p><span style="color: #0000ff;">7 = 6*1+1</span></p>
<p><span style="color: #0000ff;">11 = 6*1+5</span></p>
<p><span style="color: #0000ff;">13 = 6*2+1</span></p>
<p><span style="color: #0000ff;">17 = 6*2+5</span></p>
<p><span style="color: #0000ff;">19 = 6*3+1</span></p>
<p><span style="color: #0000ff;">23 = 6*3+5</span></p>
<p><span style="color: #0000ff;">25 = 6*4+1</span></p>
<p><span style="color: #0000ff;">29 = 6*4+5</span></p>
<p>Проверим с помощью функции Эйлера, что количество чисел меньших 6 и взаимно простых с 6 равно двум:</p>
<p align="left">&gt;<strong><span style="color: #ff0000;"> numtheory[phi](6);</span></strong></p>
<p><span style="color: #0000ff;">2</span></p>
<p align="left">Это числа 1 и 5.</p>
<p align="left">Как видим, все целые числа взаимно простые с числом 6 входят в одну из двух арифметических прогрессий</p>
<p align="left">&gt; <strong><span style="color: #ff0000;">seq(6*n+5,n=0..10);# или seq(6*n-1,n=1..11), что то же самое</span></strong></p>
<p><span style="color: #0000ff;">5, 11, 17, 23, 29, 35, 41, 47, 53, 59, 65</span></p>
<p align="left">или</p>
<p align="left">&gt;<strong><span style="color: #ff0000;"> seq(6*n+1,n=1..10);</span></strong></p>
<p><span style="color: #0000ff;">7, 13, 19, 25, 31, 37, 43, 49, 55, 61</span></p>
<p>Эти прогрессии включают все числа, не делящиеся на 2 или 3, и поэтому каждое простое число, большее 3 входит в одну из этих прогрессий. В онлайн-энциклопедии целочисленных последовательностей [6] указано несколько способов получения обобщённой последовательности для обоих прогрессий, в том числе вычислением по формуле:</p>
<p align="left">&gt; <strong><span style="color: #ff0000;">seq((6*n+(-1)^n-3)/2, n=2..22);</span></strong></p>
<p><span style="color: #0000ff;">5, 7, 11, 13, 17, 19, 23, 25, 29, 31, 35, 37, 41, 43, 47, 49, 53, 55, 59, 61, 65, 67</span></p>
<h1>4. Геометрическое представление простых чисел по заданному модулю</h1>
<p>Использование сравнений по модулю допускает наглядное представление целых чисел с использованием не числовой прямой, как обычно, а числовой окружности [7]. Окружность при этом делится на <em>b</em> частей. Всякое целое число при делении на <em>b</em> даёт в качестве остатка одно из чисел 0, 1, 2, &#8230;, <em>b</em>-1; эти числа расставляются по окружности на равных расстояниях. Каждое число сравнимо с одним из этих чисел по модулю <em>b</em> и, следовательно, представляется соответствующей точкой. Два числа сравнимы, если изображаются одной и той же точкой. Мы представим их как лежащие на одном луче, начало которого располагается в центре окружности.</p>
<p>Ниже предлагается процедура <strong>cr</strong>, выстраивающая целые числа, сравнимые по модулю с <em>b</em> (второй аргумент) на лучах, проходящих через соответствующую точку окружности. Первым аргументом процедуры является количество изображаемых на луче чисел.</p>
<p align="left">&gt; <strong><span style="color: #ff0000;">restart:</span></strong></p>
<p align="left">&gt;<strong><span style="color: #ff0000;"> cr:=proc(t,b)<br />
local i,pn,p,c1,w,n,j, ch:<br />
n:=0:<br />
for i to t do<br />
for j to b do<br />
n:=n+1:<br />
pn[n]:= [i,evalf(j*2*Pi/b),n-1];<br />
ch[n]:=pn[n][3]<br />
end do<br />
end do:<br />
w:={seq(pn[k],k=1..t*b)}:<br />
for i from 1 to nops(w) do<br />
if isprime(ch[i]) then<br />
p[i]:=plots[textplot]([w [i]], coords=polar,color=red):<br />
else<br />
p[i]:=plots[textplot]([w[i]], coords=polar,color=black):<br />
end if:<br />
end do:<br />
c1:=seq(p[k],k=1..t*b):<br />
plots[display](c1,axes=none);<br />
end proc:</span></strong></p>
<p>Например, изобразим на окружности по 10 чисел, сравнимых по модулю с числом 6. Красным цветом на графике помечены простые числа.</p>
<p align="left">&gt; <strong><span style="color: #ff0000;">cr(10,6);</span></strong><a href="https://web.snauka.ru/wp-content/uploads/2013/02/circle_166.gif"><img class="alignnone size-full wp-image-20412" src="https://web.snauka.ru/wp-content/uploads/2013/02/circle_166.gif" alt="" width="681" height="681" /></a></p>
<p>Мы видим, что все простые числа, кроме 2 и 3, попали на два луча, на которых располагаются всё те же последовательности чисел, описываемые формулами 6<em>n</em>-1 и 6<em>n</em>+1.</p>
<p>В теории чисел используется понятие &#8220;классы вычетов по модулю<em> b</em>&#8220;. Каждый такой класс содержит бесконечное количество сравнимых между собой целых чисел, объединенных одним соотношением (1), то есть при делении на <em>b</em> дающих одинаковый остаток <em>r</em>. В нашем примере каждый числовой луч соответствует классу вычетов по модулю 6.</p>
<h1>5. Бесконечность последовательности простых чисел</h1>
<p>Простые числа могут быть очень большими. Например, число, найденное в 1971 году [2] имеет вид:</p>
<p align="left">&gt;<strong><span style="color: #ff0000;"> x:=2^19937-1:<br />
`В этом числе`*cat(length(%))*`знака`;</span></strong></p>
<p><span style="color: #0000ff;">В этом числе 6002 знака</span></p>
<p>Это одно из чисел Мерсенна, которые вычисляются по формуле <img src="http://latex.codecogs.com/gif.latex?2^{n}-1" alt="2^{n}-1" align="absmiddle" />, где <em>n</em> &#8211; натуральное число, и давно удерживают лидерство как самые большие известные простые числа. Устроим ему проверку (компьютеру потребуется некоторое время, возможно, пара минут).</p>
<p align="left">&gt; <strong><span style="color: #ff0000;">isprime(x);</span></strong></p>
<p><span style="color: #0000ff;">true</span></p>
<p>Проверка показывает, что <em>х</em> – простое число.</p>
<p>В настоящее время наибольшее простое число (найдено в 2008 году) содержит 12 978 189 десятичных знаков [3]. Оно вычислено с помощью формулы для чисел Мерсенна как <img src="http://latex.codecogs.com/gif.latex?2^{43112609}-1" alt="2^{43112609}-1" align="absmiddle" />.</p>
<p>Если считать, что на одной странице книги обычного формата помещается около 2000 символов, то можно вычислить сколько страниц займёт это число в книге:</p>
<p align="left">&gt; <strong><span style="color: #ff0000;">`Это число в книге займет` * cat(irem(12978189,2000)) *`страниц`;</span></strong></p>
<p><span style="color: #0000ff;"> Это число в книге займёт 189 страниц</span></p>
<p>Однако чем дальше от начала натурального ряда, тем все реже встречаются простые числа. Известная гипотеза, высказанная Лежандром, утверждает, что количество простых чисел, не превосходящих данное натуральное число n, &#8211; можно приближенно оценить следующей функцией:</p>
<p align="left">&gt; <strong><span style="color: #ff0000;">p:=n-&gt;n/(ln(n)-1.08366);</span></strong></p>
<p> <a href="https://web.snauka.ru/wp-content/uploads/2013/02/circle_172.gif"><img class="alignnone size-full wp-image-20421" src="https://web.snauka.ru/wp-content/uploads/2013/02/circle_172.gif" alt="" width="181" height="45" /></a></p>
<p align="left">Скорость ее возрастания постепенно (весьма незначительно) уменьшается:</p>
<p align="left">&gt; <strong><span style="color: #ff0000;">pp:=diff(p(n),n);</span></strong></p>
<p> <a href="https://web.snauka.ru/wp-content/uploads/2013/02/circle_173.gif"><img class="alignnone size-full wp-image-20422" src="https://web.snauka.ru/wp-content/uploads/2013/02/circle_173.gif" alt="" width="302" height="54" /></a></p>
<p align="left">Для больших чисел график производной показывает уменьшение скорости роста функции Лежандра на десятые и сотые доли единицы при изменении <em>n</em> на порядок</p>
<p align="left">&gt;<strong><span style="color: #ff0000;"> plot(pp(n),n=0..10^10,0..0.06);</span></strong></p>
<p align="left"><a href="https://web.snauka.ru/wp-content/uploads/2013/02/circle_174.gif"><img class="alignnone size-full wp-image-20413" src="https://web.snauka.ru/wp-content/uploads/2013/02/circle_174.gif" alt="" width="451" height="259" /></a></p>
<p align="left">Согласно гипотезе Лежандра количество простых чисел, не превосходящих 10000, будет примерно равно:</p>
<p align="left">&gt; <strong><span style="color: #ff0000;">p(10000.);</span></strong></p>
<p><span style="color: #0000ff;">1230.514742</span></p>
<p>На самом деле: вот простые числа слева и справа от 10000:</p>
<p align="left">&gt;<strong><span style="color: #ff0000;"> prevprime(10000);</span></strong></p>
<p><span style="color: #0000ff;">9973</span></p>
<p>&gt; <strong><span style="color: #ff0000;">nextprime(10000);</span></strong></p>
<p><span style="color: #0000ff;">10007</span></p>
<p>Путем подбора устанавливаем</p>
<p align="left">&gt;<strong><span style="color: #ff0000;"> ithprime(1229);</span></strong></p>
<p><span style="color: #0000ff;">9973</span></p>
<p>То есть число 9973 – это 1229-е простое число в натуральном ряду. Таким образом, гипотеза Лежандра в данном диапазоне дает чуть завышенную, но достаточно точную оценку.</p>
<p>Действительно ли последовательность простых чисел бесконечна? Ответ на этот вопрос утвердительный. Доказательство бесконечности множества простых чисел следует из единственности разложения (1) всякого целого числа и присутствует уже у Евклида в его знаменитых &#8220;Началах&#8221;.  Суть доказательства в следующем. Пусть <em>p</em><sub>1</sub>, <em>p</em><sub>2</sub>, …, <em>p</em><sub>n</sub> – все известные нам простые числа. Перемножим их и прибавим единицу, получим число <em>P</em><em> </em>= <em>p</em><sub>1</sub>× <em>p</em><sub>2</sub>×  …× <em>p</em><sub>n</sub><sub>+1</sub>, которое больше любого известного простого числа. При этом <em>Р</em> не делится без остатка ни на одно из простых <em>p</em><sub>1</sub>, <em>p</em><sub>2</sub>, …, <em>p</em><sub>n</sub>. Значит либо само это число <em>Р</em> является простым, либо делится на другое простое число, не включённое в известный набор. Например, нам известно только 8 простых чисел:</p>
<p align="left">&gt; <strong><span style="color: #ff0000;">restart: A:=seq(ithprime(k),k=1..8);</span></strong></p>
<p><span style="color: #0000ff;">A:=2,3,5,7,11,13,17,19</span></p>
<p align="left"> Прибавим единицу к их произведению:</p>
<p align="left">&gt; <strong><span style="color: #ff0000;">a:=product(A[j],j=1..6)+1;</span></strong><br />
<strong><span style="color: #ff0000;">isprime(a);</span></strong></p>
<p><span style="color: #0000ff;"><em>a:=30031</em></span></p>
<p><span style="color: #0000ff;"><em>false</em></span></p>
<p align="left">Получили составное число, разлагаемое на простые множители:</p>
<p align="left">&gt; ifactor(a);</p>
<p><span style="color: #0000ff;">(59)(509)</span></p>
<p align="left">Оба эти простые числа не были нам известны по условию задачи.</p>
<p style="text-align: center;"><strong>Литература</strong></p>
<p align="left">1. Найдена секретная экспонента для 12720 публичных ключей RSA. http://www.xakep.ru/post/58288/</p>
<p align="left">2. Great Internet Mersenne Prime Search. GIMPS. Finding World Record Primes Since 1996. http://mersenne.org/</p>
<p align="left">3. Еще раз о поиске простых чисел. http://habrahabr.ru/blogs/algorithm/114490/</p>
<p align="left">4. Prime Grid. http://www.primegrid.com/forum_thread.php?id=3874</p>
<p align="left">5. Дэвенпорт Г. Высшая арифметика: Введение в теорию чисел. – М.: УРСС, 2010. – 176 с.</p>
<p align="left">6. The On-Line Encyclopedia of Integer Sequences. http://oeis.org</p>
<p align="left">7. Курант Р., Роббинс Г. Что такое математика? – М.: МЦНМО, 2004. – 568 с.</p>
]]></content:encoded>
			<wfw:commentRss>https://web.snauka.ru/issues/2013/02/20410/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Смирнов В.В., Спиридонов Ф.Ф. Maple-инструменты исследования простых чисел-близнецов</title>
		<link>https://web.snauka.ru/issues/2013/02/22270</link>
		<comments>https://web.snauka.ru/issues/2013/02/22270#comments</comments>
		<pubDate>Tue, 19 Feb 2013 08:25:27 +0000</pubDate>
		<dc:creator>Виталий Смирнов</dc:creator>
				<category><![CDATA[01.00.00 ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ]]></category>
		<category><![CDATA[компьютерная математика]]></category>
		<category><![CDATA[простые числа]]></category>

		<guid isPermaLink="false">https://web.snauka.ru/?p=22270</guid>
		<description><![CDATA[Введение В работе [1]  были предложены ряд инструментов &#8211; Maple-процедур для исследования последовательности простых чисел. Данная статья продолжает развитие темы. Принятые соглашения остаются прежними: красный шрифт используется для записи команд Maple, синий шрифт и графики &#8211; результат выполнения команд. В математике простых чисел особое место занимает знаменитая гипотеза, сформулированная выдающимся немецким математиком Георгом Фридрихом Бернардом [...]]]></description>
			<content:encoded><![CDATA[<p align="left"><strong>Введение</strong></p>
<p align="left">В работе [1]  были предложены ряд инструментов &#8211; Maple-процедур для исследования последовательности простых чисел. Данная статья продолжает развитие темы. Принятые соглашения остаются прежними: красный шрифт используется для записи команд Maple, синий шрифт и графики &#8211; результат выполнения команд.</p>
<p align="left">В математике простых чисел особое место занимает знаменитая гипотеза, сформулированная выдающимся немецким математиком Георгом Фридрихом Бернардом Риманом в 1859 году, и называемая «Гипотезой Римана» [2]. Согласно этой гипотезе, характер распределения простых чисел может существенно отличаться от предполагаемого в настоящее время. Дело в том, что математикам до сих пор не удавалось точно зафиксировать наличие какой-либо системы в характере распределения простых чисел. Считается, например, что в окрестности целого числа <em>х</em> среднее расстояние между последовательными простыми числами пропорционально логарифму <em>х</em>, так что имеет мест аcимтотическая формула</p>
<p style="text-align: center;"><em>p</em> ~ <em>k</em> ln(<em>k</em>),                                                                                                                 (1)</p>
<p align="left">где <em>p</em> &#8211; величина простого числа, k &#8211; его номер по порядку. Знак ~ в выражении (1) означает, что отношение <em>p</em>/(<em>k</em> ln(<em>k</em>)) с ростом k стремится к 1.</p>
<p align="left">Изобразим на одной диаграмме график функции <em>p</em>(<em>k</em>) с экспериментально подобранным поправочным коэффициентом 1,16<em>k</em> и точечный истинных значений первых 150 простых чисел (по оси абсцисс откладывается номер простого числа, а по оси ординат &#8211; его значение).</p>
<p align="left"><strong><span style="color: #ff0000;">&gt; restart:</span></strong><br />
<strong><span style="color: #ff0000;">&gt; N:=150:</span></strong><br />
<strong><span style="color: #ff0000;">p:=seq(ithprime(i),i=1..N):#где i &#8211; номер простого числа</span></strong><br />
<strong><span style="color: #ff0000;">a:=plot([seq([n,p[n]],n=1..N)],style=point,symbol=circle,color=blue):</span></strong><br />
<strong><span style="color: #ff0000;">b:=plot([seq([k,1.16*k*ln(k)],k=1..N)]):</span></strong><br />
<strong><span style="color: #ff0000;">plots[display]([a,b]);</span></strong></p>
<p><a href="https://web.snauka.ru/wp-content/uploads/2013/02/b1.png"><img class="size-full wp-image-22292 aligncenter" src="https://web.snauka.ru/wp-content/uploads/2013/02/b1.png" alt="" width="691" height="691" /></a></p>
<p>Асимптотическая формула даёт хорошее приближение. И оно было бы ещё лучше, если бы в последовательности простых не встречались так называемые простые числа-близнецы &#8211; парные простые числа,  разность между которыми равна 2, то есть 11 и 13, 29 и 31, 59 и 61. Эти числа более всего нарушают общую картину.</p>
<p align="left">Ещё одно асимптотическое равенство впервые доказанное Карлом Фридрихом Гауссом записывается как</p>
<p style="text-align: center;" align="left">π(<em>x</em>)~<em>x</em>/ln(<em>x</em>), <em>x</em>→∞,</p>
<p>и называется в настоящее время законом распределения простых чисел. Функция π(<em>x</em>) в этом законе выражает количество простых чисел, меньших или равных <em>x</em>.</p>
<h1>1  Проблема простых чисел-близнецов</h1>
<p align="left">Замечено, что все пары простых-близнецов, кроме (3,5), имеют вид 6<em>k-</em>1 и 6<em>k+</em>1, где <em>k</em> &#8211; натуральное число.</p>
<p align="left">Построим процедуру <strong>blz</strong>(N), которая возвращает пары чисел близнецов, начиная с пары (5,7) и заканчивая парой чисел, не превышающих (N-2,N), где N &#8211; параметр процедуры. На точечном графике изображаются только эти пары чисел (по оси абсцисс откладываются номера пар). В основе процедуры лежит цикл с шагом i=6.</p>
<p align="left"><span style="color: #ff0000;"><strong>&gt; restart:</strong></span><br />
<span style="color: #ff0000;"><strong>blz:=proc(N)</strong></span><br />
<span style="color: #ff0000;"><strong>local i,a,b,t1,t2:</strong></span><br />
<span style="color: #ff0000;"><strong>t1:=NULL:t2:=NULL:</strong></span><br />
<span style="color: #ff0000;"><strong>for i from 7 to N by 6 do</strong></span><br />
<span style="color: #ff0000;"><strong>if isprime(i) and isprime(i-2) then lprint(i-2,i): t1:=t1,i-2:t2:=t2,i: end if:</strong></span><br />
<span style="color: #ff0000;"><strong>end do:</strong></span><br />
<span style="color: #ff0000;"><strong>t1:=[t1]:t2:=[t2]:</strong></span><br />
<span style="color: #ff0000;"><strong>a:=plot([seq([n,t1[n]],n=1..nops(t1))],style=point,symbol=circle,color=red):</strong></span><br />
<span style="color: #ff0000;"><strong>b:=plot([seq([k,t2[k]],k=1..nops(t2))],style=point,symbol=circle,color=blue):</strong></span><br />
<span style="color: #ff0000;"><strong>plots[display](a,b):</strong></span><br />
<span style="color: #ff0000;"><strong>end proc:</strong></span></p>
<p align="left">Выделим близнецов из первых 150 натуральных чисел</p>
<p align="left">&gt; <strong><span style="color: #ff0000;">blz(200);</span></strong></p>
<p><span style="color: #0000ff;">5, 7</span><br />
<span style="color: #0000ff;">11, 13</span><br />
<span style="color: #0000ff;">17, 19</span><br />
<span style="color: #0000ff;">29, 31</span><br />
<span style="color: #0000ff;">41, 43</span><br />
<span style="color: #0000ff;">59, 61</span><br />
<span style="color: #0000ff;">71, 73</span><br />
<span style="color: #0000ff;">101, 103</span><br />
<span style="color: #0000ff;">107, 109</span><br />
<span style="color: #0000ff;">137, 139</span><br />
<span style="color: #0000ff;">149, 151</span><br />
<span style="color: #0000ff;">179, 181</span><br />
<span style="color: #0000ff;">191, 193</span><br />
<span style="color: #0000ff;">197, 199</span></p>
<p>Из результата видно, что простые близнецы могут образовать кластеры (скопления), например 101, 103, 107, 109. У математиков давно существовало подозрение, что такие скопления существуют и в области очень больших простых чисел, однако ни доказать, ни опровергнуть это утверждение до сих пор не удавалось. Если такие кластеры будут найдены, стойкость криптографических ключей, используемых в настоящее время, может оказаться под очень большим вопросом.</p>
<p align="left">Математическое сообщество в полной мере оценило важность задачи — гипотеза Римана была признана одной из 7 важнейших научных проблем тысячелетия. Институт математики Clay в США предложил $1 млн. за ее доказательство либо опровержение. И периодически средства массовой информации, математики-профессионалы и любители сообщают о некоторых &#8220;значительных&#8221; прорывах в данной области.</p>
<h1>2  Распределение простых чисел близнецов</h1>
<p align="left">Следующая процедура <strong>blz_1</strong>(N) подсчитывает число пар &#8220;близнецов&#8221;, не превышающих числа N и строит график интегральной функции распределения числа пар близнецов, не превышающих N (цикл с шагом 6).</p>
<p align="left">&gt; <strong><span style="color: #ff0000;">restart:<br />
</span></strong><strong><span style="color: #ff0000;">blz_1:=proc(N)<br />
</span></strong><strong><span style="color: #ff0000;">global M:<br />
</span></strong><strong><span style="color: #ff0000;">local m,i:<br />
</span></strong><strong><span style="color: #ff0000;">printf(&#8220;%s             %s&#8221;,i,m); print():<br />
</span></strong><strong><span style="color: #ff0000;">printf(&#8220;====================&#8221;); print():<br />
</span></strong><strong><span style="color: #ff0000;">m:=0:M:=NULL:<br />
</span></strong><strong><span style="color: #ff0000;">for i from 7 to N by 6 do<br />
</span></strong><strong><span style="color: #ff0000;">if isprime(i) and isprime(i-2) then m:=m+1:<br />
</span></strong><strong><span style="color: #ff0000;">printf(&#8220;%g             %gn&#8221;,i,m):<br />
</span></strong><strong><span style="color: #ff0000;">end if:<br />
</span></strong><strong><span style="color: #ff0000;">M:=M,[i,m];<br />
</span></strong><strong><span style="color: #ff0000;">end do:<br />
</span></strong><strong><span style="color: #ff0000;">lprint(&#8220;для множества чисел не превышающих&#8221;, N):<br />
</span></strong><strong><span style="color: #ff0000;">lprint(&#8220;число пар близнецов&#8221;=m):<br />
</span></strong><strong><span style="color: #ff0000;">plot([M])<br />
</span></strong><strong><span style="color: #ff0000;">end proc:</span></strong></p>
<p align="left">Выведем, например, значения и график функции для аргумента, не превышающего N =900:</p>
<p align="left">&gt; <strong><span style="color: #ff0000;">blz_1(900);</span></strong></p>
<p><span style="color: #0000ff;">i             m<br />
</span><span style="color: #0000ff;">====================<br />
</span><span style="color: #0000ff;">7             1<br />
</span><span style="color: #0000ff;">13             2<br />
</span><span style="color: #0000ff;">19             3<br />
</span><span style="color: #0000ff;">31             4<br />
</span><span style="color: #0000ff;">43             5<br />
</span><span style="color: #0000ff;">61             6<br />
</span><span style="color: #0000ff;">73             7<br />
</span><span style="color: #0000ff;">103             8<br />
</span><span style="color: #0000ff;">109             9<br />
</span><span style="color: #0000ff;">139             10<br />
</span><span style="color: #0000ff;">151             11<br />
</span><span style="color: #0000ff;">181             12<br />
</span><span style="color: #0000ff;">193             13<br />
</span><span style="color: #0000ff;">199             14<br />
</span><span style="color: #0000ff;">229             15<br />
</span><span style="color: #0000ff;">241             16<br />
</span><span style="color: #0000ff;">271             17<br />
</span><span style="color: #0000ff;">283             18<br />
</span><span style="color: #0000ff;">313             19<br />
</span><span style="color: #0000ff;">349             20<br />
</span><span style="color: #0000ff;">421             21<br />
</span><span style="color: #0000ff;">433             22<br />
</span><span style="color: #0000ff;">463             23<br />
</span><span style="color: #0000ff;">523             24<br />
</span><span style="color: #0000ff;">571             25<br />
</span><span style="color: #0000ff;">601             26<br />
</span><span style="color: #0000ff;">619             27<br />
</span><span style="color: #0000ff;">643             28<br />
</span><span style="color: #0000ff;">661             29<br />
</span><span style="color: #0000ff;">811             30<br />
</span><span style="color: #0000ff;">823             31<br />
</span><span style="color: #0000ff;">829             32<br />
</span><span style="color: #0000ff;">859             33<br />
</span><span style="color: #0000ff;">883             34</span></p>
<p><span style="color: #0000ff;">&#8220;для множества чисел не превышающих&#8221;, 900</span></p>
<p><span style="color: #0000ff;">&#8220;число пар близнецов&#8221; = 34</span></p>
<p><a href="https://web.snauka.ru/wp-content/uploads/2013/02/b2.png"><img class="alignnone size-full wp-image-22293 aligncenter" src="https://web.snauka.ru/wp-content/uploads/2013/02/b2.png" alt="" width="691" height="691" /></a></p>
<p align="left">Наблюдаем, что число пар близнецов растёт (правда, неравномерно).</p>
<p align="left">Предполагается, что пар близнецов бесконечно много, но это не доказано. По гипотезе Харди-Литтлвуда [2], количество  пар простых-близнецов, не превосходящих x, асимптотически приближается к</p>
<p style="text-align: left;"><a href="https://web.snauka.ru/wp-content/uploads/2013/02/b3.png"><img class="aligncenter size-medium wp-image-22294" src="https://web.snauka.ru/wp-content/uploads/2013/02/b3-300x139.png" alt="" width="180" height="83" /></a>где</p>
<p style="text-align: left;" align="left"><a href="https://web.snauka.ru/wp-content/uploads/2013/02/b4.png"><img class="aligncenter size-medium wp-image-22295" src="https://web.snauka.ru/wp-content/uploads/2013/02/b4-300x87.png" alt="" width="180" height="52" /></a>- константа простых-близнецов. Произведение вычисляется по всем простым числам, начиная с тройки (это второе простое число, поэтому последовательность простых чисел, формируемая ниже, создается для для счётчика <em>i</em> начиная с числа 2).</p>
<p align="left">Так, для 10000 множителей константа  С2 равна</p>
<p align="left">&gt; <span style="color: #ff0000;"><strong>n:=10000:<br />
</strong></span><strong><span style="color: #ff0000;">s:=seq(ithprime(i),i=2..n):<br />
</span></strong><strong><span style="color: #ff0000;">C2:=1:<br />
</span></strong><strong><span style="color: #ff0000;">for p in [s] do C2:=C2*(1-1/((p-1)^2)) end do:<br />
</span></strong><strong><span style="color: #ff0000;">evalf(C2);</span></strong></p>
<p><span style="color: #0000ff;">0.6601623198 </span></p>
<p align="left">Оценим значение функции π2(<em>x</em>)</p>
<p align="left">&gt; <strong><span style="color: #ff0000;">pi2:=x-&gt;2*C2*int(1/(ln(t)^2),t = 2 .. x);</span></strong></p>
<p style="text-align: center;"><a href="https://web.snauka.ru/wp-content/uploads/2013/02/b5.png"><img class="size-medium wp-image-22296" src="https://web.snauka.ru/wp-content/uploads/2013/02/b5-300x110.png" alt="" width="180" height="66" /></a></p>
<p style="text-align: left;" align="left">При <em>x</em> = 900, значение π2(<em>x</em>) равно</p>
<p align="left">&gt; <strong><span style="color: #ff0000;">ceil(pi2(900.));</span></strong></p>
<p> <span style="color: #0000ff;">43</span></p>
<p align="left">Истинное значение функции нами было получено выше, оно равно 34. Чтобы график функции лучше совпадал с графиком истинного распределения простых близнецов на отдельных участках можно вновь ввести поправочные коэффициенты, т.к. как соотношение для π2(<em>x</em>) приближённое. Например, для области определения [200, 900] примем поправочный коэффициент 0,78.</p>
<p align="left">&gt; <strong><span style="color: #ff0000;">a:=plot([M],color=blue):<br />
</span></strong><strong><span style="color: #ff0000;">b:=plot(0.78*pi2(x),x=200..900):<br />
</span></strong><strong><span style="color: #ff0000;">plots[display](a,b);</span></strong></p>
<p align="left"><a href="https://web.snauka.ru/wp-content/uploads/2013/02/b6.png"><img class="aligncenter size-full wp-image-22297" src="https://web.snauka.ru/wp-content/uploads/2013/02/b6.png" alt="" width="691" height="691" /></a></p>
<p>Получено визуально удовлетворительное приближение.</p>
<h1>3  Теорема Бруна</h1>
<p align="left">В 1919 году норвежский математик Вигго Брун исследовал ряд</p>
<p align="left"><a href="https://web.snauka.ru/wp-content/uploads/2013/02/b7.png"><img class="aligncenter size-full wp-image-22345" src="https://web.snauka.ru/wp-content/uploads/2013/02/b7.png" alt="" width="535" height="45" /></a></p>
<p align="left">где в круглых скобках раcположены суммы чисел, обратных простым близнецам [3].</p>
<p align="left">Предложим процедуру для изучения свойств суммы этого ряда</p>
<p align="left">&gt; <span style="color: #ff0000;"><strong>restart:</strong></span><br />
<span style="color: #ff0000;"><strong>brun:=proc(n)</strong></span><br />
<span style="color: #ff0000;"><strong>local s, B2, i, a:</strong></span><br />
<span style="color: #ff0000;"><strong>s:=seq(ithprime(k),k=1..n+1):</strong></span><br />
<span style="color: #ff0000;"><strong>B2:=NULL:</strong></span><br />
<span style="color: #ff0000;"><strong>print(B2);</strong></span><br />
<span style="color: #ff0000;"><strong>for i to n do</strong></span><br />
<span style="color: #ff0000;"><strong>if s[i]-s[i+1]=-2 then B2:=B2,1/s[i]+1/s[i+1]:end if:</strong></span><br />
<span style="color: #ff0000;"><strong>end do:</strong></span><br />
<span style="color: #ff0000;"><strong>B2:=[B2]:</strong></span><br />
<span style="color: #ff0000;"><strong>print(B2);</strong></span><br />
<span style="color: #ff0000;"><strong>a:=plot([seq([t,sum(B2[k1],k1=1..t)],t=1..nops(B2))],style=point,symbol=circle,color=red):</strong></span><br />
<span style="color: #ff0000;"><strong>sum(B2[u],u=1..nops(B2));</strong></span><br />
<span style="color: #ff0000;"><strong>print(`Сумма ряда`,evalf(%));</strong></span><br />
<span style="color: #ff0000;"><strong>plots[display](a):</strong></span><br />
<span style="color: #ff0000;"><strong>end proc:</strong></span></p>
<p align="left">Возьмём 100 членов ряда</p>
<p align="left">&gt; <strong><span style="color: #ff0000;">brun(100);</span></strong></p>
<p><a href="https://web.snauka.ru/wp-content/uploads/2013/02/b8.png"><img class="size-full wp-image-22346 alignnone" src="https://web.snauka.ru/wp-content/uploads/2013/02/b8.png" alt="" width="583" height="84" /></a></p>
<p><a href="https://web.snauka.ru/wp-content/uploads/2013/02/b9.png"><img class="size-full wp-image-22347 alignnone" src="https://web.snauka.ru/wp-content/uploads/2013/02/b9.png" alt="" width="180" height="19" /></a></p>
<p align="left"><a href="https://web.snauka.ru/wp-content/uploads/2013/02/b10.png"><img class="aligncenter size-full wp-image-22348" src="https://web.snauka.ru/wp-content/uploads/2013/02/b10.png" alt="" width="691" height="691" /></a></p>
<p align="left">Аналогичный результат без перечисления значения сумм:</p>
<p align="left">&gt; <strong><span style="color: #ff0000;">brun(1000);</span></strong></p>
<p> <a href="https://web.snauka.ru/wp-content/uploads/2013/02/b11.png"><img class="alignleft size-full wp-image-22349" src="https://web.snauka.ru/wp-content/uploads/2013/02/b11.png" alt="" width="180" height="19" /></a></p>
<p><a href="https://web.snauka.ru/wp-content/uploads/2013/02/b12.png"><img class="aligncenter size-full wp-image-22350" src="https://web.snauka.ru/wp-content/uploads/2013/02/b12.png" alt="" width="691" height="691" /></a></p>
<p>&nbsp;</p>
<p align="left">Мы наблюдаем, что график изменения суммы ряда сначала идёт резко вверх, а затем скорость роста значений существенно замедляется. В. Брун доказал, что этот ряд сходится.</p>
<p align="left">Значение B2=1,902160583104 называется константой Бруна для простых-близнецов, при этом</p>
<p style="text-align: center;"><a href="https://web.snauka.ru/wp-content/uploads/2013/02/b13.png"><img class="aligncenter size-full wp-image-22351" src="https://web.snauka.ru/wp-content/uploads/2013/02/b13.png" alt="" width="112" height="39" /></a></p>
<p align="left">Это означает, что если простых близнецов и бесконечно много, то они все же расположены в натуральном ряду довольно редко.</p>
<h1 align="left">4  Классы простых-близнецов</h1>
<p align="left">Попробуем выделить отдельные классы простых-близнецов. Пусть в этом нам поможет следующая таблица, состоящая из 30 столбцов, предложенная в работе [4].</p>
<p align="left">Соответствующая процедура, создающая такую таблицу (позиции составных чисел в ней отмечены прочерками) приводится ниже.</p>
<p align="left">&gt; <span style="color: #ff0000;"><strong>Fm:=proc(Q::integer)</strong></span><br />
<span style="color: #ff0000;"><strong>global M,P:</strong></span><br />
<span style="color: #ff0000;"><strong>local i,j,k,w,t,m,mn,a,b:</strong></span><br />
<span style="color: #ff0000;"><strong>M:=array(1..Q,1..30);</strong></span><br />
<span style="color: #ff0000;"><strong>k:=0:</strong></span><br />
<span style="color: #ff0000;"><strong>for i to Q do</strong></span><br />
<span style="color: #ff0000;"><strong>for j to 30 do</strong></span><br />
<span style="color: #ff0000;"><strong>if i=1 and j&lt;16 then M[i,j]:=`-`</strong></span><br />
<span style="color: #ff0000;"><strong>else</strong></span><br />
<span style="color: #ff0000;"><strong>    k:=k+1:</strong></span><br />
<span style="color: #ff0000;"><strong>    if isprime(k) then</strong></span><br />
<span style="color: #ff0000;"><strong>      M[i,j]:=k:</strong></span><br />
<span style="color: #ff0000;"><strong>    else</strong></span><br />
<span style="color: #ff0000;"><strong>    M[i,j]:=`-`</strong></span><br />
<span style="color: #ff0000;"><strong>    end if:</strong></span><br />
<span style="color: #ff0000;"><strong>end if:</strong></span><br />
<span style="color: #ff0000;"><strong>end do:</strong></span><br />
<span style="color: #ff0000;"><strong>end do:</strong></span><br />
<span style="color: #ff0000;"><strong>w:=[seq(2*i*Pi/30,i=1..30)];</strong></span><br />
<span style="color: #ff0000;"><strong>for t to Q do</strong></span><br />
<span style="color: #ff0000;"><strong>   m:=[seq(M[t,j],j=1..30)];</strong></span><br />
<span style="color: #ff0000;"><strong>  mn[t]:=seq([m[i],w[i]],i=1..30);</strong></span><br />
<span style="color: #ff0000;"><strong>end do:</strong></span><br />
<span style="color: #ff0000;"><strong>P:=[seq(mn[ik],ik=1..Q)]:</strong></span><br />
<span style="color: #ff0000;"><strong>print(evalm(M));</strong></span><br />
<span style="color: #ff0000;"><strong>end proc:</strong></span></p>
<p align="left">Начало натурального ряда находится в середине первой строки таблицы. Рассмотрим, к примеру, таблицу в 30 строк.</p>
<p align="left">&gt; <strong><span style="color: #ff0000;">Fm(30);</span></strong></p>
<p><a href="https://web.snauka.ru/wp-content/uploads/2013/02/b14.png"><img class="size-full wp-image-22352 alignnone" src="https://web.snauka.ru/wp-content/uploads/2013/02/b14.png" alt="" width="911" height="904" /></a></p>
<p>В полученной таблице можно отчётливо выделить три непересекающихся подмножества простых чисел &#8211; близнецов. Это пары чисел, которые заканчиваются на 7 и 9, 9 и 1, 1 и 3.</p>
<p align="left">Известная теорема утверждает, что по модулю 30 все пары близнецов, кроме первых двух, имеют вид (11, 13), (17, 19) или (29, 31);  именно эти числа стоят во главе соответствующих столбцов.</p>
<p align="left">Напомним, что два натуральных числа a и b, разность которых кратна натуральному числу m (эти числа имеют одинаковые остатки при делении на m), называются сравнимыми по модулю m. Например, к одному подмножеству отнесём пары близнецов (1451, 1453) и (1481, 1483), так как для них имеем</p>
<p align="left">&gt; <strong><span style="color: #ff0000;">1481 mod 30 = 1451 mod 30;</span></strong></p>
<p><span style="color: #0000ff;">11=11</span></p>
<p align="left">&gt; <span style="color: #ff0000;"><strong>1483 mod 30 = 1453 mod 30;</strong></span></p>
<p><span style="color: #0000ff;"> 13=13</span></p>
<p align="left">Рассмотрим распределения простых-близнецов каждого из трёх подмножеств. Для этого создадим процедуру, в которой действует цикл с шагом 30, внутри которого с шагом 12 проверяются на простоту пары &#8220;близнецов&#8221;)</p>
<p align="left">&gt; <strong><span style="color: #ff0000;">restart:</span></strong><br />
<strong><span style="color: #ff0000;">tc:=proc(N)</span></strong><br />
<strong><span style="color: #ff0000;">local q,Q,r,R,s,S,a,b,c,i:</span></strong><br />
<strong><span style="color: #ff0000;">q:=0:Q:=NULL:r:=0:R:=NULL:s:=0:S:=NULL:</span></strong><br />
<strong><span style="color: #ff0000;">for i from 19 to N by 30 do</span></strong><br />
<strong><span style="color: #ff0000;">if isprime(i) and isprime(i-2) then q:=q+1:</span></strong><br />
<strong><span style="color: #ff0000;">Q:=Q,[i,q]:</span></strong><br />
<strong><span style="color: #ff0000;">end if:</span></strong><br />
<strong><span style="color: #ff0000;">if isprime(i+12) and isprime(i+12-2) then r:=r+1:</span></strong><br />
<strong><span style="color: #ff0000;">R:=R,[i+12,r]:</span></strong><br />
<strong><span style="color: #ff0000;">end if:</span></strong><br />
<strong><span style="color: #ff0000;">if isprime(i+24) and isprime(i+24-2) then s:=s+1:</span></strong><br />
<strong><span style="color: #ff0000;">S:=S,[i+24,s]:</span></strong><br />
<strong><span style="color: #ff0000;">end if:</span></strong><br />
<strong><span style="color: #ff0000;">end do:</span></strong><br />
<strong><span style="color: #ff0000;">a:=plot([Q],color=red,style=point):#на 7 и 9</span></strong><br />
<strong><span style="color: #ff0000;">b:=plot([R],color=blue,style=point):#на 9 и 1</span></strong><br />
<strong><span style="color: #ff0000;">c:=plot([S],color=green,style=point):#на 1 и 3</span></strong><br />
<strong><span style="color: #ff0000;">plots[display](a,b,c);</span></strong><br />
<strong><span style="color: #ff0000;">end proc:</span></strong></p>
<p align="left">Процедура возвращает графики распределения простых-близнецов каждого из трёх подмножеств: красный цвет &#8211; близнецы, равные по модулю 17 или 19, синий &#8211; 29 или 31, зелёный &#8211; 11 или 13. Например, среди первых 10000 натуральных чисел</p>
<p align="left">&gt; <strong><span style="color: #ff0000;">tc(10000);</span></strong></p>
<p><a href="https://web.snauka.ru/wp-content/uploads/2013/02/b15.png"><img class="aligncenter size-full wp-image-22353" src="https://web.snauka.ru/wp-content/uploads/2013/02/b15.png" alt="" width="388" height="288" /></a></p>
<p align="left">Судя по графику эти три распределения близки между собой. Получим график в пределах первых 50 миллионов натуральных чисел (внимание: расчёт по программе требует времени).</p>
<p align="left">&gt;<strong><span style="color: #ff0000;"> tc(50000000);</span></strong></p>
<p> <a href="https://web.snauka.ru/wp-content/uploads/2013/02/b16.png"><img class="aligncenter size-full wp-image-22354" src="https://web.snauka.ru/wp-content/uploads/2013/02/b16.png" alt="" width="691" height="691" /></a></p>
<p align="left">Из последнего графика видно, что в пределах эти 50 миллионов находится примерно по 80 тысяч пар близнецов каждого класса. Если бесконечен ряд простых близнецов, то, по-видимому, бесконечны и данные три последовательности.</p>
<h2>Литература</h2>
<p align="left">1. Смирнов В.В., Спиридонов Ф.Ф. Компьютерная математика в исследовании простых чисел. // Современные научные исследования и инновации. – Февраль, 2013 [Электронный ресурс]. URL: https://web.snauka.ru/issues/2013/02/20410</p>
<p align="left">2. Диамонд Г. “Элементарные методы в изучении распределения простых чисел”, // УМН, 45:2(272) (1990), 79–114 c.</p>
<p align="left">3. Трост Э. Простые числа &#8211; М.: ГИФМЛ, 1959. &#8211; 135 с.</p>
<p>4. Omar E. Pol. Sobre el patron de los numeros primos. Determinacion geometrica de los numeros primos y perfectos. &#8211; [Электронный ресурс]. URL:  http://www.polprimos.com/</p>
]]></content:encoded>
			<wfw:commentRss>https://web.snauka.ru/issues/2013/02/22270/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Смирнов В.В., Спиридонов Ф.Ф. Визуализация компактного представления распределения простых чисел на плоскости</title>
		<link>https://web.snauka.ru/issues/2013/03/22562</link>
		<comments>https://web.snauka.ru/issues/2013/03/22562#comments</comments>
		<pubDate>Mon, 04 Mar 2013 10:12:35 +0000</pubDate>
		<dc:creator>Виталий Смирнов</dc:creator>
				<category><![CDATA[01.00.00 ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ]]></category>
		<category><![CDATA[компьютерная математика]]></category>
		<category><![CDATA[простые числа]]></category>

		<guid isPermaLink="false">https://web.snauka.ru/?p=22562</guid>
		<description><![CDATA[Введение В работах [1] и [2] представлены разработки Maple-процедур, позволяющих изучать распределение простых в пространстве одного и двух измерений. В настоящей статье тема будет продолжена. Речь пойдёт о двух наиболее обсуждаемых и отчасти родственных геометрических представлениях целочисленных последовательностей: скатерти Улама и спирали Сакса. Хотя обозреваемые геометрические структуры являются всего лишь формой, значимость подобных исследований состоит [...]]]></description>
			<content:encoded><![CDATA[<h1>Введение</h1>
<p>В работах [1] и [2] представлены разработки Maple-процедур, позволяющих изучать распределение простых в пространстве одного и двух измерений. В настоящей статье тема будет продолжена. Речь пойдёт о двух наиболее обсуждаемых и отчасти родственных геометрических представлениях целочисленных последовательностей: скатерти Улама и спирали Сакса. Хотя обозреваемые геометрические структуры являются всего лишь формой, значимость подобных исследований состоит в том, что они должны способствовать поиску наиболее «простого», понятного и конструктивного распределения простых чисел.</p>
<h1>1. Скатерть Улама</h1>
<p>Один из наиболее компактных способов иллюстрации размещения простых чисел на плоскости был обнаружен в 1963 году Станиславом Уламом [3].</p>
<p>Улам размещал натуральные числа, начиная с некоторого данного, по спирали, вначале на бумажном листе в клетку, затем на экране компьютера по соответствующей программе. При этом положение простых чисел отмечалось особо. В результате получалось изображение, называемое теперь скатертью Улама.</p>
<p>Следующая процедура <strong>Ulam(s,z,ch)</strong> возвращает изображение скатерти Улама для <em>s</em> витков спирали.</p>
<p><span style="color: #ff0000;"><strong>&gt; restart:</strong></span><br />
<span style="color: #ff0000;"><strong>&gt; with(plottools): with(plots):</strong></span><br />
<span style="color: #ff0000;"><strong>&gt; Ulam:=proc(s,z,ch)</strong></span><br />
<span style="color: #ff0000;"><strong>local tt,t1,x,y,n,i,j,p,c,a,b:</strong></span><br />
<span style="color: #ff0000;"><strong>tt:=NULL:t1:=NULL:</strong></span><br />
<span style="color: #ff0000;"><strong>tt:=tt,[0,0]: t1:=[0,0,ch]:</strong></span><br />
<span style="color: #ff0000;"><strong>x:=0: y:=0: n:=1:</strong></span><br />
<span style="color: #ff0000;"><strong>for i from 1 to s*2 do</strong></span><br />
<span style="color: #ff0000;"><strong>  if i mod 2 = 1 then</strong></span><br />
<span style="color: #ff0000;"><strong>   for j to i do</strong></span><br />
<span style="color: #ff0000;"><strong>    n:=n+1:x:=x+1: tt:=tt,[x,y]: t1:=t1,[x,y,n+ch-1]:</strong></span><br />
<span style="color: #ff0000;"><strong>   end do:</strong></span><br />
<span style="color: #ff0000;"><strong>   for j to i do</strong></span><br />
<span style="color: #ff0000;"><strong>    n:=n+1: y:=y+1: tt:=tt,[x,y]:t1:=t1,[x,y,n+ch-1]:</strong></span><br />
<span style="color: #ff0000;"><strong>   end do:</strong></span><br />
<span style="color: #ff0000;"><strong>  else</strong></span><br />
<span style="color: #ff0000;"><strong>   for j to i do</strong></span><br />
<span style="color: #ff0000;"><strong>    n:=n+1:x:=x-1: tt:=tt,[x,y]: t1:=t1,[x,y,n+ch-1]:</strong></span><br />
<span style="color: #ff0000;"><strong>   end do:</strong></span><br />
<span style="color: #ff0000;"><strong>   for j to i do</strong></span><br />
<span style="color: #ff0000;"><strong>    n:=n+1:y:=y-1: tt:=tt,[x,y]:t1:=t1,[x,y,n+ch-1]:</strong></span><br />
<span style="color: #ff0000;"><strong>   end do:</strong></span><br />
<span style="color: #ff0000;"><strong>  end if:</strong></span><br />
<span style="color: #ff0000;"><strong>end do:</strong></span><br />
<span style="color: #ff0000;"><strong>for i to n do</strong></span><br />
<span style="color: #ff0000;"><strong> if isprime(i+ch-1) then</strong></span><br />
<span style="color: #ff0000;"><strong>  p[i]:=disk(tt[i], 0.5, color=red)</strong></span><br />
<span style="color: #ff0000;"><strong> else</strong></span><br />
<span style="color: #ff0000;"><strong>  p[i]:=disk(tt[i], 0.5, color=yellow)</strong></span><br />
<span style="color: #ff0000;"><strong> end if:</strong></span><br />
<span style="color: #ff0000;"><strong>end do:</strong></span><br />
<span style="color: #ff0000;"><strong>c:=seq(p[i],i=1..n):</strong></span><br />
<span style="color: #ff0000;"><strong>a:=plot([tt],color=blue):</strong></span><br />
<span style="color: #ff0000;"><strong>if z=1 then</strong></span><br />
<span style="color: #ff0000;"><strong> b:=textplot([t1]):</strong></span><br />
<span style="color: #ff0000;"><strong>else b:=textplot([[0,0,ch],[x,y,n]]):</strong></span><br />
<span style="color: #ff0000;"><strong>end if:</strong></span><br />
<span style="color: #ff0000;"><strong>plots[display](a,b,c,axes=none);</strong></span><br />
<span style="color: #ff0000;"><strong>end proc:</strong></span></p>
<p>При значении второго параметра процедуры <em>z</em>=1 на диаграмму выводятся числа, иначе – лишь изображающие их цветные точки: красные – соответствуют простым числам, жёлтые – составным числам. Третий параметр <em>ch</em> указывает на число, которое будет находиться в центре спирали.</p>
<p>Рассмотрим, к примеру, шесть витков спирали Улама, начиная с числа 17.</p>
<p><strong><span style="color: #ff0000;">&gt; Ulam(6,1,17);</span></strong></p>
<p><a href="https://web.snauka.ru/wp-content/uploads/2013/03/ris1.png"><img class="aligncenter size-full wp-image-22563" src="https://web.snauka.ru/wp-content/uploads/2013/03/ris1.png" alt="" width="451" height="420" /></a></p>
<p>Мы ясно видим, что в скатерти Улама примечательно то, что простые числа стремятся выстроиться по диагоналям, образуя довольно длинные цепочки. Обнаружено, что эти цепочки являются вычисляемыми значениями некоторых квадратичных многочленов [4], например, <img src="http://latex.codecogs.com/gif.latex?x^{2}+x+17" alt="x^{2}+x+17" align="absmiddle" /> (см. рисунок выше) или <img src="http://latex.codecogs.com/gif.latex?x^{2}+x+41" alt="x^{2}+x+41" align="absmiddle" /> (как в следующем случае) при <em>x</em>=0,1,2,3,4 и т.д.</p>
<p><strong><span style="color: #ff0000;">&gt; Ulam(7,1,41);</span></strong></p>
<p><a href="https://web.snauka.ru/wp-content/uploads/2013/03/ris2.png"><img class="aligncenter size-full wp-image-22564" src="https://web.snauka.ru/wp-content/uploads/2013/03/ris2.png" alt="" width="469" height="440" /></a></p>
<p>Процедура <strong>Ulam</strong> выполняется немного быстрее, если задать параметр <em>z</em>=0; в этом случае на график выводится только единица и последнее число рассматриваемой последовательности.</p>
<p>Следующая спираль имеет 20 витков, начинается с единицы, прочие числа (кроме последнего) в ней не отображены, но по цвету точек мы можем судить о расположении на скатерти простых чисел</p>
<p><strong><span style="color: #ff0000;">&gt; Ulam(20,0,1);</span></strong></p>
<p><a href="https://web.snauka.ru/wp-content/uploads/2013/03/ris3.png"><img class="aligncenter size-full wp-image-22565" src="https://web.snauka.ru/wp-content/uploads/2013/03/ris3.png" alt="" width="472" height="464" /></a></p>
<h1>2. Спираль Сакса</h1>
<p>В 1994 году Роберт Сакс, основываясь на скатерти Улама, разработал свой вариант спирали [5]. В ней целые неотрицательные числа выводятся не на квадратной, а на архимедовой спирали, и расположены они так, что квадрат целого числа воспроизводится один раз в каждом витке спирали (в спирали Улама мы встречаем два квадрата целого числа на витке).</p>
<p>Ниже предлагается Maple-процедура <strong>RS</strong> для воспроизведения спирали Сакса.</p>
<p><strong><span style="color: #ff0000;">&gt; restart:with(plottools):with(plots):</span></strong><br />
<strong><span style="color: #ff0000;">&gt; rs:=proc(N,q)</span></strong><br />
<strong><span style="color: #ff0000;">local w,b,i,p,c:</span></strong><br />
<strong><span style="color: #ff0000;">if q=1 then w:=seq([i,sqrt(i)*2*Pi,i],i=0..N) else w:=seq([i,sqrt(i)*2*Pi],i=0..N) end if:</span></strong><br />
<strong><span style="color: #ff0000;">b:=plot((x/2/Pi)^2,x=0..sqrt(N)*2*Pi, coords=polar,axes=none,scaling=constrained,color=blue):</span></strong><br />
<strong><span style="color: #ff0000;">for i from 1 to N do</span></strong><br />
<strong><span style="color: #ff0000;"> if isprime(i-1) then</span></strong><br />
<strong><span style="color: #ff0000;">  if q=1 then p[i]:=textplot([w [i]], coords=polar,color=red):</span></strong><br />
<strong><span style="color: #ff0000;">  else p[i]:=plot([w [i]], style=point, symbol=circle,symbolsize=10, coords=polar,color=red):end if:</span></strong><br />
<strong><span style="color: #ff0000;"> else</span></strong><br />
<strong><span style="color: #ff0000;">  if q=1 then p[i]:=textplot([w[i]], coords=polar,color=black):</span></strong><br />
<strong><span style="color: #ff0000;">  else p[i]:=plot([w [i]],style=point, coords=polar,color=black,symbolsize=6):end if:</span></strong><br />
<strong><span style="color: #ff0000;"> end if:</span></strong><br />
<strong><span style="color: #ff0000;">end do:</span></strong><br />
<strong><span style="color: #ff0000;">c:=seq(p[i],i=1..N):</span></strong><br />
<strong><span style="color: #ff0000;">plots[display](b,c);</span></strong><br />
<strong><span style="color: #ff0000;">end proc:</span></strong></p>
<p>Эта процедура имеет следующие входные параметры: <em>N</em> (указывает сколько чисел изображать на спирали) и <em>q</em> (при <em>q</em>=1 на диаграмму выводятся числа, в противном случае – точки, соответствующие их положению). Простым числам на диаграмме соответствует красный цвет.</p>
<p>Изобразим, к примеру, на спирали Сакса шестьдесят пять целых чисел и добавим на диаграмму пару линий <em>S</em> и <em>Р</em>, играющих в данном геометрическом представлении особую роль.</p>
<p><span style="color: #ff0000;"><strong>&gt; S:=seq([i^2,sqrt(i^2)*2*Pi],i=0..8):</strong></span><br />
<span style="color: #ff0000;"><strong>P:=seq([i^2+i,sqrt(i^2+i)*2*Pi],i=0..8):</strong></span><br />
<span style="color: #ff0000;"><strong>c:=plot([P],coords=polar,symbolsize=15,scaling=constrained,color=black):</strong></span><br />
<span style="color: #ff0000;"><strong>b:=plot([S],coords=polar,symbolsize=15,scaling=constrained,color=black):</strong></span><br />
<span style="color: #ff0000;"><strong>a:=rs(65,1):</strong></span><br />
<span style="color: #ff0000;"><strong>display(a,b,c);</strong></span></p>
<p><a href="https://web.snauka.ru/wp-content/uploads/2013/03/ris4.png"><img class="aligncenter size-full wp-image-22566" src="https://web.snauka.ru/wp-content/uploads/2013/03/ris4.png" alt="" width="477" height="453" /></a></p>
<p>На графике видно, что все квадраты целых чисел (1, 4, 9, 16, 25, &#8230;) выстроились справа в один ряд, образуя как бы «нулевой луч», выходящий из полюса, обозначенного числом 1.</p>
<p>Этот луч также можно именовать «осью квадратов», так как числа на ней представляют собой произведения (1×1, 2×2, 3×3 и т.д.); в нашем обозначении это <em>S</em>-линия.</p>
<p>Последовательность чисел на линии <em>S</em>  задается формулой <img src="http://latex.codecogs.com/gif.latex?s_{x}=x^{2}" alt="s_{x}=x^{2}" align="absmiddle" /> при <em>x</em>=1..∞ .</p>
<p>В общем случае числовые ряды образуют кривые линии, берущие начало в центре спирали.</p>
<p>Вторая характерная линия, назовем ее P-линия – это кривая, на которой размещены числа 2, 6, 12, 20, 30, 42. Эти числа представляют собой произведения соседних пар чисел натурального ряда 1×2, 2×3, 3×4, 4×5, 5×6 и т.д.</p>
<p>Соответствующая последовательность <img src="http://latex.codecogs.com/gif.latex?p_{x}=x(x+1)" alt="p_{x}=x(x+1)" align="absmiddle" /> или <img src="http://latex.codecogs.com/gif.latex?p_{x}=x^{2}+x" alt="p_{x}=x^{2}+x" align="absmiddle" />   при <em>x</em>=1..∞ .</p>
<p>Таким образом, числа, расположенные на <em>S</em>-линии, могут быть факторизованы с разницей между множителями, составляющей 0 (ноль), т.е. 1=1×1, 4=2×2, 9=3×3 и т.д., а числа на <em>P</em>-линии могут быть разложены на множители с разницей между ними 1.</p>
<p>Имея эти две характерные линии легко разобраться в сути многих других линий, обозреваемых на круглой скатерти Сакса. Так, рядом с <em>S</em>-линией находится линия <em>S</em>-1, все числа которой на единицу меньше (на соответствующем витке), чем те, которые расположились на линии <em>S</em>. Поэтому числа кривой <em>S</em>-1 могут быть представлены множителями с разницей в 2: 3=1×3, 8=2×4, 15=3×5, 24=4×6 и т.д. Формула последовательности <img src="http://latex.codecogs.com/gif.latex?s_{x}=x^{2}-1" alt="s_{x}=x^{2}-1" align="absmiddle" />  при <em>x</em>=2.. ∞.</p>
<p>Найдём на рисунке следующую рассматриваемую кривую, которая содержит числа  4=1×4, 10=2×5, 18=3×6 и т. д.; здесь разница множителей 3. По понятным причинам, эту кривую удобно называть <em>Р</em>-2. Формула соответствующей последовательности <img src="http://latex.codecogs.com/gif.latex?p_{x}=x^{2}+x-2" alt="p_{x}=x^{2}+x-2" align="absmiddle" />  при <em>x</em>=2..∞ .</p>
<p>Отметим теперь, что число 4 появилось на двух кривых: на одной как произведение 2×2, на другой как 1×4.</p>
<p>Мы можем и дальше продолжать отмечать кривые с увеличивающейся разницей между множителями.</p>
<p>И будем получать кривые <em>S</em>-1, <em>S</em>-2, <em>S</em>-3, &#8230;, и <em>S</em>+1, <em>S</em>+2, <em>S</em>+3, &#8230;, а также <em>P</em>-1, <em>P</em>-2, <em>P</em>-3, &#8230; и <em>P</em>+1, <em>P</em>+2, <em>P</em>+3, &#8230;</p>
<p>Сакс называет эти кривые кривыми произведений, потому что числа, расположенные на них состоят из произведений с фиксированной разницей между множителями.</p>
<p>Каждое целое число окажется, по крайней мере, на одной из этих кривых. Составные числа будут принадлежать более чем одной из этих кривых, а простые числа – только одной.</p>
<p>Пользуясь спиралью Сакса, можно исследовать структуру многих производящих последовательности простых чисел полиномов [6]. Например, ниже изображено положение на спирали Сакса членов последовательности <img src="http://latex.codecogs.com/gif.latex?x^{2}+x+41" alt="x^{2}+x+41" align="absmiddle" />, изучавшейся Эйлером и дающей много простых чисел.</p>
<p><strong><span style="color: #ff0000;">&gt; eu:=seq([i^2+i+41,sqrt(i^2+i+41)*2*Pi],i=0..50):</span></strong><br />
<strong><span style="color: #ff0000;">c:=plot([eu],coords=polar,symbolsize=15,scaling=constrained,color=black):</span></strong><br />
<strong><span style="color: #ff0000;">a:=rs(2500,0):</span></strong><br />
<strong><span style="color: #ff0000;">display(a,c);</span></strong></p>
<p><a href="https://web.snauka.ru/wp-content/uploads/2013/03/ris5.png"><img class="aligncenter size-full wp-image-22567" src="https://web.snauka.ru/wp-content/uploads/2013/03/ris5.png" alt="" width="513" height="501" /></a></p>
<h1>Список использованных источников</h1>
<p>1. Смирнов В.В., Спиридонов Ф.Ф. Компьютерная математика в исследовании простых чисел. // Современные научные исследования и инновации. – Февраль, 2013 [Электронный ресурс]. URL: <a href="https://web.snauka.ru/issues/2013/02/20410">https://web.snauka.ru/issues/2013/02/20410</a></p>
<p>2. Смирнов В.В., Спиридонов Ф.Ф. Maple-инструменты исследования простых чисел-близнецов. // Современные научные исследования и инновации. – Февраль, 2013 [Электронный ресурс]. URL: https://web.snauka.ru/issues/2013/02/22270</p>
<p>3. A visual analysis of prime number distribution [Электронный ресурс]. URL: http://www.ulamspiral.com/</p>
<p>4. Матиясевич Ю.В. Формулы для простых чисел. // Квант.- 1975. &#8211; № 5. – С. 5 – 13.</p>
<p>5. Sacks spiral [Электронный ресурс]. URL: http://www.numberspiral.com</p>
<p>6. Prime-Generating Polynomial [Электронный ресурс]. URL: <a href="http://mathworld.wolfram.com/Prime-GeneratingPolynomial.html">http://mathworld.wolfram.com/Prime-GeneratingPolynomial.html</a></p>
]]></content:encoded>
			<wfw:commentRss>https://web.snauka.ru/issues/2013/03/22562/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>О расположении простых и составных чисел в матрицах различного вида</title>
		<link>https://web.snauka.ru/issues/2014/08/37359</link>
		<comments>https://web.snauka.ru/issues/2014/08/37359#comments</comments>
		<pubDate>Sun, 31 Aug 2014 12:40:20 +0000</pubDate>
		<dc:creator>Виталий Смирнов</dc:creator>
				<category><![CDATA[01.00.00 ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ]]></category>
		<category><![CDATA[простые числа]]></category>
		<category><![CDATA[числовые матрицы]]></category>
		<category><![CDATA[числовые последовательности]]></category>

		<guid isPermaLink="false">https://web.snauka.ru/?p=37359</guid>
		<description><![CDATA[Введение Простые числа были известны давно, многие учёные занимались ими, пытались найти некий порядок в их распределении среди остальных натуральных чисел. Использовались при этом три основные группы методов исследования: аналитические – заключающиеся в построении и выводе формул; алгоритмические – основанные на привлечении какого-либо алгоритма, позволяющего выделить множество простых из множества натуральных чисел; геометрические, графические или, [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Введение</strong></p>
<p>Простые числа были известны давно, многие учёные занимались ими, пытались найти некий порядок в их распределении среди остальных натуральных чисел. Использовались при этом три основные группы методов исследования:</p>
<ul>
<li>аналитические – заключающиеся в построении и выводе формул;</li>
<li>алгоритмические – основанные на привлечении какого-либо алгоритма, позволяющего выделить множество простых из множества натуральных чисел;</li>
<li>геометрические, графические или, как теперь говорят, визуальные методы, позволяющие каким-то образом предъявить изображение простые числа среди натуральных чисел.</li>
</ul>
<p>Многие годы никому не удавалось достичь положительных результатов с помощью первого метода. Но греческий учёный Эратосфен придумал уникальный метод второго типа, который затем был назван «Решетом Эратосфена». Он состоит в последовательном вычёркивании составных чисел среди натуральных. При этом постепенно становятся видны простые числа, одно за одним. Недостатком метода является значительный объём вычислений, возникающий при умножении и делении очень больших чисел. Этот метод используется до сих пор, в том числе в различных вычислительных модификациях с помощью вычислительной техники, ускоряющих его работу [1,2].</p>
<p>Во времена Эратосфена графический или визуальный метод при решении этой задачи почти не использовался. Обычно анализировалось распределение чисел вдоль прямой линии, на которой числа в виде точек помечались разными цветами. Надо отметить, что в те времена и в последующие графический метод не принёс существенных положительных результатов.</p>
<p>Одним из первых аналитический метод применил Л.Эйлер. Он представил распределение простых чисел в отдельных подмножествах из их множества квадратичной зависимостью вида: <em>x</em><sup>2</sup>+<em>x</em>+<em>q</em>, где <em>q</em> – целое число большее или равное нулю. Этот результат был получен и хорошо работал для чисел <em>x</em>&lt;100. Надо отметить, что чем дальше продвигаться вдоль числовой оси, тем реже и беспорядочнее расположены простые числа. В дальнейшем метод Эйлера практически не получил развития, если не считать нахождение чисел <em>q</em>, таких, что формула последовательности Эйлера даёт наибольшее количество простых чисел.</p>
<p>В начале и в середине XX-го века учёные обратились к третьему, геометрическому методу. Предпринимались многочисленные попытки  расположить простые числа на плоскости в виде спиралей (наиболее известные из которых носят имена спирали Улама и спирали Сакса). Это был новый подход к этой задаче – рассматривать и располагать числа на плоскости определённым образом. Применение его надо признать успешным, т.к. он позволил буквально разглядеть некоторый порядок в расположении простых чисел между собой [3]. Тем не менее, большего увидеть и изучить не удавалось, т.е. метод оказался тоже ограниченным для отдельных подмножеств простых чисел из их множества. Вместе с тем, частичный порядок в распределении простых чисел стал виден и понятен, что немаловажно.</p>
<p>К концу XX-го века было введено понятие фракталов – объектов, размерность которых не является целым числом. В то же время, фракталы обладают свойством самоподобия, т.е. отдельные их элементы по структуре совпадают с самим фракталом. Были сделаны попытки применить фракталы к задаче о распределении простых чисел, однако, и они не принесли ощутимых результатов. Тем не менее, эти попытки продолжаются до сих пор.</p>
<p>Исследователи с переменным успехом занимались также рассмотрением матриц, содержащих простые и составные числа. Рассматривались прямоугольные матрицы самых разных размеров. Некоторые интересные результаты по расположению простых чисел в матрицах были получены, но, к сожалению, продолжения этих работ не было. По нашему мнению в данном направлении можно получить новые результаты, что и является целью настоящей работы.</p>
<p><strong>Основная часть</strong></p>
<p>Рассмотрим множество натуральных чисел. Известно, что все простые числа, за исключением 2 и 3 располагаются слева и справа от чисел кратных числу 6. В этой связи числа 2 и 3 можно считать особыми и исключить их из рассмотрения при дальнейшем анализе. Их особенность заключается в том, что это единственная пара смежных простых чисел. Поэтому в дальнейшем, по причине указанной выше, обратимся к матрицам с числом столбцов кратным числу 6. В этих матрицах будем располагать числа из множества натуральных чисел, исключив по приведённым выше причинам из этого множества числа 1, 2, 3 и все чётные числа. В указанном множестве останутся лишь простые и нечётные составные числа, представляющие собой произведения простых чисел. Первым простым числом будет 5.</p>
<p>Однако вначале отступим от выбранной схемы и обратимся всё-таки к матрице, число столбцов которой равно 4, ограничившись двумя десятками её строк.  Эта матрица показана на рисунке 1-а с числами, записанными в ней по порядку. Сплошными линиями разных цветов соединены простые числа и составные числа, кратные числу 5. Из рисунка хорошо видно, что линия, соединяющая составные числа, идёт сверху вниз, образуя изгибы, имеющие впадины слева и справа. Аналогичную картину мы наблюдаем, соединяя составные числа, кратные 7 и 11. Иными словами, в положении составных чисел наблюдается некоторая упорядоченность. Для простых же чисел, соединённых ломаной линией, даже при тщательном рассмотрении никакой упорядоченности не наблюдается. Кроме того, что немаловажно, нетрудно видеть, что последний столбец матрицы не содержит никаких чисел, т.е. пуст.</p>
<p>Перейдём к матрице с числом столбцов равных числу 6. Она показана на рисунке 1-б с размещёнными в ней числами. Здесь последний столбец также пуст, т.е. не содержит чисел. На рисунке показаны три ломаные линии. Одна соединяет числа кратные числу 5, другая – числа кратные числу 7, третья – числа кратные числу 11. Простые числа хорошо видны, но не показана соответствующая ломаная линия, которая могла бы соединять их последовательно. Она не показана для того чтобы не затемнять рисунок. Из рисунка видно, что упорядоченность последовательностей чисел по сравнению с рис.1а возросла. По сравнению с рис.1а заметны более выраженные пики или впадины на ломаных линиях. Кроме того, расстояния между пиками или впадинами стали существенно меньше, чем на рисунке 1-а.</p>
<p align="center"><a href="https://web.snauka.ru/issues/2014/08/37359/1a-2" rel="attachment wp-att-37363"><img class="aligncenter size-full wp-image-37363" src="https://web.snauka.ru/wp-content/uploads/2014/08/1a.png" alt="" width="169" height="554" /></a> а)</p>
<p align="center"><a href="https://web.snauka.ru/issues/2014/08/37359/1b-3" rel="attachment wp-att-37365"><img class="aligncenter size-full wp-image-37365" src="https://web.snauka.ru/wp-content/uploads/2014/08/1b1.png" alt="" width="400" height="441" /></a>б)</p>
<p align="center">Рисунок 1 &#8211; Матрицы с четырьмя (а) и шестью столбцами (б)</p>
<p>Перейдём к матрице с числом столбцов равных числу 12. Она показана на рисунке 2 с размещёнными в ней числами. Здесь последний столбец также пуст, т.е. не содержит чисел.</p>
<p><a href="https://web.snauka.ru/issues/2014/08/37359/2-140" rel="attachment wp-att-37366"><img class="aligncenter size-full wp-image-37366" src="https://web.snauka.ru/wp-content/uploads/2014/08/2.png" alt="" width="457" height="234" /></a></p>
<p align="center">Рисунок 2 &#8211; Матрица 12 столбцов</p>
<p>Ломаные линии имеют как бы &#8220;пилообразный&#8221; вид. При этом шаг между вершинами (или впадинами) возрастает с ростом начального числа: 5, 7, 11. Все начальные числа являются простыми и последовательными во множестве простых чисел.</p>
<p>Таким образом, при увеличении числа столбцов матрицы с 4 до 6 и 12 упорядоченность рассматриваемых подмножеств чисел из множества натуральных возросла.</p>
<p>Перейдём к матрице с 18 столбцами, которая показана на рисунке 3. Хорошо видно, что упомянутая выше упорядоченность нарушилась. По сравнению с рисунками 1 и 2 регулярность в расположении вершин и впадин на всех линиях исчезла. Теперь трудно как-то однозначно описать поведение каждой из ломаных линий.</p>
<p><a href="https://web.snauka.ru/issues/2014/08/37359/3-105" rel="attachment wp-att-37367"><img class="aligncenter size-full wp-image-37367" src="https://web.snauka.ru/wp-content/uploads/2014/08/3.png" alt="" width="645" height="192" /></a></p>
<p align="center">Рисунок 3 &#8211; Матрица 18 столбцов</p>
<p>Двигаясь дальше, рассмотрим матрицу с 24 столбцами, изображённую на рисунке 4. Видно, что какую-либо упорядоченность ломаных линий определить затруднительно.</p>
<p><a href="https://web.snauka.ru/issues/2014/08/37359/4-87" rel="attachment wp-att-37368"><img class="aligncenter size-full wp-image-37368" src="https://web.snauka.ru/wp-content/uploads/2014/08/4.png" alt="" width="1350" height="436" /></a></p>
<p align="center">Рисунок 4 &#8211; Матрица 24 столбца</p>
<p>Таким образом, отмеченная тенденция уменьшения упорядоченности в распределении простых и составных чисел существенно возрастает при переходе от матрицы с 12 столбцами к матрице с числом столбцов 18, 24 и более.</p>
<p><strong>Выводы</strong></p>
<p>Рассматривая эти результаты в совокупности можно сделать следующие выводы и указать направления возможных дальнейших исследований.</p>
<p>Во-первых, упорядоченность распределения составных чисел, начинающихся с простых чисел 5, 7 и 11, постепенно возрастает при возрастании числа столбцов в рассматриваемых матриц с 6 до 12. Последняя наиболее упорядоченная. Это же относится, что легко показать, и к последовательностям составных чисел, начинающихся с чисел 13, 17, 19 и т.д. Кроме того, рассмотренные распределения в некотором смысле эквивалентны. Имеется в виду следующее. Достаточно поделить каждое число из соответствующего подмножества чисел на на­чальное число 5, 7, 11 и т.д. Тогда получатся последовательности чисел начинающиеся с числа 1. Подробное рассмотрение этой эквивалентности пока не входило в задачи авторов.</p>
<p>Во-вторых. С ростом числа столбцов в матрицах больше 12 упорядоченность рассматриваемых распределений уменьшается и сменяется разупорядоченностью. Иными словами, происходит как бы разрушение порядка.</p>
<p>В третьих, можно рассмотреть степень упорядоченности в последовательности простых чисел.</p>
<p>В заключение можно отметить интересную особенность всех рассмотренных матриц, а именно – отсутствие любых чисел в последнем столбце. В этом все рассмотренные матрицы подобны между собой. Учитывая эту особенность рассмотренных матриц, можно осуществить следующую операцию: свернуть каждую из матриц в цилиндрическую поверхность и, например, приклеить последний из столбцов под первым. Тогда рассмотренные распределения перейдут на поверхности цилиндров разных радиусов &#8211; в зависимости от числа столбцов соответствующих матриц. При этом распределения простых и составных чисел переходят в 3-мерное пространство. Такой результат, насколько известно авторам, ранее никем получен не был.</p>
]]></content:encoded>
			<wfw:commentRss>https://web.snauka.ru/issues/2014/08/37359/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
