Модульное возведение в степень
c = powermod(
возвращает модульное возведение в степень a mod b m. Вход a
,b
,m
)a,b
должны быть целые числа и m
должно быть неотрицательное целое число. Для получения дополнительной информации смотрите Модульное Возведение в степень.
Вычислите модульное возведение в степень a mod b m при помощи powermod
. powermod
функция эффективна, потому что она не вычисляет экспоненциальный a b.
c = powermod(3,5,7)
c = 5
Небольшая теорема Ферма утверждает, что, если p является главным и a не является делимым p, то a (p –1) ультрасовременный p равняется 1.
Протестируйте небольшую теорему Ферма на p = 5
, a = 3
. Как ожидалось, powermod
возвращает 1
.
p = 5; a = 3; c = powermod(a,p-1,p)
c = 1
Протестируйте тот же случай на все значения a меньше, чем p. Функциональный powermod
действует поэлементный, чтобы возвратить вектор из единиц.
p = 5; a = 1:p-1; c = powermod(a,p-1,p)
c = 1 1 1 1
Небольшая теорема Ферма утверждает, что, если p является простым числом и a, не является делимым p, то a (p –1) ультрасовременный p равняется 1. Наоборот, если a (p –1) ультрасовременный p равняется 1, и a не является делимым p, то p является не всегда простым числом (p может быть псевдоначалом).
Протестируйте числа от 300
к 400
для простоты чисел при помощи небольшой теоремы Ферма с основным 2
.
p = 300:400; remainder = powermod(2,p-1,p); primesFermat = p(remainder == 1)
primesFermat = 307 311 313 317 331 337 341 347 349 353... 359 367 373 379 383 389 397
Найдите псевдоначала Ферма путем сравнения результатов с isprime
. 341 псевдоглавный Ферма.
primeNumbers = p(isprime(p)); setdiff(primesFermat,primeNumbers)
ans = 341
a
— ОсноваОснова, заданная как номер, вектор, матрица, массив, или символьное число или массив. a
должно быть целое число.
b
— Экспонента или степеньЭкспонента или степень, заданная как номер, вектор, матрица, массив, или символьное число или массив. b
должно быть целое число.
m
— МодульМодуль, заданный как номер, вектор, матрица, массив, или символьное число или массив. m
должно быть неотрицательное целое число.
Для положительной экспоненты b модульное возведение в степень c задан как
c = a mod b m.
Для отрицательной экспоненты b определение может быть расширено путем нахождения модульной мультипликативной инверсии d a m по модулю, который является
c = d ‒b ультрасовременный m.
где d удовлетворяет отношению
a mod d m = 1.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.