Обсуждение участника:MetaMockery — различия между версиями
(→Малая теорема Ферма и теорема Эйлера) |
(→Функция Эйлера) |
||
Строка 20: | Строка 20: | ||
Поскольку <math>n</math> и <math>m</math> взаимно просты, то целое <math>s</math> взаимно просто с <math>n \cdot m</math> тогда и только тогда, когда оно взаимно просто как с <math>n</math>, так и с <math>m</math>. Итак, нужно доказать, что количество чисел в таблице, взаимно простых с <math>n</math> и с <math>m</math> равно <math>\varphi(m)\varphi(n)</math>. | Поскольку <math>n</math> и <math>m</math> взаимно просты, то целое <math>s</math> взаимно просто с <math>n \cdot m</math> тогда и только тогда, когда оно взаимно просто как с <math>n</math>, так и с <math>m</math>. Итак, нужно доказать, что количество чисел в таблице, взаимно простых с <math>n</math> и с <math>m</math> равно <math>\varphi(m)\varphi(n)</math>. | ||
− | В данном доказательстве мы | + | В данном доказательстве мы используем тот факт, что число <math>s</math> взаимно просто с натуральным <math>k</math> тогда и только тогда, когда остаток деления <math>s</math> на <math>k</math> тоже взаимно прост с <math>k</math>. Данный факт довольно очевиден и используется в [https://e-maxx.ru/algo/euclid_algorithm Алгоритме Евклида]. |
− | Теперь приступим | + | Теперь приступим непосредственно к доказательству. Число находящееся в <math>i</math>-ой строке и <math>j</math>-ом столбце нашей таблицы можно представить в виде <math>n(i - 1) + j</math>. Если это число взаимно просто с <math>n</math>, то и остаток этого числа по модулю <math>n</math> тоже взаимно прост с <math>n</math>. Но тогда и все числа в данном столбце тоже взаимно просты с <math>n</math>, так как весь столбец можно представить в виде арифметической прогрессии с разностью <math>n</math>, а при добавлении <math>n</math> остаток деления по модулю <math>n</math> не меняется. Поэтому, числа взаимно простые с <math>n</math> в таблице занимают ровно <math>\varphi(n)</math> столбцов. |
Перед тем как продолжить доказательство, давайте рассмотрим небольшое утверждение. Пусть нам даны <math>m</math> последовательных членов арифметической прогрессии <math>a, a + d, \dots , a + (m - 1)d</math>. Тогда, если <math>(d, m) = 1</math>, то остатки всех этих <math>m</math> чисел по модулю <math>m</math> разные, а значит образуют все множество остатков <math>\{0, \dots , m - 1\}</math>, причем каждый остаток получается ровно из одного из членов прогрессии. | Перед тем как продолжить доказательство, давайте рассмотрим небольшое утверждение. Пусть нам даны <math>m</math> последовательных членов арифметической прогрессии <math>a, a + d, \dots , a + (m - 1)d</math>. Тогда, если <math>(d, m) = 1</math>, то остатки всех этих <math>m</math> чисел по модулю <math>m</math> разные, а значит образуют все множество остатков <math>\{0, \dots , m - 1\}</math>, причем каждый остаток получается ровно из одного из членов прогрессии. | ||
− | Воспользуемся данным утверждением, подставив разность | + | Воспользуемся данным утверждением, подставив разность арифметической прогресии <math>d = n</math>. Тогда в каждом из <math>\varphi(n)</math> столбцов есть ровно <math>\varphi(m)</math> чисел, взаимно простых с <math>m</math>. Следовательно всего чисел, взаимно простых и с <math>n</math> и с <math>m</math> равно <math>\varphi(m)\varphi(n)</math>, что и требовалось доказать. |
Версия 11:27, 26 декабря 2020
Содержание
Функция Эйлера
Определение: |
Функция Эйлера | — определяется как количество натуральных чисел, не превосходящих и взаимно простых с .
Определение: |
Функция | называется мультипликативной, если для любых взаимно простых .
Теорема (Мультипликативность функции Эйлера): |
Для любых взаимно простых чисел
|
Доказательство: |
Запишем натуральных чисел, не превосходящих , в виде прямоугольной таблицы с столбцами и строками, располагая первые чисел в первой строке, вторые чисел во второй и т.д.Поскольку и взаимно просты, то целое взаимно просто с тогда и только тогда, когда оно взаимно просто как с , так и с . Итак, нужно доказать, что количество чисел в таблице, взаимно простых с и с равно .В данном доказательстве мы используем тот факт, что число Алгоритме Евклида. взаимно просто с натуральным тогда и только тогда, когда остаток деления на тоже взаимно прост с . Данный факт довольно очевиден и используется вТеперь приступим непосредственно к доказательству. Число находящееся в -ой строке и -ом столбце нашей таблицы можно представить в виде . Если это число взаимно просто с , то и остаток этого числа по модулю тоже взаимно прост с . Но тогда и все числа в данном столбце тоже взаимно просты с , так как весь столбец можно представить в виде арифметической прогрессии с разностью , а при добавлении остаток деления по модулю не меняется. Поэтому, числа взаимно простые с в таблице занимают ровно столбцов.Перед тем как продолжить доказательство, давайте рассмотрим небольшое утверждение. Пусть нам даны Воспользуемся данным утверждением, подставив разность арифметической прогресии последовательных членов арифметической прогрессии . Тогда, если , то остатки всех этих чисел по модулю разные, а значит образуют все множество остатков , причем каждый остаток получается ровно из одного из членов прогрессии. . Тогда в каждом из столбцов есть ровно чисел, взаимно простых с . Следовательно всего чисел, взаимно простых и с и с равно , что и требовалось доказать. |
Функции , и , их мультипликативность и значения
Каноническое разложение числа
Функция
Функция
определяется как сумма делителей натурального числа :Если
и взаимно просты, то каждый делитель произведения может быть единственным образом представлен в виде произведения делителей и делителей , и обратно, каждое такое произведение является делителем . Отсюда следует, что функция мультипликативна:Для простого числа
легко посчитать . При этом легко обобщается для некоторой степени :В силу мультипликативности функции:
Функция
Функция
определяется как число положительных делителей натурального числа :Если
и взаимно просты, то каждый делитель произведения может быть единственным образом представлен в виде произведения делителей и делителей , и обратно, каждое такое произведение является делителем . Отсюда следует, что функция мультипликативна:Для простого числа
легко посчитать . При этом легко обобщается для некоторой степени :В силу мультипликативности функции:
Функция
Для простого числа
легко посчитать . На некоторую степень формулу можно обобщить:Обосновывается следующим образом: Все не взаимно простые с
числа в диапазоне от 1 до , очевидно, кратны . Всего таких чисел .В силу мультипликативности функции:
Малая теорема Ферма и теорема Эйлера
Теорема (Теорема Эйлера): |
Если и — взаимно простые целые числа, то |
Доказательство: |
Число линейного диофантово уравнения второго порядка . Как видно из статьи, решение существует только при . В таком случае, у числа существует всего обратимых вычетов. Пусть — множество всех обратимых вычетов по модулю . Рассмотрим вычеты по модулю называется вычетом по модулю , если . Вычет называется обратимым вычетом, если существует вычет , такой что . Заметим, что вычет обратим тогда и только тогда, когда и взаимно просты. Это обосновывается тем, что данное выражение можно представить в виде . Так как и взаимно просты, то вычет обратим. Пусть — все обратимые вычеты по модулю . Тогда вычет , равный произведению всех обратимых вычетов, тоже обратим. Заметим, что отображение , заданное формулой является биекцией. Действительно, мы просто умножаем каждый остаток на какую-то константу, от этого множество вычетов не изменится. В таком случае в выражении , в правой части стоит произведение всех обратимых вычетов, но взятое в другом порядке. Тогда . Умножая обе части на вычет, обратный к , получим, что , что и требовалось доказать. |
Следствием теоремы Эйлера является малая теорема Ферма. У нее также есть доказательство без использования более общей теоремы Эйлера, однако его мы приводить не будем.
Теорема (Малая теорема Ферма): |
Если целое число и простое число — взаимно просты, то |
Доказательство: |
Так как | — простое, то . Воспользуемся теоремой Эйлера, тогда , что и требовалось доказать.
Различные свойства функции Эйлера
Теорема: |
Если для каких-то натуральных чисел и верно, что , тогда верно и |
Доказательство: |
Воспользуемся формулой для .При этом, так как , то , а такжеЗначит , а значит , что и требовалось доказать. |
Теорема: |
Для любого натурального числа выполнено равенство |
Доказательство: |
Данную теорему можно доказать "напролом", пользуясь формулой для , а можно более элегантно:Рассмотрим Заметим, что множество значений дробей . Каждую дробь представим в виде несократимой дроби . — это множество делителей числа . Так как дробь несократима, то и взаимно просты. Зная, что , легко понять, что всего дробей со знаменателем ровно . Так как, все дробей мы представили в несократимом виде, где знаменатель является делителем , то , так как всего дробей , что и требовалось доказать. |
Теорема (Обобщённая мультипликативность): |
Пусть и — любые два натуральных числа, а , тогда:
|
Доказательство: |
Пусть тогда причем в общем случае и Поэтому можно записать:Здесь первые делителей являются также делителями а последние делителей являются делителями Распишем:В силу мультипликативности функции Эйлера, а также с учётом формулы где — простое, получаем:В первой строке записано во второй — а третью можно представить, как Поэтому: |
Применение теоремы Эйлера в других задачах
Задача об ожерельях
Задача: |
Требуется посчитать количество ожерелий из | бусинок, каждая из которых может быть покрашена в один из цветов. При сравнении двух ожерелий их можно поворачивать, но не переворачивать (т.е. разрешается сделать циклический сдвиг).
В ходе решения задачи мы приходим к формуле
Мы можем улучшить эту формулу, если рассмотрим выражение
. Пусть , тогда числа и оба делятся на и больше не имеют общих делителей. Тогда . Таких натуральных и имеющих ровно .Пользуясь функцией Эйлера, мы можем привести формулу к финальному виду
.Алгоритм
Используя доказанные выше свойства функции, получим алгоритм нахождения
через факторизацию числа, работающий за .function phi (n): result = n i = 2 while (i*i <= n): if n % i == 0: while n % i == 0: n /= i result -= result / i i++ if (n > 1): result -= result/n return result