Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.
Простые числа являются положительными целыми числами, больше, чем 1, которые имеют только два положительных целочисленных делителя: 1 и сам номер. В MuPAD® можно проверять, является ли номер главным при помощи функции isprime
. Например, 809 простое число, в то время как 888 и 1 не начала:
isprime(809), isprime(888), isprime(1)
В редких случаях функция isprime
может возвратить ложный положительный результат. Функция выполняет тест простоты чисел Миллера-Рабина и использует 10 независимых случайных основ. Для более точного (и также медленнее) метод, смотрите Доказательство Простоты чисел.
Последовательность простых чисел бесконечна. Это запускается с 2, 3, 5, 7, 11, 13, 17, и продолжается. Функция ithprime
позволяет вам быстро найти и отобразить любую запись этой последовательности. Например, чтобы найти 100-е простое число, введите ithprime(100)
:
ithprime(100)
Чтобы найти простое число, которое появляется в последовательности перед особым значением, используйте функцию prevprime
. Чтобы найти простое число, которое появляется после особого значения, используйте функцию nextprime
. Например, найдите простые числа, которые предшествуют и следуют за номером 1000:
prevprime(1000), nextprime(1000)
prevprime
и nextprime
используют вероятностный тест простоты чисел (тест Миллера-Рабина). В редких случаях эти функции могут возвратить неглавные числа.
MuPAD хранит предрасчетную таблицу простых чисел до определенного значения. Функция ifactor
с опцией PrimeLimit
возвращает то значение:
ifactor(PrimeLimit)
Функция ithprime
с опцией PrimeLimit
возвращает количество начал в той таблице:
ithprime(PrimeLimit)
Функция ithprime
извлекает простое число из этой таблицы. Чтобы вычислить большие простые числа (который MuPAD не хранит в таблице), ithprime
выбирает некоторый номер в качестве отправной точки, и затем рекурсивно вызывает функцию nextprime
. Несмотря на то, что внутренний алгоритм пытается сократить количество шагов вычисления, вычисление огромных простых чисел может быть очень медленным:
ithprime(100000000)
Предположим, вы хотите отобразить последовательность простых чисел. Для чисел, что хранилища MuPAD в таблице, вызовите функцию ithprime
, чтобы найти каждый номер в последовательности:
ithprime(i) $ i = 1000..1010
Если числа превышают значение, возвращенное ifactor
(PrimeLimit
), MuPAD не хранит их. В этом случае вызов ithprime
для каждого номера может быть очень медленным. Более эффективно используйте ithprime
, чтобы найти первый номер в последовательности, и затем использовать nextprime
, чтобы найти весь после чисел:
(n := ithprime(3*10^7)), (n := nextprime(n + 1)) $i = 1..10
Чтобы найти, сколько простых чисел не превышает особое значение, используйте функцию numlib::pi
:
numlib::pi(2), numlib::pi(3), numlib::pi(20), numlib::pi(1000), numlib::pi(15.789)
Можно представлять любое целое число как продукт начал. Этот процесс называется, учитывая целое число. Чтобы учесть целое число, используйте функцию ifactor
. Например, учтите номер 362880:
ifactor(362880)
Функциональный numlib::proveprime
реализует алгоритм Аткина Голдвассера Килиана Морайна для доказательства простоты чисел. Для получения информации о простоте чисел, доказывающей и этом конкретном алгоритме, см. следующие бумаги:
Atkin, A. O. и Ф. Морен. “Эллиптические кривые и доказательство простоты чисел”. Математика Вычисления. Издание 61, Номер 203, 1993.
Goldwasser, S. и Дж. Килиан. “Почти все начала могут быстро сертифицироваться”. Продолжения 18-го ежегодного симпозиума ACM по теории вычисления. Беркли, CA, США, 1986, стр 316-329.
Для относительно маленьких простых чисел numlib::proveprime
возвращает значение TRUE
. Для составных чисел функция возвращает FALSE
:
numlib::proveprime(541), numlib::proveprime(243)
Для больших простых чисел numlib::proveprime
возвращает сертификат о простоте чисел:
certificate := numlib::proveprime(1299709)
Сгенерированные сертификаты простоты чисел обеспечивают все данные, в которых вы нуждаетесь для доказательства простоты чисел номера алгоритмом Аткина Голдвассера Килиана Морайна. Можно заменить числами в алгоритм и проверить простоту чисел номера. Функция numlib::checkPrimalityCertificate
может проверить сертификат для вас:
numlib::checkPrimalityCertificate(certificate)