Символ Якоби
возвращает значение символа Якоби для целого числа J = jacobiSymbol(a,n)a и положительное нечетное целое число n.
Найдите символ Якоби для .., 9 n = 3.
a = 1:9; n = 3; J = jacobiSymbol(a,n)
J = 1×9
1 -1 0 1 -1 0 1 -1 0
Символ Якоби является периодическим по отношению к своему первому аргументу, где bn), modn).
Найдите символ Якоби для 28 = 9.
J = jacobiSymbol(28,9)
J = 1
Символ Якоби - полностью мультипликативная функция, где символ Якоби удовлетворяет соотношению .. (a1 × a2 ×... ar. Показать, что символ Якоби следует соотношению для a = 28 = 2 × 2 × 7.
Ja = jacobiSymbol(2,9)*jacobiSymbol(2,9)*jacobiSymbol(7,9)
Ja = 1
Символ Якоби также удовлетворяет соотношению .. (n1 × n2 ×... nr. Показать, что символ Якоби следует соотношению для n = 9 = 3 × 3.
Jb = jacobiSymbol(28,3)*jacobiSymbol(28,3)
Jb = 1
Для теста примитивности Соловея-Штрассена можно использовать символ Якоби (an). Если нечётное целое число 1 является простым, то конгруэнтность
модн)
должен содержать для всех целых чисел a. Если существует целое число в n-1} так, что соотношение конгруэнтности не удовлетворяется, то n не является простым.
Проверьте, является ли n = 561 простым или нет. = 19 и выполните тест примитивности. Сравните два значения в уравнении конгруэнтности.
Сначала вычислите левую сторону соотношения конгруэнтности с помощью символа Якоби.
n = 561; a = 14; J = jacobiSymbol(a,n)
J = 1
Вычислите правую сторону уравнения конгруэнтности.
m = powermod(a,(n-1)/2,n)
m = 67
Целое число 561 не является простым, поскольку оно не удовлетворяет соотношению конгруэнтности = 19.
checkPrime = mod(J,n) == m
checkPrime = logical
0
Затем проверьте, является ли n = 557 простым или нет. = 19 и выполните тест примитивности.
n = 557; a = 19; J = jacobiSymbol(a,n); m = powermod(a,(n-1)/2,n);
Целое число 557, вероятно, является простым, поскольку оно удовлетворяет соотношению конгруэнтности = 19.
checkPrime = mod(J,n) == m
checkPrime = logical
1
Выполните тест примитивности для всех в 556}, чтобы подтвердить, что = 557 действительно является простым.
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
Символ Якоби определяется как произведение символов Лежандра
(apr) kr
для целого числа a и положительного нечетного числа n с простой факторизацией
prkr.
Символ Лежандра для целого числа a и нечётного простого числа p определяется как
для x.
Когда n - нечетное простое число, символ Якоби равен символу Лежандра.
[1] Дитцфельбингер, M. Primality Test in Polynomial Time: от рандомизированных алгоритмов до «PRIMES Is in P». Спрингер, 2004.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.