Тест соловея штрассена c

Тест соловея штрассена c

Символ Якоби отличается от символа Лежандра тем, что в первом знаменатель – составное число, а во втором – простое. Алгоритм вычисления символа Якоби и символа Лежандра одинаков, но для символа Якоби не выполняется критерий Эйлера.

Пусть мы имеем нечетное число n, о котором неизвестно, простое оно или составное. Символ является символом Лежандра, если n – простое, и тогда для него выполняется критерий Эйлера, то есть .

Если же n – составное число, то символ является символом Якоби, и тогда вышеуказанное сравнение, возможно, не выполняется. (Мы говорим «возможно», так как для некоторых a и n, в силу случайного совпадения, сравнение может оказаться верным.)

Поэтому если найдется такое a (1 t ”. Выход.

Как и тест Ферма, этот тест может принять составное число за простое, но не наоборот. Вероятность ошибки (то есть вероятность принять составное число за простое) составляет ε t , где t – число итераций теста, параметр надежности, а

Дата добавления: 2015-11-28 ; просмотров: 2129 ; ЗАКАЗАТЬ НАПИСАНИЕ РАБОТЫ

def solovay_strassen ( n , k = 10 ):
if n == 2 :
return True
if not n & 1 :
return False
def legendre ( a , p ):
if p 2 :
raise ValueError ( ‘p must not be )
if ( a == 0 ) or ( a == 1 ):
return a
if a % 2 == 0 :
r = legendre ( a / 2 , p )
if p * p — 1 & 8 != 0 :
r *= — 1
else :
r = legendre ( p % a , a )
if ( a — 1 ) * ( p — 1 ) & 4 != 0 :
r *= — 1
return r
for i in xrange ( k ):
a = randrange ( 2 , n — 1 )
x = legendre ( a , n )
y = pow ( a , ( n — 1 ) / 2 , n )
if ( x == 0 ) or ( y != x % n ):
return False
return True
# benchmark of 10000 iterations of solovay_strassen(100**10-1); Which is not prime.
#10000 calls, 2440 per second.
#571496 function calls (74873 primitive calls) in 4.100 seconds

This comment has been minimized.

Copy link Quote reply

barotdhrumil21 commented Jun 20, 2017

can you please explain line 14,18 and 26

Читайте также:  Активация скрытых функций андроид

This comment has been minimized.

Copy link Quote reply

kisrefod commented Nov 11, 2018

Check on num 10493450440980479677. It is Prime, but test says that it is composite

  • © 2020 GitHub, Inc.
  • Terms
  • Privacy
  • Security
  • Status
  • Help

You can’t perform that action at this time.

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.

Р. Соловей и В. Штрассен в 1977 г. предложили следующий вероятностный тест проверки простоты чисел, основанный на критерии простоты из теоремы 4.23.

Шаг 1. Случайно выбрать число а е <1, . N — 1>и вычислить (а, АГ) = с1. Если й > 1, то ответ: «А/^ — составное».

Шаг 2. Если (I = 1, то проверить выполнимость сравнения

Если данное сравнение не выполнено, то ответ: «А/’ — составное». В противном случае ответ: «неизвестно».

Из теоремы 4.23 следует, что в случае ответа «А/^ — составное » число N действительно является составным. Оценим трудоемкость проведения данного теста. Так как вычисление (той И) требует О(1оё2А0 умножений в кольце Ну, то из результатов гл. 1 следует оценка 0(1оё 3 7У) для

сложности вычисления (гпос1 А^). На вычисление (а, А г )

и требуется O(log 2 A0 операций. Поэтому трудоемкость

алгоритма 5.2 оценивается величиной 0(log 3 A/).

Замечание. Если алгоритм 5.2 выдал ответ «неизвестно» , то можно повторить тест для другого числа а. На практике обычно применяют алгоритм 5.2 для фиксированного числа в > 1 различных значений а.

Приведенный тест во многом аналогичен тесту на основе малой теоремы Ферма. Однако он обладает решающим преимуществом, вытекающим из теоремы 4.23. В отличие от предыдущего теста, при его использовании возникают только две ситуации:

  • 1) число N — простое и тест всегда выдает ответ «неизвестно»;
  • 2) число N — составное. Тогда тест дает ответ «Ы — составное» с вероятностью успеха не менее 1/2.
Читайте также:  Как вводить коды в симс четыре

Обоснуем оценку вероятности успеха теста Соловея- Штрассена.

Определение 5.3. Число N называется эйлеровым псев- допростым по основанию а, если для чисел а, N выполняется сравнение (2).

Заметим, что эйлерово псевдопростое по основанию а число N не обязательно является простым. Отметим также очевидное следствие определения 5.3: если N — эйлерово псевдопростое по основанию a,тoN — псевдопростое по основанию а. Действительно, возведя в квадрат сравнение (2), получим сравнение (1).

В силу теоремы 4.23 аналога чисел Кармайкла (т. е. чисел, которые были бы эйлеровыми псевдопростыми по всем основаниям а) не существует.

Доказательство оценки вероятности успеха вытекает из утверждения.

Утверждение 5.3. Пусть N нечетное число. Тогда выполняются утверждения:

  • а) множество всех аеХд-, относительно которых N является эйлеровым псевдопростым, образует подгруппу в Ъ’и’,
  • б) если N — составное число, то N не является эйлеровым псевдопростым относительно, по крайней мере, половины чисел из Ъ’ц.

