Выполнила: Колесникова Анастасия Алгоритмы решения задач теории чисел в пакетах символьной математики
Maple Большинство функций Maple для исcледований в области теории чисел содержатся в модуле numtheory. Для его подключения необходимо дать команду with(numtheory): . Округление, целые и дробные части Функция floor(x) округляет число x вниз, ceil(x) округляет число вверх, функция round(x) округляет x до ближайшего целого, функция trunc(x) возвращает floor(x) для положительных x и -floor(-x) – для отрицательных. Функция frac(x) возвращает дробную часть числа x.
Целочисленное деление, остатки, действия в кольцах вычетов Для нахождения частного при целочисленном делении используется функция iquo, для вычисления остатка от деления – функция irem. У этих функций два параметра: делимое и делитель. Примеры: > iquo(100,3); 33 > irem(100,1); 1
Также можно выполнять действия в кольце вычетов по заданному модулю. Для этого используется оператор mod у которого левый операнд – вычисляемое выражение, правый операнд – модуль, по которому проводятся вычисления. Пример нахождения обратного элемента для числа 57 в кольце вычетов по модулю 179 и проверка правильности этого вычисления: > 1/57 mod 179; 22 > irem(%*57,179); 1
НОД и НОК Для нахождения наибольшего общего делителя двух чисел используется функция igcd, для нахождения наименьшего общего кратного – функция ilcm. Пример: > igcd(57,179); 1 Расширенный алгоритм Евклида используется для нахождения по данным n и m таких чисел u и v, что un+vm=d, где d – наибольший общий делитель m и n. Для этого используется функция igcdex(n,m,'u','v'), где m, n – исходные числа, u и v – переменные, которым будут присвоено значение.
Пример: > igcdex(57,179,'u','v'); 1 > u; v; 22 -7 > 57*u+179*v; 1
Проверка на простоту, разложение на множители, построение простых чисел Для проверки числа на простоту используется функция isprime, которая возвращает true, если число простое и false – если составное. Для разложения числа на множители используются функции ifactor и ifactors. Первая функция возвращает результат в виде произведения степеней простых чисел, вторая – в виде списка простых чисел и их степеней. Все эти функции работают значительно эффективней простого подбора делителей, проверка на простоту осуществляется быстрее полного разложения на множители. Для построения простых чисел используются функции prevprime, nextprime, ithprime. Функция prevprime(n) возвращает наибольшее простое число, которое меньше n, функция nextprime(n) возвращает наименьшее простое число, которое больше n. Функция ithprime(n) возвращает n-е простое число.
Для нахождения случайного простого числа следует использовать эти функции вместе с функцией rand(), которая возвращает псевдослучайное 12-значное натуральное число. Для инициализации генератора псевдослучайных чисел необходимо использовать функцию randomize(). > isprime(7!); false > ifactor(7!); (2)4(3)2(5)(7) > ifactors(7!); [1, [[2, 4], [3, 2], [5, 1], [7, 1]]] > nexprime(7!); 5051 > nextprime(rand()); 427419669163
Специальные функции Функция divisors(n) возвращает список всех натуральных делителей данного целого числа. Функия tau(n) (тау-функция) возвращает количество делителей числа n. Функия sigma(n) (сигма-функция) возвращает сумму делителей делителей числа n. Функция sigma[k](n) возвращает сумму k-х степеней делителей числа n. Функция pi(n) (пи-функция) возвращает количество простых чисел, не превосходящих n. Функция phi(n) (фи-функция Эйлера) возвращает количество чисел, меньших n и взаимно простых с n.
Mathcad При выполнении экспериментов их данные обычно представляются с той или иной случайной погрешностью, поэтому их обработка нуждается в соответствующих статистических методах. С помощью Mathcad можно проводить наиболее распространённые статистические расчёты.
В Mathcad присутствует огромное множество статистических функ ций. Здесь мы опишем основные: gcd(A,B,C,...) – наибольший общий делитель для чисел A, B, C; gmean(A,B,C,...) – геометрическое среднее для чисел A, B, C; hmean(A,B,C,...) – гармоническое среднее для A, B, C; lcm(A,B,C,...) – наименьшее общее кратное для чисел A, B, C; mean(A,B,C,...) – арифметическое среднее для чисел A, B, C; median(A,B,C,...) – медиана для чисел A, B, C; mode(A,B,C,...) – мода (наиболее часто встречающееся значение ряда) для A, B, C;
MatLab round(x) ближайшее целое [x] fix(x) число с отброшенной дробной частью gcd(m, n) НОД(m, n) lcm(m, n) НОК(m, n) rem(m, n) m − fix(m/n) n mod(m, n) m − bm/nc n primes(n) список простых чисел ≤ n isprime(n) проверка числа на простоту factor(n) разложение на простые множители числа n factorial(n) n! i, j, 1i, 1j мнимая единица 1+1i, 1-2i, 3i комплексные числа complex(a, b) комплексное число a+bi real(z) действительная часть комплексного числа z imag(z) мнимая часть комплексного числа z abs(z) модуль комплексного числа z
Mathematica