Символ Якоби
возвращает значение символа Якоби для целого числа J
= jacobiSymbol(a
,n
)a
и положительное нечетное целое число n
.
Найдите символ Якоби для и .
a = 1:9; n = 3; J = jacobiSymbol(a,n)
J = 1×9
1 -1 0 1 -1 0 1 -1 0
Символ Якоби является периодическим относительно его первого аргумента, где если .
Найдите символ Якоби для и .
J = jacobiSymbol(28,9)
J = 1
Символ Якоби является полностью мультипликативной функцией, где символ Якоби удовлетворяет отношению для . Покажите, что символ Якоби следует этому отношению для .
Ja = jacobiSymbol(2,9)*jacobiSymbol(2,9)*jacobiSymbol(7,9)
Ja = 1
Символ Якоби также удовлетворяет отношению для . Покажите, что символ Якоби следует этому отношению для .
Jb = jacobiSymbol(28,3)*jacobiSymbol(28,3)
Jb = 1
Можно использовать символ Якоби для критерия примитива Соловея-Страссена. Если нечетное целое число является простым, тогда конгруэнтность
необходимо удерживать для всех целых чисел . Если существует целое число в таким образом, что отношение конгруэнтности не удовлетворяется, не является простым.
Проверяйте, является простым или not. выбрать и выполните тест примитива. Сравните два значения в соотношении конгруэнтности.
Сначала вычислите левую сторону отношения конгруэнтности с помощью символа Якоби.
n = 561; a = 14; J = jacobiSymbol(a,n)
J = 1
Вычислим правую сторону соотношения конгруэнтности.
m = powermod(a,(n-1)/2,n)
m = 67
Целое число не является простым, поскольку не удовлетворяет отношению конгруэнтности для .
checkPrime = mod(J,n) == m
checkPrime = logical
0
Далее проверьте, является простым или not. выбрать и выполните тест примитива.
n = 557; a = 19; J = jacobiSymbol(a,n); m = powermod(a,(n-1)/2,n);
Целое число вероятно, является простым, поскольку он удовлетворяет отношению конгруэнтности для .
checkPrime = mod(J,n) == m
checkPrime = logical
1
Выполните тест примитива для всех в чтобы подтвердить, что целое число действительно является простым.
a = 1:n-1; J = jacobiSymbol(a,n); m = powermod(a,(n-1)/2,n); checkPrime = all(mod(J,n) == m)
checkPrime = logical
1
Проверьте результат с помощью isprime
.
isprime(n)
ans = logical
1
a
- ВходВход, заданный как число, вектор, матрица, массив, символьное число или символьный массив. Элементы a
должно быть целыми числами. a
и n
должен быть того же размера, или же один из них должен быть скаляром.
Типы данных: single
| double
| sym
n
- ВходВход, заданный как число, вектор, матрица, массив, символьное число или символьный массив. Элементы n
должно быть положительными нечетными целыми числами. a
и n
должен быть того же размера, или же один из них должен быть скаляром.
Типы данных: single
| double
| sym
J
- Выходное значение–1
| 0
| 1
Выходное значение, возвращаемое как –1
, 0
, или 1
.
Типы данных: single
| double
| sym
Символ якоби определяется как продукт символов Legendre
для целого a и положительного нечетного целого числа с n простого факторизации
Символ Легендры для целого a и нечетного простого p определяется как
Когда n является нечетным простым числом, символ Якоби равен символу Лежандра.
[1] Dietzfelbinger, M. Primality Testing in Polynomial Time: From Randomized Algorithms to «PRIMES Is in P». Спрингер, 2004.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.