Доказательство. Утверждение пункта а) доказывается с помощью критерия быть подгруппой в конечной группе (см. [ГЕН1, утверждение 4, с. 245]) и свойств символа Якоби (теорема 2.11).

Утверждение пункта б) следует из пункта а) и теоремы Лагранжа о порядке подгруппы конечной группы. Действительно, если то по пункту а) АГл, 1 различных значений а вероятность успеха P оценивается следующим образом:

Имеется детерминированный вариант теста Соловея- Штрассена.

Последовательно перебираются числа а е <1, 1>

и для каждого такого а выполняются следующие действия:

  • 1. Вычисляется (а, IV) = с1. Если с1> 1, то ответ «И — составное».
  • 2. Если (I = 1, то проверяется выполнимость сравнения (2). Если данное сравнение не выполнено, то ответ «.У — составное». В противном случае выбирается следующее а.
  • 3. Если в результате описанной процедуры сравнение (2) выполняется для всех а е <1, . N — 1>, то ответ «.?V — простое».
Читайте также:  Sony playstation 3 не включается мигает красный

Этот детерминированный тест простоты экспоненциален по сложности. Однако при некоторых дополнительных допущениях его трудоемкость может быть существенно снижена.

Теорема 5.1. Пусть верна расширенная х’ипотеза Римана. Тогда существует такая константа с > 0, что для нечетных чисел N эквивалентны утверждения:

  • 1) N — простое;
  • 2) для всех а е , таких что а 2 Л^, выполняется сравнение (2).

Доказательство. Импликация 1) => 2) следует из теоремы 4.23. Обратную импликацию докажем от противного. Пусть утверждение 2) выполнено, а N — составное число.Непосредственно проверяется, что отображение mod N является гомоморфизмом 7L’N в себя.

Так как N — составное, то из теоремы 4.23 вытекает не- тривиальность этого гомоморфизма. Тогда по теореме 4.13 существует простое р 2 N со свойством х(р) * 1. Это противоречит условию пункта 2) теоремы.

Итак, если верна расширенная гипотеза Римана, то в приведенном выше детерминированном тесте простоты можно перебирать лишь значения а е <1. cln 2 iV). В этом случае трудоемкость теста оценивается величиной O(log’W).

Ссылка на основную публикацию
Стрим с камеры телефона
На сегодняшний день сервис YouTube прочно закрепился на позициях лидера мирового интернет медиарынка. Всего несколько лет назад вести свой канал...
Смартфоны с флагманской камерой
Мощный, стильный флагманский смартфон — это не только полезный девайс, но и часть имиджа. Конечно, стоит флагман гораздо дороже, чем...
Смартфоны хонор в днс
Нет в наличии Нет в наличии Нет в наличии Нет в наличии Нет в наличии Нет в наличии Нет в...
Строки в pascal abc
Для обработки строковой информации в Турбо Паскаль введен строковый тип данных. Строкой в Паскале называется последовательность из определенного количества символов....
Adblock detector