http://neerc.ifmo.ru/wiki/api.php?action=feedcontributions&user=MetaMockery&feedformat=atomВикиконспекты - Вклад участника [ru]2024-03-29T12:11:23ZВклад участникаMediaWiki 1.30.0http://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=81059Обсуждение участника:MetaMockery2021-06-16T12:56:55Z<p>MetaMockery: /* Специальные множества */</p>
<hr />
<div>[[Категория:Математический анализ 1 курс]]<br />
==Определения==<br />
<br />
{{Определение<br />
|definition=<br />
''Множество'' {{---}} первичное математическое понятие, которому не дано строгое математическое определение. Представляет собой набор, совокупность каких-либо объектов, объединенных общим свойством.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Объекты, из которых состоит множество, называют ''элементами'' этого множества. Если <tex>a</tex> {{---}} элемент множества <tex>A</tex>, то записывают <tex>a \in A</tex> («<tex>a</tex> принадлежит <tex>A</tex>»). Если <tex>a</tex> не является элементом множества <tex>A</tex>, то записывают <tex>a \notin A</tex> («<tex>a</tex> не принадлежит <tex>A</tex>»). В отличие от мультимножества каждый элемент множества уникален, и во множестве не может быть двух идентичных элементов.<br />
}}<br />
<br />
==Способы задания множеств==<br />
<br />
Существуют два основных способа задания множеств: перечисление и описание.<br />
<br />
==== Перечисление ====<br />
Первый способ состоит в том, что задаётся и перечисляется полный список элементов, входящих в множество.<br />
<br />
<tex> A = \{a_1, a_2 ..., a_n, ...\} </tex><br />
<br />
==== Описание ====<br />
Второй способ применяется, когда множество нельзя или затруднительно задать с помощью списка. В таком случае множества определяются свойствами их элементов.<br />
<br />
<tex> A = \{a \mid P\} </tex> , где <tex>P</tex> {{---}} определенное свойство элемента <tex>a</tex>.<br />
<br />
== Отношения между множествами ==<br />
<br />
Два множества <tex>A</tex> и <tex>B</tex> могут вступать друг с другом в различные отношения.<br />
<br />
==== Включение ====<br />
* <tex>A</tex> включено в <tex>B</tex>, если каждый элемент множества <tex>A</tex> принадлежит также и множеству <tex>B</tex> : <br />
*: <tex>\displaystyle A\subseteq B\Leftrightarrow \forall a\in A \ \colon \ a\in B</tex><br />
<br />
* <tex>A</tex> включает <tex>B</tex>, если <tex>B</tex> включено в <tex>A</tex>:<br />
*: <tex>{\displaystyle A\supseteq B\Leftrightarrow B\subseteq A}</tex><br />
<br />
* <tex>A</tex> строго включено в <tex>B</tex>, если <tex>A</tex> включено в <tex>B</tex>, но не равно ему:<br />
*: <tex>{\displaystyle A\subset B\Leftrightarrow (A\subseteq B)\land (A\neq B)}</tex><br />
<br />
==== Равенство ====<br />
* <tex>A</tex> равно <tex>B</tex>, если <tex>A</tex> и <tex>B</tex> включены друг в друга:<br />
*: <tex>{\displaystyle A=B\Leftrightarrow (A\subseteq B)\land (B\subseteq A)}</tex><br />
<br />
==== Общие элементы ====<br />
* <tex>A</tex> и <tex>B</tex> не пересекаются, если у них нет общих элементов:<br />
*: <tex>A</tex> и <tex>B</tex> не пересекаются <tex>{\displaystyle \Leftrightarrow \forall a\in A \ \colon a\notin B}</tex><br />
<br />
<br />
== Специальные множества ==<br />
<br />
{{Определение<br />
|definition=<br />
''Пустое множество'' {{---}} множество, не содержащее ни одного элемента. Обычно пустое множество обозначают как <tex>\varnothing</tex>.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
''Универсальное множество'' {{---}} множество, содержащее все объекты и все множества. В тех аксиоматиках, в которых универсальное множество существует, оно единственно. Обычно универсальное множество обозначают как <tex> \ \displaystyle \mathbb {U}</tex>.<br />
}}<br />
<br />
== Операции над множествами ==<br />
<br />
==== Бинарные операции над множествами ====<br />
<br />
* Пересечение <tex>A</tex> и <tex>B</tex>. <br />
*: <tex>{\displaystyle A\cap B =\{x\mid x\in A\land x\in B\}}</tex><br />
<br />
* Объединение <tex>A</tex> и <tex>B</tex>. <br />
*: <tex>{\displaystyle A\cup B =\{x\mid x\in A\lor x\in B\}}</tex><br />
<br />
* Разность <tex>A</tex> и <tex>B</tex>. <br />
*: <tex>{\displaystyle A\setminus B =A\cap {\overline {B}}=\{x\mid x\in A\land x\notin B\}}</tex><br />
<br />
* Симметрическая разность <tex>A</tex> и <tex>B</tex>. <br />
*: <tex> {\displaystyle A \bigtriangleup B \equiv A - B = (A \cup B) \setminus (A \cap B) }</tex><br />
<br />
==== Унарные операции над множествами ====<br />
<br />
* Дополнение определяется следующим образом:<br />
*: <tex>{\displaystyle {{\overline {A}}\equiv A^{\complement }=\{x\mid x\notin A\}}=U\setminus A}</tex>.<br />
<br />
== Теорема де Моргана ==<br />
<br />
{{Теорема<br />
|about=<br />
де Моргана<br />
|statement= <br />
<tex>\displaystyle {\overline{\bigcup\limits_\alpha A_\alpha} = \bigcap\limits_\alpha \overline{A_\alpha} \\<br />
\overline{\bigcap\limits_\alpha A_\alpha} = \bigcup\limits_\alpha \overline{A_\alpha}} </tex><br />
|proof=<br />
Докажем первое утверждение, второе доказывается аналогично.<br />
Для того, чтобы доказать равенство множеств, докажем, что первое множество включает второе и наоборот (частый приём при доказательстве равенства двух множеств).<br />
<br />
Сначала докажем, что <tex> \ \displaystyle \overline{\bigcup\limits_\alpha A_\alpha} \displaystyle \subseteq \bigcap\limits_\alpha \overline{A_\alpha}</tex>.<br />
<br />
Пусть <tex>x \in \left ( \overline{\bigcup\limits_\alpha A_\alpha} \right )</tex>. Значит, <tex>\nexists \ \alpha_i</tex> такого, что <tex>x \in A_{\alpha_i}</tex>. Следовательно, <tex>\forall \alpha : \ x \in \overline{A_\alpha} \Rightarrow x \in \left (\bigcap\limits_\alpha \overline{A_\alpha} \right )</tex>.<br />
В силу выбора <tex>x</tex> (любой элемент множества <tex>\overline{\bigcup\limits_\alpha A_\alpha}</tex>) следует искомое включение.<br />
<br />
<br />
Теперь докажем, что <tex> \ \displaystyle \bigcap\limits_\alpha \overline{A_\alpha} \subseteq \overline{\bigcup\limits_\alpha A_\alpha}</tex><br />
<br />
Пусть <tex>x \in \left ( \bigcap\limits_\alpha \overline{A_\alpha} \right )</tex>. Тогда <tex>\forall \alpha : \ x \in \overline{A_\alpha} \Rightarrow x \notin A_\alpha</tex>. Поскольку <tex>x</tex> не входит ни в одно объединяемое множество, то <tex>x \notin \bigcup\limits_\alpha A_\alpha \Rightarrow x \in \overline{\bigcup\limits_{\alpha} A_\alpha}</tex><br />
Аналогично, в силу выбора <tex>x</tex> выполняется искомое включение.<br />
}}<br />
<br />
Теорема де Моргана устанавливает двойственность понятий объединения и пересечения множеств. То есть, имея некоторое верное равенство, содержащее объединения и пересечения, можно переписать его, заменив пересечения на объединения и наоборот. Например, из равенства<br />
:<tex>(A \cup B) \cap C = (A \cap C) \cup (B \cap C) \Rightarrow (A \cap B) \cup C = (A \cup C) \cap (B \cup C)</tex><br />
Доказывается это следующим образом: равны множества, значит, равны дополнения. После раскрытия дополнений приходим к написанному равенству.</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=81058Обсуждение участника:MetaMockery2021-06-16T12:47:18Z<p>MetaMockery: /* Отношения между множествами */</p>
<hr />
<div>[[Категория:Математический анализ 1 курс]]<br />
==Определения==<br />
<br />
{{Определение<br />
|definition=<br />
''Множество'' {{---}} первичное математическое понятие, которому не дано строгое математическое определение. Представляет собой набор, совокупность каких-либо объектов, объединенных общим свойством.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Объекты, из которых состоит множество, называют ''элементами'' этого множества. Если <tex>a</tex> {{---}} элемент множества <tex>A</tex>, то записывают <tex>a \in A</tex> («<tex>a</tex> принадлежит <tex>A</tex>»). Если <tex>a</tex> не является элементом множества <tex>A</tex>, то записывают <tex>a \notin A</tex> («<tex>a</tex> не принадлежит <tex>A</tex>»). В отличие от мультимножества каждый элемент множества уникален, и во множестве не может быть двух идентичных элементов.<br />
}}<br />
<br />
==Способы задания множеств==<br />
<br />
Существуют два основных способа задания множеств: перечисление и описание.<br />
<br />
==== Перечисление ====<br />
Первый способ состоит в том, что задаётся и перечисляется полный список элементов, входящих в множество.<br />
<br />
<tex> A = \{a_1, a_2 ..., a_n, ...\} </tex><br />
<br />
==== Описание ====<br />
Второй способ применяется, когда множество нельзя или затруднительно задать с помощью списка. В таком случае множества определяются свойствами их элементов.<br />
<br />
<tex> A = \{a \mid P\} </tex> , где <tex>P</tex> {{---}} определенное свойство элемента <tex>a</tex>.<br />
<br />
== Отношения между множествами ==<br />
<br />
Два множества <tex>A</tex> и <tex>B</tex> могут вступать друг с другом в различные отношения.<br />
<br />
==== Включение ====<br />
* <tex>A</tex> включено в <tex>B</tex>, если каждый элемент множества <tex>A</tex> принадлежит также и множеству <tex>B</tex> : <br />
*: <tex>\displaystyle A\subseteq B\Leftrightarrow \forall a\in A \ \colon \ a\in B</tex><br />
<br />
* <tex>A</tex> включает <tex>B</tex>, если <tex>B</tex> включено в <tex>A</tex>:<br />
*: <tex>{\displaystyle A\supseteq B\Leftrightarrow B\subseteq A}</tex><br />
<br />
* <tex>A</tex> строго включено в <tex>B</tex>, если <tex>A</tex> включено в <tex>B</tex>, но не равно ему:<br />
*: <tex>{\displaystyle A\subset B\Leftrightarrow (A\subseteq B)\land (A\neq B)}</tex><br />
<br />
==== Равенство ====<br />
* <tex>A</tex> равно <tex>B</tex>, если <tex>A</tex> и <tex>B</tex> включены друг в друга:<br />
*: <tex>{\displaystyle A=B\Leftrightarrow (A\subseteq B)\land (B\subseteq A)}</tex><br />
<br />
==== Общие элементы ====<br />
* <tex>A</tex> и <tex>B</tex> не пересекаются, если у них нет общих элементов:<br />
*: <tex>A</tex> и <tex>B</tex> не пересекаются <tex>{\displaystyle \Leftrightarrow \forall a\in A \ \colon a\notin B}</tex><br />
<br />
<br />
== Специальные множетсва ==<br />
<br />
== Операции над множествами ==<br />
<br />
==== Бинарные операции над множествами ====<br />
<br />
* Пересечение <tex>A</tex> и <tex>B</tex>. <br />
*: <tex>{\displaystyle A\cap B =\{x\mid x\in A\land x\in B\}}</tex><br />
<br />
* Объединение <tex>A</tex> и <tex>B</tex>. <br />
*: <tex>{\displaystyle A\cup B =\{x\mid x\in A\lor x\in B\}}</tex><br />
<br />
* Разность <tex>A</tex> и <tex>B</tex>. <br />
*: <tex>{\displaystyle A\setminus B =A\cap {\overline {B}}=\{x\mid x\in A\land x\notin B\}}</tex><br />
<br />
* Симметрическая разность <tex>A</tex> и <tex>B</tex>. <br />
*: <tex> {\displaystyle A \bigtriangleup B \equiv A - B = (A \cup B) \setminus (A \cap B) }</tex><br />
<br />
==== Унарные операции над множествами ====<br />
<br />
* Дополнение определяется следующим образом:<br />
*: <tex>{\displaystyle {{\overline {A}}\equiv A^{\complement }=\{x\mid x\notin A\}}=U\setminus A}</tex>.<br />
<br />
== Теорема де Моргана ==<br />
<br />
{{Теорема<br />
|about=<br />
де Моргана<br />
|statement= <br />
<tex>\displaystyle {\overline{\bigcup\limits_\alpha A_\alpha} = \bigcap\limits_\alpha \overline{A_\alpha} \\<br />
\overline{\bigcap\limits_\alpha A_\alpha} = \bigcup\limits_\alpha \overline{A_\alpha}} </tex><br />
|proof=<br />
Докажем первое утверждение, второе доказывается аналогично.<br />
Для того, чтобы доказать равенство множеств, докажем, что первое множество включает второе и наоборот (частый приём при доказательстве равенства двух множеств).<br />
<br />
Сначала докажем, что <tex> \ \displaystyle \overline{\bigcup\limits_\alpha A_\alpha} \displaystyle \subseteq \bigcap\limits_\alpha \overline{A_\alpha}</tex>.<br />
<br />
Пусть <tex>x \in \left ( \overline{\bigcup\limits_\alpha A_\alpha} \right )</tex>. Значит, <tex>\nexists \ \alpha_i</tex> такого, что <tex>x \in A_{\alpha_i}</tex>. Следовательно, <tex>\forall \alpha : \ x \in \overline{A_\alpha} \Rightarrow x \in \left (\bigcap\limits_\alpha \overline{A_\alpha} \right )</tex>.<br />
В силу выбора <tex>x</tex> (любой элемент множества <tex>\overline{\bigcup\limits_\alpha A_\alpha}</tex>) следует искомое включение.<br />
<br />
<br />
Теперь докажем, что <tex> \ \displaystyle \bigcap\limits_\alpha \overline{A_\alpha} \subseteq \overline{\bigcup\limits_\alpha A_\alpha}</tex><br />
<br />
Пусть <tex>x \in \left ( \bigcap\limits_\alpha \overline{A_\alpha} \right )</tex>. Тогда <tex>\forall \alpha : \ x \in \overline{A_\alpha} \Rightarrow x \notin A_\alpha</tex>. Поскольку <tex>x</tex> не входит ни в одно объединяемое множество, то <tex>x \notin \bigcup\limits_\alpha A_\alpha \Rightarrow x \in \overline{\bigcup\limits_{\alpha} A_\alpha}</tex><br />
Аналогично, в силу выбора <tex>x</tex> выполняется искомое включение.<br />
}}<br />
<br />
Теорема де Моргана устанавливает двойственность понятий объединения и пересечения множеств. То есть, имея некоторое верное равенство, содержащее объединения и пересечения, можно переписать его, заменив пересечения на объединения и наоборот. Например, из равенства<br />
:<tex>(A \cup B) \cap C = (A \cap C) \cup (B \cap C) \Rightarrow (A \cap B) \cup C = (A \cup C) \cap (B \cup C)</tex><br />
Доказывается это следующим образом: равны множества, значит, равны дополнения. После раскрытия дополнений приходим к написанному равенству.</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=81057Обсуждение участника:MetaMockery2021-06-16T12:42:00Z<p>MetaMockery: /* Способы задания множеств */</p>
<hr />
<div>[[Категория:Математический анализ 1 курс]]<br />
==Определения==<br />
<br />
{{Определение<br />
|definition=<br />
''Множество'' {{---}} первичное математическое понятие, которому не дано строгое математическое определение. Представляет собой набор, совокупность каких-либо объектов, объединенных общим свойством.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Объекты, из которых состоит множество, называют ''элементами'' этого множества. Если <tex>a</tex> {{---}} элемент множества <tex>A</tex>, то записывают <tex>a \in A</tex> («<tex>a</tex> принадлежит <tex>A</tex>»). Если <tex>a</tex> не является элементом множества <tex>A</tex>, то записывают <tex>a \notin A</tex> («<tex>a</tex> не принадлежит <tex>A</tex>»). В отличие от мультимножества каждый элемент множества уникален, и во множестве не может быть двух идентичных элементов.<br />
}}<br />
<br />
==Способы задания множеств==<br />
<br />
Существуют два основных способа задания множеств: перечисление и описание.<br />
<br />
==== Перечисление ====<br />
Первый способ состоит в том, что задаётся и перечисляется полный список элементов, входящих в множество.<br />
<br />
<tex> A = \{a_1, a_2 ..., a_n, ...\} </tex><br />
<br />
==== Описание ====<br />
Второй способ применяется, когда множество нельзя или затруднительно задать с помощью списка. В таком случае множества определяются свойствами их элементов.<br />
<br />
<tex> A = \{a \mid P\} </tex> , где <tex>P</tex> {{---}} определенное свойство элемента <tex>a</tex>.<br />
<br />
== Отношения между множествами ==<br />
<br />
Два множества <tex>A</tex> и <tex>B</tex> могут вступать друг с другом в различные отношения.<br />
<br />
==== Включение ====<br />
* <tex>A</tex> включено в <tex>B</tex>, если каждый элемент множества <tex>A</tex> принадлежит также и множеству <tex>B</tex> : <br />
*: <tex>\displaystyle A\subseteq B\Leftrightarrow \forall a\in A \ \colon \ a\in B</tex><br />
<br />
* <tex>A</tex> включает <tex>B</tex>, если <tex>B</tex> включено в <tex>A</tex>:<br />
*: <tex>{\displaystyle A\supseteq B\Leftrightarrow B\subseteq A}</tex><br />
<br />
* <tex>A</tex> строго включено в <tex>B</tex>, если <tex>A</tex> включено в <tex>B</tex>, но не равно ему:<br />
*: <tex>{\displaystyle A\subset B\Leftrightarrow (A\subseteq B)\land (A\neq B)}</tex><br />
<br />
==== Равенство ====<br />
* <tex>A</tex> равно <tex>B</tex>, если <tex>A</tex> и <tex>B</tex> включены друг в друга:<br />
*: <tex>{\displaystyle A=B\Leftrightarrow (A\subseteq B)\land (B\subseteq A)}</tex><br />
<br />
==== Общие элементы ====<br />
* <tex>A</tex> и <tex>B</tex> не пересекаются, если у них нет общих элементов:<br />
*: <tex>A</tex> и <tex>B</tex> не пересекаются <tex>{\displaystyle \Leftrightarrow \forall a\in A \ \colon a\notin B}</tex><br />
<br />
== Операции над множествами ==<br />
<br />
==== Бинарные операции над множествами ====<br />
<br />
* Пересечение <tex>A</tex> и <tex>B</tex>. <br />
*: <tex>{\displaystyle A\cap B =\{x\mid x\in A\land x\in B\}}</tex><br />
<br />
* Объединение <tex>A</tex> и <tex>B</tex>. <br />
*: <tex>{\displaystyle A\cup B =\{x\mid x\in A\lor x\in B\}}</tex><br />
<br />
* Разность <tex>A</tex> и <tex>B</tex>. <br />
*: <tex>{\displaystyle A\setminus B =A\cap {\overline {B}}=\{x\mid x\in A\land x\notin B\}}</tex><br />
<br />
* Симметрическая разность <tex>A</tex> и <tex>B</tex>. <br />
*: <tex> {\displaystyle A \bigtriangleup B \equiv A - B = (A \cup B) \setminus (A \cap B) }</tex><br />
<br />
==== Унарные операции над множествами ====<br />
<br />
* Дополнение определяется следующим образом:<br />
*: <tex>{\displaystyle {{\overline {A}}\equiv A^{\complement }=\{x\mid x\notin A\}}=U\setminus A}</tex>.<br />
<br />
== Теорема де Моргана ==<br />
<br />
{{Теорема<br />
|about=<br />
де Моргана<br />
|statement= <br />
<tex>\displaystyle {\overline{\bigcup\limits_\alpha A_\alpha} = \bigcap\limits_\alpha \overline{A_\alpha} \\<br />
\overline{\bigcap\limits_\alpha A_\alpha} = \bigcup\limits_\alpha \overline{A_\alpha}} </tex><br />
|proof=<br />
Докажем первое утверждение, второе доказывается аналогично.<br />
Для того, чтобы доказать равенство множеств, докажем, что первое множество включает второе и наоборот (частый приём при доказательстве равенства двух множеств).<br />
<br />
Сначала докажем, что <tex> \ \displaystyle \overline{\bigcup\limits_\alpha A_\alpha} \displaystyle \subseteq \bigcap\limits_\alpha \overline{A_\alpha}</tex>.<br />
<br />
Пусть <tex>x \in \left ( \overline{\bigcup\limits_\alpha A_\alpha} \right )</tex>. Значит, <tex>\nexists \ \alpha_i</tex> такого, что <tex>x \in A_{\alpha_i}</tex>. Следовательно, <tex>\forall \alpha : \ x \in \overline{A_\alpha} \Rightarrow x \in \left (\bigcap\limits_\alpha \overline{A_\alpha} \right )</tex>.<br />
В силу выбора <tex>x</tex> (любой элемент множества <tex>\overline{\bigcup\limits_\alpha A_\alpha}</tex>) следует искомое включение.<br />
<br />
<br />
Теперь докажем, что <tex> \ \displaystyle \bigcap\limits_\alpha \overline{A_\alpha} \subseteq \overline{\bigcup\limits_\alpha A_\alpha}</tex><br />
<br />
Пусть <tex>x \in \left ( \bigcap\limits_\alpha \overline{A_\alpha} \right )</tex>. Тогда <tex>\forall \alpha : \ x \in \overline{A_\alpha} \Rightarrow x \notin A_\alpha</tex>. Поскольку <tex>x</tex> не входит ни в одно объединяемое множество, то <tex>x \notin \bigcup\limits_\alpha A_\alpha \Rightarrow x \in \overline{\bigcup\limits_{\alpha} A_\alpha}</tex><br />
Аналогично, в силу выбора <tex>x</tex> выполняется искомое включение.<br />
}}<br />
<br />
Теорема де Моргана устанавливает двойственность понятий объединения и пересечения множеств. То есть, имея некоторое верное равенство, содержащее объединения и пересечения, можно переписать его, заменив пересечения на объединения и наоборот. Например, из равенства<br />
:<tex>(A \cup B) \cap C = (A \cap C) \cup (B \cap C) \Rightarrow (A \cap B) \cup C = (A \cup C) \cap (B \cup C)</tex><br />
Доказывается это следующим образом: равны множества, значит, равны дополнения. После раскрытия дополнений приходим к написанному равенству.</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=81056Обсуждение участника:MetaMockery2021-06-16T12:41:31Z<p>MetaMockery: /* Определения */</p>
<hr />
<div>[[Категория:Математический анализ 1 курс]]<br />
==Определения==<br />
<br />
{{Определение<br />
|definition=<br />
''Множество'' {{---}} первичное математическое понятие, которому не дано строгое математическое определение. Представляет собой набор, совокупность каких-либо объектов, объединенных общим свойством.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Объекты, из которых состоит множество, называют ''элементами'' этого множества. Если <tex>a</tex> {{---}} элемент множества <tex>A</tex>, то записывают <tex>a \in A</tex> («<tex>a</tex> принадлежит <tex>A</tex>»). Если <tex>a</tex> не является элементом множества <tex>A</tex>, то записывают <tex>a \notin A</tex> («<tex>a</tex> не принадлежит <tex>A</tex>»). В отличие от мультимножества каждый элемент множества уникален, и во множестве не может быть двух идентичных элементов.<br />
}}<br />
<br />
==Способы задания множеств==<br />
<br />
Существуют два основных способа задания множеств: перечисление и описание.<br />
<br />
==== Перечисление ====<br />
Первый способ состоит в том, что задаётся и перечисляется полный список элементов, входящих в множество.<br />
<br />
<tex> A = \{a_1, a_2 ..., a_n, ...\} </tex><br />
<br />
Данный способ удобно применять лишь к ограниченному числу конечных множеств.<br />
<br />
==== Описание ====<br />
Второй способ применяется, когда множество нельзя или затруднительно задать с помощью списка. В таком случае множества определяются свойствами их элементов.<br />
<br />
<tex> A = \{a \mid P\} </tex> , где <tex>P</tex> {{---}} определенное свойство элемента <tex>a</tex>.<br />
<br />
== Отношения между множествами ==<br />
<br />
Два множества <tex>A</tex> и <tex>B</tex> могут вступать друг с другом в различные отношения.<br />
<br />
==== Включение ====<br />
* <tex>A</tex> включено в <tex>B</tex>, если каждый элемент множества <tex>A</tex> принадлежит также и множеству <tex>B</tex> : <br />
*: <tex>\displaystyle A\subseteq B\Leftrightarrow \forall a\in A \ \colon \ a\in B</tex><br />
<br />
* <tex>A</tex> включает <tex>B</tex>, если <tex>B</tex> включено в <tex>A</tex>:<br />
*: <tex>{\displaystyle A\supseteq B\Leftrightarrow B\subseteq A}</tex><br />
<br />
* <tex>A</tex> строго включено в <tex>B</tex>, если <tex>A</tex> включено в <tex>B</tex>, но не равно ему:<br />
*: <tex>{\displaystyle A\subset B\Leftrightarrow (A\subseteq B)\land (A\neq B)}</tex><br />
<br />
==== Равенство ====<br />
* <tex>A</tex> равно <tex>B</tex>, если <tex>A</tex> и <tex>B</tex> включены друг в друга:<br />
*: <tex>{\displaystyle A=B\Leftrightarrow (A\subseteq B)\land (B\subseteq A)}</tex><br />
<br />
==== Общие элементы ====<br />
* <tex>A</tex> и <tex>B</tex> не пересекаются, если у них нет общих элементов:<br />
*: <tex>A</tex> и <tex>B</tex> не пересекаются <tex>{\displaystyle \Leftrightarrow \forall a\in A \ \colon a\notin B}</tex><br />
<br />
== Операции над множествами ==<br />
<br />
==== Бинарные операции над множествами ====<br />
<br />
* Пересечение <tex>A</tex> и <tex>B</tex>. <br />
*: <tex>{\displaystyle A\cap B =\{x\mid x\in A\land x\in B\}}</tex><br />
<br />
* Объединение <tex>A</tex> и <tex>B</tex>. <br />
*: <tex>{\displaystyle A\cup B =\{x\mid x\in A\lor x\in B\}}</tex><br />
<br />
* Разность <tex>A</tex> и <tex>B</tex>. <br />
*: <tex>{\displaystyle A\setminus B =A\cap {\overline {B}}=\{x\mid x\in A\land x\notin B\}}</tex><br />
<br />
* Симметрическая разность <tex>A</tex> и <tex>B</tex>. <br />
*: <tex> {\displaystyle A \bigtriangleup B \equiv A - B = (A \cup B) \setminus (A \cap B) }</tex><br />
<br />
==== Унарные операции над множествами ====<br />
<br />
* Дополнение определяется следующим образом:<br />
*: <tex>{\displaystyle {{\overline {A}}\equiv A^{\complement }=\{x\mid x\notin A\}}=U\setminus A}</tex>.<br />
<br />
== Теорема де Моргана ==<br />
<br />
{{Теорема<br />
|about=<br />
де Моргана<br />
|statement= <br />
<tex>\displaystyle {\overline{\bigcup\limits_\alpha A_\alpha} = \bigcap\limits_\alpha \overline{A_\alpha} \\<br />
\overline{\bigcap\limits_\alpha A_\alpha} = \bigcup\limits_\alpha \overline{A_\alpha}} </tex><br />
|proof=<br />
Докажем первое утверждение, второе доказывается аналогично.<br />
Для того, чтобы доказать равенство множеств, докажем, что первое множество включает второе и наоборот (частый приём при доказательстве равенства двух множеств).<br />
<br />
Сначала докажем, что <tex> \ \displaystyle \overline{\bigcup\limits_\alpha A_\alpha} \displaystyle \subseteq \bigcap\limits_\alpha \overline{A_\alpha}</tex>.<br />
<br />
Пусть <tex>x \in \left ( \overline{\bigcup\limits_\alpha A_\alpha} \right )</tex>. Значит, <tex>\nexists \ \alpha_i</tex> такого, что <tex>x \in A_{\alpha_i}</tex>. Следовательно, <tex>\forall \alpha : \ x \in \overline{A_\alpha} \Rightarrow x \in \left (\bigcap\limits_\alpha \overline{A_\alpha} \right )</tex>.<br />
В силу выбора <tex>x</tex> (любой элемент множества <tex>\overline{\bigcup\limits_\alpha A_\alpha}</tex>) следует искомое включение.<br />
<br />
<br />
Теперь докажем, что <tex> \ \displaystyle \bigcap\limits_\alpha \overline{A_\alpha} \subseteq \overline{\bigcup\limits_\alpha A_\alpha}</tex><br />
<br />
Пусть <tex>x \in \left ( \bigcap\limits_\alpha \overline{A_\alpha} \right )</tex>. Тогда <tex>\forall \alpha : \ x \in \overline{A_\alpha} \Rightarrow x \notin A_\alpha</tex>. Поскольку <tex>x</tex> не входит ни в одно объединяемое множество, то <tex>x \notin \bigcup\limits_\alpha A_\alpha \Rightarrow x \in \overline{\bigcup\limits_{\alpha} A_\alpha}</tex><br />
Аналогично, в силу выбора <tex>x</tex> выполняется искомое включение.<br />
}}<br />
<br />
Теорема де Моргана устанавливает двойственность понятий объединения и пересечения множеств. То есть, имея некоторое верное равенство, содержащее объединения и пересечения, можно переписать его, заменив пересечения на объединения и наоборот. Например, из равенства<br />
:<tex>(A \cup B) \cap C = (A \cap C) \cup (B \cap C) \Rightarrow (A \cap B) \cup C = (A \cup C) \cap (B \cup C)</tex><br />
Доказывается это следующим образом: равны множества, значит, равны дополнения. После раскрытия дополнений приходим к написанному равенству.</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=81032Обсуждение участника:MetaMockery2021-06-15T10:23:30Z<p>MetaMockery: /* Описание */</p>
<hr />
<div>[[Категория:Математический анализ 1 курс]]<br />
==Определения==<br />
<br />
{{Определение<br />
|definition=<br />
''Множество'' {{---}} первичное математическое понятие, которому не может быть дано строгое математическое определение. Представляет собой набор, совокупность каких-либо объектов, объединенных общим свойством.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Объекты, из которых состоит множество, называют ''элементами'' этого множества. Если <tex>a</tex> {{---}} элемент множества <tex>A</tex>, то записывают <tex>a \in A</tex> («<tex>a</tex> принадлежит <tex>A</tex>»). Если <tex>a</tex> не является элементом множества <tex>A</tex>, то записывают <tex>a \notin A</tex> («<tex>a</tex> не принадлежит <tex>A</tex>»). В отличие от мультимножества каждый элемент множества уникален, и во множестве не может быть двух идентичных элементов.<br />
}}<br />
<br />
==Способы задания множеств==<br />
<br />
Существуют два основных способа задания множеств: перечисление и описание.<br />
<br />
==== Перечисление ====<br />
Первый способ состоит в том, что задаётся и перечисляется полный список элементов, входящих в множество.<br />
<br />
<tex> A = \{a_1, a_2 ..., a_n, ...\} </tex><br />
<br />
Данный способ удобно применять лишь к ограниченному числу конечных множеств.<br />
<br />
==== Описание ====<br />
Второй способ применяется, когда множество нельзя или затруднительно задать с помощью списка. В таком случае множества определяются свойствами их элементов.<br />
<br />
<tex> A = \{a \mid P\} </tex> , где <tex>P</tex> {{---}} определенное свойство элемента <tex>a</tex>.<br />
<br />
== Отношения между множествами ==<br />
<br />
Два множества <tex>A</tex> и <tex>B</tex> могут вступать друг с другом в различные отношения.<br />
<br />
==== Включение ====<br />
* <tex>A</tex> включено в <tex>B</tex>, если каждый элемент множества <tex>A</tex> принадлежит также и множеству <tex>B</tex> : <br />
*: <tex>\displaystyle A\subseteq B\Leftrightarrow \forall a\in A \ \colon \ a\in B</tex><br />
<br />
* <tex>A</tex> включает <tex>B</tex>, если <tex>B</tex> включено в <tex>A</tex>:<br />
*: <tex>{\displaystyle A\supseteq B\Leftrightarrow B\subseteq A}</tex><br />
<br />
* <tex>A</tex> строго включено в <tex>B</tex>, если <tex>A</tex> включено в <tex>B</tex>, но не равно ему:<br />
*: <tex>{\displaystyle A\subset B\Leftrightarrow (A\subseteq B)\land (A\neq B)}</tex><br />
<br />
==== Равенство ====<br />
* <tex>A</tex> равно <tex>B</tex>, если <tex>A</tex> и <tex>B</tex> включены друг в друга:<br />
*: <tex>{\displaystyle A=B\Leftrightarrow (A\subseteq B)\land (B\subseteq A)}</tex><br />
<br />
==== Общие элементы ====<br />
* <tex>A</tex> и <tex>B</tex> не пересекаются, если у них нет общих элементов:<br />
*: <tex>A</tex> и <tex>B</tex> не пересекаются <tex>{\displaystyle \Leftrightarrow \forall a\in A \ \colon a\notin B}</tex><br />
<br />
== Операции над множествами ==<br />
<br />
==== Бинарные операции над множествами ====<br />
<br />
* Пересечение <tex>A</tex> и <tex>B</tex>. <br />
*: <tex>{\displaystyle A\cap B =\{x\mid x\in A\land x\in B\}}</tex><br />
<br />
* Объединение <tex>A</tex> и <tex>B</tex>. <br />
*: <tex>{\displaystyle A\cup B =\{x\mid x\in A\lor x\in B\}}</tex><br />
<br />
* Разность <tex>A</tex> и <tex>B</tex>. <br />
*: <tex>{\displaystyle A\setminus B =A\cap {\overline {B}}=\{x\mid x\in A\land x\notin B\}}</tex><br />
<br />
* Симметрическая разность <tex>A</tex> и <tex>B</tex>. <br />
*: <tex> {\displaystyle A \bigtriangleup B \equiv A - B = (A \cup B) \setminus (A \cap B) }</tex><br />
<br />
==== Унарные операции над множествами ====<br />
<br />
* Дополнение определяется следующим образом:<br />
*: <tex>{\displaystyle {{\overline {A}}\equiv A^{\complement }=\{x\mid x\notin A\}}=U\setminus A}</tex>.<br />
<br />
== Теорема де Моргана ==<br />
<br />
{{Теорема<br />
|about=<br />
де Моргана<br />
|statement= <br />
<tex>\displaystyle {\overline{\bigcup\limits_\alpha A_\alpha} = \bigcap\limits_\alpha \overline{A_\alpha} \\<br />
\overline{\bigcap\limits_\alpha A_\alpha} = \bigcup\limits_\alpha \overline{A_\alpha}} </tex><br />
|proof=<br />
Докажем первое утверждение, второе доказывается аналогично.<br />
Для того, чтобы доказать равенство множеств, докажем, что первое множество включает второе и наоборот (частый приём при доказательстве равенства двух множеств).<br />
<br />
Сначала докажем, что <tex> \ \displaystyle \overline{\bigcup\limits_\alpha A_\alpha} \displaystyle \subseteq \bigcap\limits_\alpha \overline{A_\alpha}</tex>.<br />
<br />
Пусть <tex>x \in \left ( \overline{\bigcup\limits_\alpha A_\alpha} \right )</tex>. Значит, <tex>\nexists \ \alpha_i</tex> такого, что <tex>x \in A_{\alpha_i}</tex>. Следовательно, <tex>\forall \alpha : \ x \in \overline{A_\alpha} \Rightarrow x \in \left (\bigcap\limits_\alpha \overline{A_\alpha} \right )</tex>.<br />
В силу выбора <tex>x</tex> (любой элемент множества <tex>\overline{\bigcup\limits_\alpha A_\alpha}</tex>) следует искомое включение.<br />
<br />
<br />
Теперь докажем, что <tex> \ \displaystyle \bigcap\limits_\alpha \overline{A_\alpha} \subseteq \overline{\bigcup\limits_\alpha A_\alpha}</tex><br />
<br />
Пусть <tex>x \in \left ( \bigcap\limits_\alpha \overline{A_\alpha} \right )</tex>. Тогда <tex>\forall \alpha : \ x \in \overline{A_\alpha} \Rightarrow x \notin A_\alpha</tex>. Поскольку <tex>x</tex> не входит ни в одно объединяемое множество, то <tex>x \notin \bigcup\limits_\alpha A_\alpha \Rightarrow x \in \overline{\bigcup\limits_{\alpha} A_\alpha}</tex><br />
Аналогично, в силу выбора <tex>x</tex> выполняется искомое включение.<br />
}}<br />
<br />
Теорема де Моргана устанавливает двойственность понятий объединения и пересечения множеств. То есть, имея некоторое верное равенство, содержащее объединения и пересечения, можно переписать его, заменив пересечения на объединения и наоборот. Например, из равенства<br />
:<tex>(A \cup B) \cap C = (A \cap C) \cup (B \cap C) \Rightarrow (A \cap B) \cup C = (A \cup C) \cap (B \cup C)</tex><br />
Доказывается это следующим образом: равны множества, значит, равны дополнения. После раскрытия дополнений приходим к написанному равенству.</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=81031Обсуждение участника:MetaMockery2021-06-14T22:30:37Z<p>MetaMockery: /* Отношения между множествами */</p>
<hr />
<div>[[Категория:Математический анализ 1 курс]]<br />
==Определения==<br />
<br />
{{Определение<br />
|definition=<br />
''Множество'' {{---}} первичное математическое понятие, которому не может быть дано строгое математическое определение. Представляет собой набор, совокупность каких-либо объектов, объединенных общим свойством.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Объекты, из которых состоит множество, называют ''элементами'' этого множества. Если <tex>a</tex> {{---}} элемент множества <tex>A</tex>, то записывают <tex>a \in A</tex> («<tex>a</tex> принадлежит <tex>A</tex>»). Если <tex>a</tex> не является элементом множества <tex>A</tex>, то записывают <tex>a \notin A</tex> («<tex>a</tex> не принадлежит <tex>A</tex>»). В отличие от мультимножества каждый элемент множества уникален, и во множестве не может быть двух идентичных элементов.<br />
}}<br />
<br />
==Способы задания множеств==<br />
<br />
Существуют два основных способа задания множеств: перечисление и описание.<br />
<br />
==== Перечисление ====<br />
Первый способ состоит в том, что задаётся и перечисляется полный список элементов, входящих в множество.<br />
<br />
<tex> A = \{a_1, a_2 ..., a_n, ...\} </tex><br />
<br />
Данный способ удобно применять лишь к ограниченному числу конечных множеств.<br />
<br />
==== Описание ====<br />
Второй способ применяется, когда множество нельзя или затруднительно задать с помощью списка. В таком случае множества определяются свойствами их элементов.<br />
<br />
<tex> A = \{a: P\} </tex> , где <tex>P</tex> {{---}} определенное свойство элемента <tex>a</tex>.<br />
<br />
== Отношения между множествами ==<br />
<br />
Два множества <tex>A</tex> и <tex>B</tex> могут вступать друг с другом в различные отношения.<br />
<br />
==== Включение ====<br />
* <tex>A</tex> включено в <tex>B</tex>, если каждый элемент множества <tex>A</tex> принадлежит также и множеству <tex>B</tex> : <br />
*: <tex>\displaystyle A\subseteq B\Leftrightarrow \forall a\in A \ \colon \ a\in B</tex><br />
<br />
* <tex>A</tex> включает <tex>B</tex>, если <tex>B</tex> включено в <tex>A</tex>:<br />
*: <tex>{\displaystyle A\supseteq B\Leftrightarrow B\subseteq A}</tex><br />
<br />
* <tex>A</tex> строго включено в <tex>B</tex>, если <tex>A</tex> включено в <tex>B</tex>, но не равно ему:<br />
*: <tex>{\displaystyle A\subset B\Leftrightarrow (A\subseteq B)\land (A\neq B)}</tex><br />
<br />
==== Равенство ====<br />
* <tex>A</tex> равно <tex>B</tex>, если <tex>A</tex> и <tex>B</tex> включены друг в друга:<br />
*: <tex>{\displaystyle A=B\Leftrightarrow (A\subseteq B)\land (B\subseteq A)}</tex><br />
<br />
==== Общие элементы ====<br />
* <tex>A</tex> и <tex>B</tex> не пересекаются, если у них нет общих элементов:<br />
*: <tex>A</tex> и <tex>B</tex> не пересекаются <tex>{\displaystyle \Leftrightarrow \forall a\in A \ \colon a\notin B}</tex><br />
<br />
== Операции над множествами ==<br />
<br />
==== Бинарные операции над множествами ====<br />
<br />
* Пересечение <tex>A</tex> и <tex>B</tex>. <br />
*: <tex>{\displaystyle A\cap B =\{x\mid x\in A\land x\in B\}}</tex><br />
<br />
* Объединение <tex>A</tex> и <tex>B</tex>. <br />
*: <tex>{\displaystyle A\cup B =\{x\mid x\in A\lor x\in B\}}</tex><br />
<br />
* Разность <tex>A</tex> и <tex>B</tex>. <br />
*: <tex>{\displaystyle A\setminus B =A\cap {\overline {B}}=\{x\mid x\in A\land x\notin B\}}</tex><br />
<br />
* Симметрическая разность <tex>A</tex> и <tex>B</tex>. <br />
*: <tex> {\displaystyle A \bigtriangleup B \equiv A - B = (A \cup B) \setminus (A \cap B) }</tex><br />
<br />
==== Унарные операции над множествами ====<br />
<br />
* Дополнение определяется следующим образом:<br />
*: <tex>{\displaystyle {{\overline {A}}\equiv A^{\complement }=\{x\mid x\notin A\}}=U\setminus A}</tex>.<br />
<br />
== Теорема де Моргана ==<br />
<br />
{{Теорема<br />
|about=<br />
де Моргана<br />
|statement= <br />
<tex>\displaystyle {\overline{\bigcup\limits_\alpha A_\alpha} = \bigcap\limits_\alpha \overline{A_\alpha} \\<br />
\overline{\bigcap\limits_\alpha A_\alpha} = \bigcup\limits_\alpha \overline{A_\alpha}} </tex><br />
|proof=<br />
Докажем первое утверждение, второе доказывается аналогично.<br />
Для того, чтобы доказать равенство множеств, докажем, что первое множество включает второе и наоборот (частый приём при доказательстве равенства двух множеств).<br />
<br />
Сначала докажем, что <tex> \ \displaystyle \overline{\bigcup\limits_\alpha A_\alpha} \displaystyle \subseteq \bigcap\limits_\alpha \overline{A_\alpha}</tex>.<br />
<br />
Пусть <tex>x \in \left ( \overline{\bigcup\limits_\alpha A_\alpha} \right )</tex>. Значит, <tex>\nexists \ \alpha_i</tex> такого, что <tex>x \in A_{\alpha_i}</tex>. Следовательно, <tex>\forall \alpha : \ x \in \overline{A_\alpha} \Rightarrow x \in \left (\bigcap\limits_\alpha \overline{A_\alpha} \right )</tex>.<br />
В силу выбора <tex>x</tex> (любой элемент множества <tex>\overline{\bigcup\limits_\alpha A_\alpha}</tex>) следует искомое включение.<br />
<br />
<br />
Теперь докажем, что <tex> \ \displaystyle \bigcap\limits_\alpha \overline{A_\alpha} \subseteq \overline{\bigcup\limits_\alpha A_\alpha}</tex><br />
<br />
Пусть <tex>x \in \left ( \bigcap\limits_\alpha \overline{A_\alpha} \right )</tex>. Тогда <tex>\forall \alpha : \ x \in \overline{A_\alpha} \Rightarrow x \notin A_\alpha</tex>. Поскольку <tex>x</tex> не входит ни в одно объединяемое множество, то <tex>x \notin \bigcup\limits_\alpha A_\alpha \Rightarrow x \in \overline{\bigcup\limits_{\alpha} A_\alpha}</tex><br />
Аналогично, в силу выбора <tex>x</tex> выполняется искомое включение.<br />
}}<br />
<br />
Теорема де Моргана устанавливает двойственность понятий объединения и пересечения множеств. То есть, имея некоторое верное равенство, содержащее объединения и пересечения, можно переписать его, заменив пересечения на объединения и наоборот. Например, из равенства<br />
:<tex>(A \cup B) \cap C = (A \cap C) \cup (B \cap C) \Rightarrow (A \cap B) \cup C = (A \cup C) \cap (B \cup C)</tex><br />
Доказывается это следующим образом: равны множества, значит, равны дополнения. После раскрытия дополнений приходим к написанному равенству.</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=81030Обсуждение участника:MetaMockery2021-06-14T22:26:29Z<p>MetaMockery: /* Теорема де Моргана */</p>
<hr />
<div>[[Категория:Математический анализ 1 курс]]<br />
==Определения==<br />
<br />
{{Определение<br />
|definition=<br />
''Множество'' {{---}} первичное математическое понятие, которому не может быть дано строгое математическое определение. Представляет собой набор, совокупность каких-либо объектов, объединенных общим свойством.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Объекты, из которых состоит множество, называют ''элементами'' этого множества. Если <tex>a</tex> {{---}} элемент множества <tex>A</tex>, то записывают <tex>a \in A</tex> («<tex>a</tex> принадлежит <tex>A</tex>»). Если <tex>a</tex> не является элементом множества <tex>A</tex>, то записывают <tex>a \notin A</tex> («<tex>a</tex> не принадлежит <tex>A</tex>»). В отличие от мультимножества каждый элемент множества уникален, и во множестве не может быть двух идентичных элементов.<br />
}}<br />
<br />
==Способы задания множеств==<br />
<br />
Существуют два основных способа задания множеств: перечисление и описание.<br />
<br />
==== Перечисление ====<br />
Первый способ состоит в том, что задаётся и перечисляется полный список элементов, входящих в множество.<br />
<br />
<tex> A = \{a_1, a_2 ..., a_n, ...\} </tex><br />
<br />
Данный способ удобно применять лишь к ограниченному числу конечных множеств.<br />
<br />
==== Описание ====<br />
Второй способ применяется, когда множество нельзя или затруднительно задать с помощью списка. В таком случае множества определяются свойствами их элементов.<br />
<br />
<tex> A = \{a: P\} </tex> , где <tex>P</tex> {{---}} определенное свойство элемента <tex>a</tex>.<br />
<br />
== Отношения между множествами ==<br />
<br />
Два множества <tex>A</tex> и <tex>B</tex> могут вступать друг с другом в различные отношения.<br />
<br />
* <tex>A</tex> включено в <tex>B</tex>, если каждый элемент множества <tex>A</tex> принадлежит также и множеству <tex>B</tex> : <br />
*: <tex>\displaystyle A\subseteq B\Leftrightarrow \forall a\in A \ \colon \ a\in B</tex><br />
<br />
* <tex>A</tex> включает <tex>B</tex>, если <tex>B</tex> включено в <tex>A</tex>:<br />
*: <tex>{\displaystyle A\supseteq B\Leftrightarrow B\subseteq A}</tex><br />
<br />
* <tex>A</tex> равно <tex>B</tex>, если <tex>A</tex> и <tex>B</tex> включены друг в друга:<br />
*: <tex>{\displaystyle A=B\Leftrightarrow (A\subseteq B)\land (B\subseteq A)}</tex><br />
<br />
* <tex>A</tex> строго включено в <tex>B</tex>, если <tex>A</tex> включено в <tex>B</tex>, но не равно ему:<br />
*: <tex>{\displaystyle A\subset B\Leftrightarrow (A\subseteq B)\land (A\neq B)}</tex><br />
<br />
* <tex>A</tex> и <tex>B</tex> не пересекаются, если у них нет общих элементов:<br />
*: <tex>A</tex> и <tex>B</tex> не пересекаются <tex>{\displaystyle \Leftrightarrow \forall a\in A \ \colon a\notin B}</tex><br />
<br />
== Операции над множествами ==<br />
<br />
==== Бинарные операции над множествами ====<br />
<br />
* Пересечение <tex>A</tex> и <tex>B</tex>. <br />
*: <tex>{\displaystyle A\cap B =\{x\mid x\in A\land x\in B\}}</tex><br />
<br />
* Объединение <tex>A</tex> и <tex>B</tex>. <br />
*: <tex>{\displaystyle A\cup B =\{x\mid x\in A\lor x\in B\}}</tex><br />
<br />
* Разность <tex>A</tex> и <tex>B</tex>. <br />
*: <tex>{\displaystyle A\setminus B =A\cap {\overline {B}}=\{x\mid x\in A\land x\notin B\}}</tex><br />
<br />
* Симметрическая разность <tex>A</tex> и <tex>B</tex>. <br />
*: <tex> {\displaystyle A \bigtriangleup B \equiv A - B = (A \cup B) \setminus (A \cap B) }</tex><br />
<br />
==== Унарные операции над множествами ====<br />
<br />
* Дополнение определяется следующим образом:<br />
*: <tex>{\displaystyle {{\overline {A}}\equiv A^{\complement }=\{x\mid x\notin A\}}=U\setminus A}</tex>.<br />
<br />
== Теорема де Моргана ==<br />
<br />
{{Теорема<br />
|about=<br />
де Моргана<br />
|statement= <br />
<tex>\displaystyle {\overline{\bigcup\limits_\alpha A_\alpha} = \bigcap\limits_\alpha \overline{A_\alpha} \\<br />
\overline{\bigcap\limits_\alpha A_\alpha} = \bigcup\limits_\alpha \overline{A_\alpha}} </tex><br />
|proof=<br />
Докажем первое утверждение, второе доказывается аналогично.<br />
Для того, чтобы доказать равенство множеств, докажем, что первое множество включает второе и наоборот (частый приём при доказательстве равенства двух множеств).<br />
<br />
Сначала докажем, что <tex> \ \displaystyle \overline{\bigcup\limits_\alpha A_\alpha} \displaystyle \subseteq \bigcap\limits_\alpha \overline{A_\alpha}</tex>.<br />
<br />
Пусть <tex>x \in \left ( \overline{\bigcup\limits_\alpha A_\alpha} \right )</tex>. Значит, <tex>\nexists \ \alpha_i</tex> такого, что <tex>x \in A_{\alpha_i}</tex>. Следовательно, <tex>\forall \alpha : \ x \in \overline{A_\alpha} \Rightarrow x \in \left (\bigcap\limits_\alpha \overline{A_\alpha} \right )</tex>.<br />
В силу выбора <tex>x</tex> (любой элемент множества <tex>\overline{\bigcup\limits_\alpha A_\alpha}</tex>) следует искомое включение.<br />
<br />
<br />
Теперь докажем, что <tex> \ \displaystyle \bigcap\limits_\alpha \overline{A_\alpha} \subseteq \overline{\bigcup\limits_\alpha A_\alpha}</tex><br />
<br />
Пусть <tex>x \in \left ( \bigcap\limits_\alpha \overline{A_\alpha} \right )</tex>. Тогда <tex>\forall \alpha : \ x \in \overline{A_\alpha} \Rightarrow x \notin A_\alpha</tex>. Поскольку <tex>x</tex> не входит ни в одно объединяемое множество, то <tex>x \notin \bigcup\limits_\alpha A_\alpha \Rightarrow x \in \overline{\bigcup\limits_{\alpha} A_\alpha}</tex><br />
Аналогично, в силу выбора <tex>x</tex> выполняется искомое включение.<br />
}}<br />
<br />
Теорема де Моргана устанавливает двойственность понятий объединения и пересечения множеств. То есть, имея некоторое верное равенство, содержащее объединения и пересечения, можно переписать его, заменив пересечения на объединения и наоборот. Например, из равенства<br />
:<tex>(A \cup B) \cap C = (A \cap C) \cup (B \cap C) \Rightarrow (A \cap B) \cup C = (A \cup C) \cap (B \cup C)</tex><br />
Доказывается это следующим образом: равны множества, значит, равны дополнения. После раскрытия дополнений приходим к написанному равенству.</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=81028Обсуждение участника:MetaMockery2021-06-14T22:18:56Z<p>MetaMockery: /* Теорема де Моргана */</p>
<hr />
<div>[[Категория:Математический анализ 1 курс]]<br />
==Определения==<br />
<br />
{{Определение<br />
|definition=<br />
''Множество'' {{---}} первичное математическое понятие, которому не может быть дано строгое математическое определение. Представляет собой набор, совокупность каких-либо объектов, объединенных общим свойством.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Объекты, из которых состоит множество, называют ''элементами'' этого множества. Если <tex>a</tex> {{---}} элемент множества <tex>A</tex>, то записывают <tex>a \in A</tex> («<tex>a</tex> принадлежит <tex>A</tex>»). Если <tex>a</tex> не является элементом множества <tex>A</tex>, то записывают <tex>a \notin A</tex> («<tex>a</tex> не принадлежит <tex>A</tex>»). В отличие от мультимножества каждый элемент множества уникален, и во множестве не может быть двух идентичных элементов.<br />
}}<br />
<br />
==Способы задания множеств==<br />
<br />
Существуют два основных способа задания множеств: перечисление и описание.<br />
<br />
==== Перечисление ====<br />
Первый способ состоит в том, что задаётся и перечисляется полный список элементов, входящих в множество.<br />
<br />
<tex> A = \{a_1, a_2 ..., a_n, ...\} </tex><br />
<br />
Данный способ удобно применять лишь к ограниченному числу конечных множеств.<br />
<br />
==== Описание ====<br />
Второй способ применяется, когда множество нельзя или затруднительно задать с помощью списка. В таком случае множества определяются свойствами их элементов.<br />
<br />
<tex> A = \{a: P\} </tex> , где <tex>P</tex> {{---}} определенное свойство элемента <tex>a</tex>.<br />
<br />
== Отношения между множествами ==<br />
<br />
Два множества <tex>A</tex> и <tex>B</tex> могут вступать друг с другом в различные отношения.<br />
<br />
* <tex>A</tex> включено в <tex>B</tex>, если каждый элемент множества <tex>A</tex> принадлежит также и множеству <tex>B</tex> : <br />
*: <tex>\displaystyle A\subseteq B\Leftrightarrow \forall a\in A \ \colon \ a\in B</tex><br />
<br />
* <tex>A</tex> включает <tex>B</tex>, если <tex>B</tex> включено в <tex>A</tex>:<br />
*: <tex>{\displaystyle A\supseteq B\Leftrightarrow B\subseteq A}</tex><br />
<br />
* <tex>A</tex> равно <tex>B</tex>, если <tex>A</tex> и <tex>B</tex> включены друг в друга:<br />
*: <tex>{\displaystyle A=B\Leftrightarrow (A\subseteq B)\land (B\subseteq A)}</tex><br />
<br />
* <tex>A</tex> строго включено в <tex>B</tex>, если <tex>A</tex> включено в <tex>B</tex>, но не равно ему:<br />
*: <tex>{\displaystyle A\subset B\Leftrightarrow (A\subseteq B)\land (A\neq B)}</tex><br />
<br />
* <tex>A</tex> и <tex>B</tex> не пересекаются, если у них нет общих элементов:<br />
*: <tex>A</tex> и <tex>B</tex> не пересекаются <tex>{\displaystyle \Leftrightarrow \forall a\in A \ \colon a\notin B}</tex><br />
<br />
== Операции над множествами ==<br />
<br />
==== Бинарные операции над множествами ====<br />
<br />
* Пересечение <tex>A</tex> и <tex>B</tex>. <br />
*: <tex>{\displaystyle A\cap B =\{x\mid x\in A\land x\in B\}}</tex><br />
<br />
* Объединение <tex>A</tex> и <tex>B</tex>. <br />
*: <tex>{\displaystyle A\cup B =\{x\mid x\in A\lor x\in B\}}</tex><br />
<br />
* Разность <tex>A</tex> и <tex>B</tex>. <br />
*: <tex>{\displaystyle A\setminus B =A\cap {\overline {B}}=\{x\mid x\in A\land x\notin B\}}</tex><br />
<br />
* Симметрическая разность <tex>A</tex> и <tex>B</tex>. <br />
*: <tex> {\displaystyle A \bigtriangleup B \equiv A - B = (A \cup B) \setminus (A \cap B) }</tex><br />
<br />
==== Унарные операции над множествами ====<br />
<br />
* Дополнение определяется следующим образом:<br />
*: <tex>{\displaystyle {{\overline {A}}\equiv A^{\complement }=\{x\mid x\notin A\}}=U\setminus A}</tex>.<br />
<br />
== Теорема де Моргана ==<br />
<br />
{{Теорема<br />
|about=<br />
де Моргана<br />
|statement= <br />
<tex>\displaystyle {\overline{\bigcup\limits_\alpha A_\alpha} = \bigcap\limits_\alpha \overline{A_\alpha} \\<br />
\overline{\bigcap\limits_\alpha A_\alpha} = \bigcup\limits_\alpha \overline{A_\alpha}} </tex><br />
|proof=<br />
Докажем первое утверждение, второе доказывается аналогично.<br />
Для того, чтобы доказать равенство множеств, докажем, что первое множество включает второе и наоборот (частый приём при доказательстве равенства двух множеств).<br />
<br />
Сначала докажем, что <tex> \ \displaystyle \overline{\bigcup\limits_\alpha A_\alpha} \displaystyle \subseteq \bigcap\limits_\alpha \overline{A_\alpha}</tex>.<br />
<br />
Пусть <tex>x \in \left ( \overline{\bigcup\limits_\alpha A_\alpha} \right )</tex>. Значит, не существует <tex>\alpha_i</tex> такого, что <tex>x \in A_{\alpha_i}</tex>. Следовательно, <tex>x \in \overline{A_\alpha}</tex> для любого <tex>\alpha</tex> и <tex>x \in \left (\bigcap\limits_\alpha \overline{A_\alpha} \right )</tex>.<br />
В силу выбора <tex>x</tex> (любой элемент множества <tex>\overline{\bigcup\limits_\alpha A_\alpha}</tex>) следует искомое включение.<br />
<br />
<br />
Теперь докажем, что <tex> \ \displaystyle \bigcap\limits_\alpha \overline{A_\alpha} \subseteq \overline{\bigcup\limits_\alpha A_\alpha}</tex><br />
<br />
Пусть <tex>x \in \left ( \bigcap\limits_\alpha \overline{A_\alpha} \right )</tex>. Тогда для любого <tex>\alpha</tex> <tex>x \in \overline{A_\alpha}</tex>, то есть, <tex>x \notin A_\alpha</tex>. Поскольку <tex>x</tex> не входит ни в одно объединяемое множество, то <tex>x \notin \bigcup\limits_\alpha A_\alpha</tex>, то есть, <tex>x \in \overline{\bigcup\limits_{\alpha} A_\alpha}</tex><br />
Аналогично, в силу выбора <tex>x</tex> выполняется искомое включение.<br />
}}<br />
<br />
Теорема де Моргана устанавливает двойственность понятий объединения и пересечения множеств. То есть, имея некоторое верное равенство, содержащее объединения и пересечения, можно переписать его, заменив пересечения на объединения и наоборот. Например, из равенства<br />
:<tex>(A \cup B) \cap C = (A \cap C) \cup (B \cap C) \implies (A \cap B) \cup C = (A \cup C) \cap (B \cup C)</tex><br />
Доказывается это следующим образом: равны множества, значит, равны дополнения. После раскрытия дополнений приходим к написанному равенству.</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=81026Обсуждение участника:MetaMockery2021-06-14T21:44:19Z<p>MetaMockery: /* Операции */</p>
<hr />
<div>[[Категория:Математический анализ 1 курс]]<br />
==Определения==<br />
<br />
{{Определение<br />
|definition=<br />
''Множество'' {{---}} первичное математическое понятие, которому не может быть дано строгое математическое определение. Представляет собой набор, совокупность каких-либо объектов, объединенных общим свойством.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Объекты, из которых состоит множество, называют ''элементами'' этого множества. Если <tex>a</tex> {{---}} элемент множества <tex>A</tex>, то записывают <tex>a \in A</tex> («<tex>a</tex> принадлежит <tex>A</tex>»). Если <tex>a</tex> не является элементом множества <tex>A</tex>, то записывают <tex>a \notin A</tex> («<tex>a</tex> не принадлежит <tex>A</tex>»). В отличие от мультимножества каждый элемент множества уникален, и во множестве не может быть двух идентичных элементов.<br />
}}<br />
<br />
==Способы задания множеств==<br />
<br />
Существуют два основных способа задания множеств: перечисление и описание.<br />
<br />
==== Перечисление ====<br />
Первый способ состоит в том, что задаётся и перечисляется полный список элементов, входящих в множество.<br />
<br />
<tex> A = \{a_1, a_2 ..., a_n, ...\} </tex><br />
<br />
Данный способ удобно применять лишь к ограниченному числу конечных множеств.<br />
<br />
==== Описание ====<br />
Второй способ применяется, когда множество нельзя или затруднительно задать с помощью списка. В таком случае множества определяются свойствами их элементов.<br />
<br />
<tex> A = \{a: P\} </tex> , где <tex>P</tex> {{---}} определенное свойство элемента <tex>a</tex>.<br />
<br />
== Отношения между множествами ==<br />
<br />
Два множества <tex>A</tex> и <tex>B</tex> могут вступать друг с другом в различные отношения.<br />
<br />
* <tex>A</tex> включено в <tex>B</tex>, если каждый элемент множества <tex>A</tex> принадлежит также и множеству <tex>B</tex> : <br />
*: <tex>\displaystyle A\subseteq B\Leftrightarrow \forall a\in A \ \colon \ a\in B</tex><br />
<br />
* <tex>A</tex> включает <tex>B</tex>, если <tex>B</tex> включено в <tex>A</tex>:<br />
*: <tex>{\displaystyle A\supseteq B\Leftrightarrow B\subseteq A}</tex><br />
<br />
* <tex>A</tex> равно <tex>B</tex>, если <tex>A</tex> и <tex>B</tex> включены друг в друга:<br />
*: <tex>{\displaystyle A=B\Leftrightarrow (A\subseteq B)\land (B\subseteq A)}</tex><br />
<br />
* <tex>A</tex> строго включено в <tex>B</tex>, если <tex>A</tex> включено в <tex>B</tex>, но не равно ему:<br />
*: <tex>{\displaystyle A\subset B\Leftrightarrow (A\subseteq B)\land (A\neq B)}</tex><br />
<br />
* <tex>A</tex> и <tex>B</tex> не пересекаются, если у них нет общих элементов:<br />
*: <tex>A</tex> и <tex>B</tex> не пересекаются <tex>{\displaystyle \Leftrightarrow \forall a\in A \ \colon a\notin B}</tex><br />
<br />
== Операции над множествами ==<br />
<br />
==== Бинарные операции над множествами ====<br />
<br />
* Пересечение <tex>A</tex> и <tex>B</tex>. <br />
*: <tex>{\displaystyle A\cap B =\{x\mid x\in A\land x\in B\}}</tex><br />
<br />
* Объединение <tex>A</tex> и <tex>B</tex>. <br />
*: <tex>{\displaystyle A\cup B =\{x\mid x\in A\lor x\in B\}}</tex><br />
<br />
* Разность <tex>A</tex> и <tex>B</tex>. <br />
*: <tex>{\displaystyle A\setminus B =A\cap {\overline {B}}=\{x\mid x\in A\land x\notin B\}}</tex><br />
<br />
* Симметрическая разность <tex>A</tex> и <tex>B</tex>. <br />
*: <tex> {\displaystyle A \bigtriangleup B \equiv A - B = (A \cup B) \setminus (A \cap B) }</tex><br />
<br />
==== Унарные операции над множествами ====<br />
<br />
* Дополнение определяется следующим образом:<br />
*: <tex>{\displaystyle {{\overline {A}}\equiv A^{\complement }=\{x\mid x\notin A\}}=U\setminus A}</tex>.<br />
<br />
== Теорема де Моргана ==<br />
<br />
{{Теорема<br />
|about=<br />
де Моргана<br />
|statement= <br />
<tex>\overline{\bigcup\limits_\alpha A_\alpha} = \bigcap\limits_\alpha \overline{A_\alpha} \\<br />
\overline{\bigcap\limits_\alpha A_\alpha} = \bigcup\limits_\alpha \overline{A_\alpha} </tex><br />
|proof=<br />
Докажем первое утверждение, второе доказывается аналогично.<br />
Для того, чтобы доказать равенство множеств, докажем, что первое множество включает второе и наоборот (частый приём при доказательстве равенства двух множеств).<br />
# <tex>\overline{\bigcup\limits_\alpha A_\alpha} \subseteq \bigcap\limits_\alpha \overline{A_\alpha}</tex><br />
#* Пусть <tex>x \in \left ( \overline{\bigcup\limits_\alpha A_\alpha} \right )</tex>. Значит, не существует <tex>\alpha_1</tex> такого, что <tex>x \in A_{\alpha_1}</tex>. Следовательно, <tex>x \in \overline{A_\alpha}</tex> для любого <tex>\alpha</tex> и <tex>x \in \left (\bigcap\limits_\alpha \overline{A_\alpha} \right )</tex>.<br />
#* В силу выбора <tex>x</tex> (любой элемент множества <tex>\overline{\bigcup\limits_\alpha A_\alpha}</tex>) следует искомое включение.<br />
# <tex>\bigcap\limits_\alpha \overline{A_\alpha} \subseteq \overline{\bigcup\limits_\alpha A_\alpha}</tex><br />
#* Пусть <tex>x \in \left ( \bigcap\limits_\alpha \overline{A_\alpha} \right )</tex>. Тогда для любого <tex>\alpha</tex> <tex>x \in \overline{A_\alpha}</tex>, то есть, <tex>x \notin A_\alpha</tex>. Поскольку <tex>x</tex> не входит ни в одно объединяемое множество, то <tex>x \notin \bigcup\limits_\alpha A_\alpha</tex>, то есть, <tex>x \in \overline{\bigcup\limits_{\alpha} A_\alpha}</tex><br />
#* Аналогично, в силу выбора <tex>x</tex> выполняется искомое включение.<br />
}}<br />
<br />
Теорема де Моргана устанавливает двойственность понятий объединения и пересечения множеств. То есть, имея некоторое верное равенство, содержащее объединения и пересечения, можно переписать его, заменив пересечения на объединения и наоборот. Например, из равенства<br />
:<tex>(A \cup B) \cap C = (A \cap C) \cup (B \cap C)</tex> следует равенство<br />
:<tex>(A \cap B) \cup C = (A \cup C) \cap (B \cup C)</tex>.<br />
Доказывается это следующим образом: равны множества, значит, равны дополнения. После раскрытия дополнений приходим к написанному равенству.</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=81025Обсуждение участника:MetaMockery2021-06-14T21:22:46Z<p>MetaMockery: /* Отношения между множествами */</p>
<hr />
<div>[[Категория:Математический анализ 1 курс]]<br />
==Определения==<br />
<br />
{{Определение<br />
|definition=<br />
''Множество'' {{---}} первичное математическое понятие, которому не может быть дано строгое математическое определение. Представляет собой набор, совокупность каких-либо объектов, объединенных общим свойством.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Объекты, из которых состоит множество, называют ''элементами'' этого множества. Если <tex>a</tex> {{---}} элемент множества <tex>A</tex>, то записывают <tex>a \in A</tex> («<tex>a</tex> принадлежит <tex>A</tex>»). Если <tex>a</tex> не является элементом множества <tex>A</tex>, то записывают <tex>a \notin A</tex> («<tex>a</tex> не принадлежит <tex>A</tex>»). В отличие от мультимножества каждый элемент множества уникален, и во множестве не может быть двух идентичных элементов.<br />
}}<br />
<br />
==Способы задания множеств==<br />
<br />
Существуют два основных способа задания множеств: перечисление и описание.<br />
<br />
==== Перечисление ====<br />
Первый способ состоит в том, что задаётся и перечисляется полный список элементов, входящих в множество.<br />
<br />
<tex> A = \{a_1, a_2 ..., a_n, ...\} </tex><br />
<br />
Данный способ удобно применять лишь к ограниченному числу конечных множеств.<br />
<br />
==== Описание ====<br />
Второй способ применяется, когда множество нельзя или затруднительно задать с помощью списка. В таком случае множества определяются свойствами их элементов.<br />
<br />
<tex> A = \{a: P\} </tex> , где <tex>P</tex> {{---}} определенное свойство элемента <tex>a</tex>.<br />
<br />
== Отношения между множествами ==<br />
<br />
Два множества <tex>A</tex> и <tex>B</tex> могут вступать друг с другом в различные отношения.<br />
<br />
* <tex>A</tex> включено в <tex>B</tex>, если каждый элемент множества <tex>A</tex> принадлежит также и множеству <tex>B</tex> : <br />
*: <tex>\displaystyle A\subseteq B\Leftrightarrow \forall a\in A \ \colon \ a\in B</tex><br />
<br />
* <tex>A</tex> включает <tex>B</tex>, если <tex>B</tex> включено в <tex>A</tex>:<br />
*: <tex>{\displaystyle A\supseteq B\Leftrightarrow B\subseteq A}</tex><br />
<br />
* <tex>A</tex> равно <tex>B</tex>, если <tex>A</tex> и <tex>B</tex> включены друг в друга:<br />
*: <tex>{\displaystyle A=B\Leftrightarrow (A\subseteq B)\land (B\subseteq A)}</tex><br />
<br />
* <tex>A</tex> строго включено в <tex>B</tex>, если <tex>A</tex> включено в <tex>B</tex>, но не равно ему:<br />
*: <tex>{\displaystyle A\subset B\Leftrightarrow (A\subseteq B)\land (A\neq B)}</tex><br />
<br />
* <tex>A</tex> и <tex>B</tex> не пересекаются, если у них нет общих элементов:<br />
*: <tex>A</tex> и <tex>B</tex> не пересекаются <tex>{\displaystyle \Leftrightarrow \forall a\in A \ \colon a\notin B}</tex><br />
<br />
==Операции==<br />
<br />
# <tex> A \subset B </tex> (A является подмножеством B, каждый элемент из А также принадлежит В (<tex> \forall x: x \in A \Rightarrow x \in B </tex>));<br />
# <tex> A \cap B </tex> (Пересечение множеств А и В: <tex> (x \in A) \wedge (x \in B) </tex>);<br />
# <tex> A \cup B </tex> (Объединение множеств А и В: <tex> (x \in A) \vee (x \in B) </tex>);<br />
# <tex> B \backslash A </tex> (Разность множеств: <tex> (x \in B) \wedge (x \notin A) </tex>;<br />
# <tex> \varnothing </tex> {{---}} пустое множество:<br />
#* <tex> A \cup \varnothing = A </tex><br />
#* <tex> A \cap \varnothing = \varnothing </tex><br />
#* <tex> \forall A: \varnothing \subseteq A </tex><br />
# <tex> \bigcup\limits_{\alpha\in W} A_\alpha</tex> {{---}} объединение нескольких множеств. В общем случае может состоять из бесконечного количества множеств:<br />
#* <tex> \bigcup\limits_{j \in N} A_j = A_1 \cup A_2 \cup </tex> ...<br />
#* <tex> \bigcup\limits_{0 < x < 1} A_x </tex><br />
#* <tex> \bigcup\limits_{\alpha \in W} A_{\alpha} </tex>, и так далее..<br />
# <tex> A \cup B \cup C ... \subseteq U </tex> {{---}} &laquo;множество всего&raquo;, &laquo;универсальное множество&raquo;;<br />
# <tex>\overline{A} = U </tex> \ <tex> A </tex> {{---}} дополнение множества А, дополнительное множество к А до U.<br />
<br />
== Теорема де Моргана ==<br />
<br />
{{Теорема<br />
|about=<br />
де Моргана<br />
|statement= <br />
<tex>\overline{\bigcup\limits_\alpha A_\alpha} = \bigcap\limits_\alpha \overline{A_\alpha} \\<br />
\overline{\bigcap\limits_\alpha A_\alpha} = \bigcup\limits_\alpha \overline{A_\alpha} </tex><br />
|proof=<br />
Докажем первое утверждение, второе доказывается аналогично.<br />
Для того, чтобы доказать равенство множеств, докажем, что первое множество включает второе и наоборот (частый приём при доказательстве равенства двух множеств).<br />
# <tex>\overline{\bigcup\limits_\alpha A_\alpha} \subseteq \bigcap\limits_\alpha \overline{A_\alpha}</tex><br />
#* Пусть <tex>x \in \left ( \overline{\bigcup\limits_\alpha A_\alpha} \right )</tex>. Значит, не существует <tex>\alpha_1</tex> такого, что <tex>x \in A_{\alpha_1}</tex>. Следовательно, <tex>x \in \overline{A_\alpha}</tex> для любого <tex>\alpha</tex> и <tex>x \in \left (\bigcap\limits_\alpha \overline{A_\alpha} \right )</tex>.<br />
#* В силу выбора <tex>x</tex> (любой элемент множества <tex>\overline{\bigcup\limits_\alpha A_\alpha}</tex>) следует искомое включение.<br />
# <tex>\bigcap\limits_\alpha \overline{A_\alpha} \subseteq \overline{\bigcup\limits_\alpha A_\alpha}</tex><br />
#* Пусть <tex>x \in \left ( \bigcap\limits_\alpha \overline{A_\alpha} \right )</tex>. Тогда для любого <tex>\alpha</tex> <tex>x \in \overline{A_\alpha}</tex>, то есть, <tex>x \notin A_\alpha</tex>. Поскольку <tex>x</tex> не входит ни в одно объединяемое множество, то <tex>x \notin \bigcup\limits_\alpha A_\alpha</tex>, то есть, <tex>x \in \overline{\bigcup\limits_{\alpha} A_\alpha}</tex><br />
#* Аналогично, в силу выбора <tex>x</tex> выполняется искомое включение.<br />
}}<br />
<br />
Теорема де Моргана устанавливает двойственность понятий объединения и пересечения множеств. То есть, имея некоторое верное равенство, содержащее объединения и пересечения, можно переписать его, заменив пересечения на объединения и наоборот. Например, из равенства<br />
:<tex>(A \cup B) \cap C = (A \cap C) \cup (B \cap C)</tex> следует равенство<br />
:<tex>(A \cap B) \cup C = (A \cup C) \cap (B \cup C)</tex>.<br />
Доказывается это следующим образом: равны множества, значит, равны дополнения. После раскрытия дополнений приходим к написанному равенству.</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=81024Обсуждение участника:MetaMockery2021-06-14T21:06:30Z<p>MetaMockery: /* Отношения между множествами */</p>
<hr />
<div>[[Категория:Математический анализ 1 курс]]<br />
==Определения==<br />
<br />
{{Определение<br />
|definition=<br />
''Множество'' {{---}} первичное математическое понятие, которому не может быть дано строгое математическое определение. Представляет собой набор, совокупность каких-либо объектов, объединенных общим свойством.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Объекты, из которых состоит множество, называют ''элементами'' этого множества. Если <tex>a</tex> {{---}} элемент множества <tex>A</tex>, то записывают <tex>a \in A</tex> («<tex>a</tex> принадлежит <tex>A</tex>»). Если <tex>a</tex> не является элементом множества <tex>A</tex>, то записывают <tex>a \notin A</tex> («<tex>a</tex> не принадлежит <tex>A</tex>»). В отличие от мультимножества каждый элемент множества уникален, и во множестве не может быть двух идентичных элементов.<br />
}}<br />
<br />
==Способы задания множеств==<br />
<br />
Существуют два основных способа задания множеств: перечисление и описание.<br />
<br />
==== Перечисление ====<br />
Первый способ состоит в том, что задаётся и перечисляется полный список элементов, входящих в множество.<br />
<br />
<tex> A = \{a_1, a_2 ..., a_n, ...\} </tex><br />
<br />
Данный способ удобно применять лишь к ограниченному числу конечных множеств.<br />
<br />
==== Описание ====<br />
Второй способ применяется, когда множество нельзя или затруднительно задать с помощью списка. В таком случае множества определяются свойствами их элементов.<br />
<br />
<tex> A = \{a: P\} </tex> , где <tex>P</tex> {{---}} определенное свойство элемента <tex>a</tex>.<br />
<br />
== Отношения между множествами ==<br />
<br />
#*<br />
<br />
#*<br />
<br />
==Операции==<br />
<br />
# <tex> A \subset B </tex> (A является подмножеством B, каждый элемент из А также принадлежит В (<tex> \forall x: x \in A \Rightarrow x \in B </tex>));<br />
# <tex> A \cap B </tex> (Пересечение множеств А и В: <tex> (x \in A) \wedge (x \in B) </tex>);<br />
# <tex> A \cup B </tex> (Объединение множеств А и В: <tex> (x \in A) \vee (x \in B) </tex>);<br />
# <tex> B \backslash A </tex> (Разность множеств: <tex> (x \in B) \wedge (x \notin A) </tex>;<br />
# <tex> \varnothing </tex> {{---}} пустое множество:<br />
#* <tex> A \cup \varnothing = A </tex><br />
#* <tex> A \cap \varnothing = \varnothing </tex><br />
#* <tex> \forall A: \varnothing \subseteq A </tex><br />
# <tex> \bigcup\limits_{\alpha\in W} A_\alpha</tex> {{---}} объединение нескольких множеств. В общем случае может состоять из бесконечного количества множеств:<br />
#* <tex> \bigcup\limits_{j \in N} A_j = A_1 \cup A_2 \cup </tex> ...<br />
#* <tex> \bigcup\limits_{0 < x < 1} A_x </tex><br />
#* <tex> \bigcup\limits_{\alpha \in W} A_{\alpha} </tex>, и так далее..<br />
# <tex> A \cup B \cup C ... \subseteq U </tex> {{---}} &laquo;множество всего&raquo;, &laquo;универсальное множество&raquo;;<br />
# <tex>\overline{A} = U </tex> \ <tex> A </tex> {{---}} дополнение множества А, дополнительное множество к А до U.<br />
<br />
== Теорема де Моргана ==<br />
<br />
{{Теорема<br />
|about=<br />
де Моргана<br />
|statement= <br />
<tex>\overline{\bigcup\limits_\alpha A_\alpha} = \bigcap\limits_\alpha \overline{A_\alpha} \\<br />
\overline{\bigcap\limits_\alpha A_\alpha} = \bigcup\limits_\alpha \overline{A_\alpha} </tex><br />
|proof=<br />
Докажем первое утверждение, второе доказывается аналогично.<br />
Для того, чтобы доказать равенство множеств, докажем, что первое множество включает второе и наоборот (частый приём при доказательстве равенства двух множеств).<br />
# <tex>\overline{\bigcup\limits_\alpha A_\alpha} \subseteq \bigcap\limits_\alpha \overline{A_\alpha}</tex><br />
#* Пусть <tex>x \in \left ( \overline{\bigcup\limits_\alpha A_\alpha} \right )</tex>. Значит, не существует <tex>\alpha_1</tex> такого, что <tex>x \in A_{\alpha_1}</tex>. Следовательно, <tex>x \in \overline{A_\alpha}</tex> для любого <tex>\alpha</tex> и <tex>x \in \left (\bigcap\limits_\alpha \overline{A_\alpha} \right )</tex>.<br />
#* В силу выбора <tex>x</tex> (любой элемент множества <tex>\overline{\bigcup\limits_\alpha A_\alpha}</tex>) следует искомое включение.<br />
# <tex>\bigcap\limits_\alpha \overline{A_\alpha} \subseteq \overline{\bigcup\limits_\alpha A_\alpha}</tex><br />
#* Пусть <tex>x \in \left ( \bigcap\limits_\alpha \overline{A_\alpha} \right )</tex>. Тогда для любого <tex>\alpha</tex> <tex>x \in \overline{A_\alpha}</tex>, то есть, <tex>x \notin A_\alpha</tex>. Поскольку <tex>x</tex> не входит ни в одно объединяемое множество, то <tex>x \notin \bigcup\limits_\alpha A_\alpha</tex>, то есть, <tex>x \in \overline{\bigcup\limits_{\alpha} A_\alpha}</tex><br />
#* Аналогично, в силу выбора <tex>x</tex> выполняется искомое включение.<br />
}}<br />
<br />
Теорема де Моргана устанавливает двойственность понятий объединения и пересечения множеств. То есть, имея некоторое верное равенство, содержащее объединения и пересечения, можно переписать его, заменив пересечения на объединения и наоборот. Например, из равенства<br />
:<tex>(A \cup B) \cap C = (A \cap C) \cup (B \cap C)</tex> следует равенство<br />
:<tex>(A \cap B) \cup C = (A \cup C) \cap (B \cup C)</tex>.<br />
Доказывается это следующим образом: равны множества, значит, равны дополнения. После раскрытия дополнений приходим к написанному равенству.</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=81023Обсуждение участника:MetaMockery2021-06-14T21:05:21Z<p>MetaMockery: /* Операции */</p>
<hr />
<div>[[Категория:Математический анализ 1 курс]]<br />
==Определения==<br />
<br />
{{Определение<br />
|definition=<br />
''Множество'' {{---}} первичное математическое понятие, которому не может быть дано строгое математическое определение. Представляет собой набор, совокупность каких-либо объектов, объединенных общим свойством.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Объекты, из которых состоит множество, называют ''элементами'' этого множества. Если <tex>a</tex> {{---}} элемент множества <tex>A</tex>, то записывают <tex>a \in A</tex> («<tex>a</tex> принадлежит <tex>A</tex>»). Если <tex>a</tex> не является элементом множества <tex>A</tex>, то записывают <tex>a \notin A</tex> («<tex>a</tex> не принадлежит <tex>A</tex>»). В отличие от мультимножества каждый элемент множества уникален, и во множестве не может быть двух идентичных элементов.<br />
}}<br />
<br />
==Способы задания множеств==<br />
<br />
Существуют два основных способа задания множеств: перечисление и описание.<br />
<br />
==== Перечисление ====<br />
Первый способ состоит в том, что задаётся и перечисляется полный список элементов, входящих в множество.<br />
<br />
<tex> A = \{a_1, a_2 ..., a_n, ...\} </tex><br />
<br />
Данный способ удобно применять лишь к ограниченному числу конечных множеств.<br />
<br />
==== Описание ====<br />
Второй способ применяется, когда множество нельзя или затруднительно задать с помощью списка. В таком случае множества определяются свойствами их элементов.<br />
<br />
<tex> A = \{a: P\} </tex> , где <tex>P</tex> {{---}} определенное свойство элемента <tex>a</tex>.<br />
<br />
== Отношения между множествами ==<br />
<br />
<br />
==Операции==<br />
<br />
# <tex> A \subset B </tex> (A является подмножеством B, каждый элемент из А также принадлежит В (<tex> \forall x: x \in A \Rightarrow x \in B </tex>));<br />
# <tex> A \cap B </tex> (Пересечение множеств А и В: <tex> (x \in A) \wedge (x \in B) </tex>);<br />
# <tex> A \cup B </tex> (Объединение множеств А и В: <tex> (x \in A) \vee (x \in B) </tex>);<br />
# <tex> B \backslash A </tex> (Разность множеств: <tex> (x \in B) \wedge (x \notin A) </tex>;<br />
# <tex> \varnothing </tex> {{---}} пустое множество:<br />
#* <tex> A \cup \varnothing = A </tex><br />
#* <tex> A \cap \varnothing = \varnothing </tex><br />
#* <tex> \forall A: \varnothing \subseteq A </tex><br />
# <tex> \bigcup\limits_{\alpha\in W} A_\alpha</tex> {{---}} объединение нескольких множеств. В общем случае может состоять из бесконечного количества множеств:<br />
#* <tex> \bigcup\limits_{j \in N} A_j = A_1 \cup A_2 \cup </tex> ...<br />
#* <tex> \bigcup\limits_{0 < x < 1} A_x </tex><br />
#* <tex> \bigcup\limits_{\alpha \in W} A_{\alpha} </tex>, и так далее..<br />
# <tex> A \cup B \cup C ... \subseteq U </tex> {{---}} &laquo;множество всего&raquo;, &laquo;универсальное множество&raquo;;<br />
# <tex>\overline{A} = U </tex> \ <tex> A </tex> {{---}} дополнение множества А, дополнительное множество к А до U.<br />
<br />
== Теорема де Моргана ==<br />
<br />
{{Теорема<br />
|about=<br />
де Моргана<br />
|statement= <br />
<tex>\overline{\bigcup\limits_\alpha A_\alpha} = \bigcap\limits_\alpha \overline{A_\alpha} \\<br />
\overline{\bigcap\limits_\alpha A_\alpha} = \bigcup\limits_\alpha \overline{A_\alpha} </tex><br />
|proof=<br />
Докажем первое утверждение, второе доказывается аналогично.<br />
Для того, чтобы доказать равенство множеств, докажем, что первое множество включает второе и наоборот (частый приём при доказательстве равенства двух множеств).<br />
# <tex>\overline{\bigcup\limits_\alpha A_\alpha} \subseteq \bigcap\limits_\alpha \overline{A_\alpha}</tex><br />
#* Пусть <tex>x \in \left ( \overline{\bigcup\limits_\alpha A_\alpha} \right )</tex>. Значит, не существует <tex>\alpha_1</tex> такого, что <tex>x \in A_{\alpha_1}</tex>. Следовательно, <tex>x \in \overline{A_\alpha}</tex> для любого <tex>\alpha</tex> и <tex>x \in \left (\bigcap\limits_\alpha \overline{A_\alpha} \right )</tex>.<br />
#* В силу выбора <tex>x</tex> (любой элемент множества <tex>\overline{\bigcup\limits_\alpha A_\alpha}</tex>) следует искомое включение.<br />
# <tex>\bigcap\limits_\alpha \overline{A_\alpha} \subseteq \overline{\bigcup\limits_\alpha A_\alpha}</tex><br />
#* Пусть <tex>x \in \left ( \bigcap\limits_\alpha \overline{A_\alpha} \right )</tex>. Тогда для любого <tex>\alpha</tex> <tex>x \in \overline{A_\alpha}</tex>, то есть, <tex>x \notin A_\alpha</tex>. Поскольку <tex>x</tex> не входит ни в одно объединяемое множество, то <tex>x \notin \bigcup\limits_\alpha A_\alpha</tex>, то есть, <tex>x \in \overline{\bigcup\limits_{\alpha} A_\alpha}</tex><br />
#* Аналогично, в силу выбора <tex>x</tex> выполняется искомое включение.<br />
}}<br />
<br />
Теорема де Моргана устанавливает двойственность понятий объединения и пересечения множеств. То есть, имея некоторое верное равенство, содержащее объединения и пересечения, можно переписать его, заменив пересечения на объединения и наоборот. Например, из равенства<br />
:<tex>(A \cup B) \cap C = (A \cap C) \cup (B \cap C)</tex> следует равенство<br />
:<tex>(A \cap B) \cup C = (A \cup C) \cap (B \cup C)</tex>.<br />
Доказывается это следующим образом: равны множества, значит, равны дополнения. После раскрытия дополнений приходим к написанному равенству.</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=81022Обсуждение участника:MetaMockery2021-06-14T21:04:18Z<p>MetaMockery: /* Задание множеств */</p>
<hr />
<div>[[Категория:Математический анализ 1 курс]]<br />
==Определения==<br />
<br />
{{Определение<br />
|definition=<br />
''Множество'' {{---}} первичное математическое понятие, которому не может быть дано строгое математическое определение. Представляет собой набор, совокупность каких-либо объектов, объединенных общим свойством.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Объекты, из которых состоит множество, называют ''элементами'' этого множества. Если <tex>a</tex> {{---}} элемент множества <tex>A</tex>, то записывают <tex>a \in A</tex> («<tex>a</tex> принадлежит <tex>A</tex>»). Если <tex>a</tex> не является элементом множества <tex>A</tex>, то записывают <tex>a \notin A</tex> («<tex>a</tex> не принадлежит <tex>A</tex>»). В отличие от мультимножества каждый элемент множества уникален, и во множестве не может быть двух идентичных элементов.<br />
}}<br />
<br />
==Способы задания множеств==<br />
<br />
Существуют два основных способа задания множеств: перечисление и описание.<br />
<br />
==== Перечисление ====<br />
Первый способ состоит в том, что задаётся и перечисляется полный список элементов, входящих в множество.<br />
<br />
<tex> A = \{a_1, a_2 ..., a_n, ...\} </tex><br />
<br />
Данный способ удобно применять лишь к ограниченному числу конечных множеств.<br />
<br />
==== Описание ====<br />
Второй способ применяется, когда множество нельзя или затруднительно задать с помощью списка. В таком случае множества определяются свойствами их элементов.<br />
<br />
<tex> A = \{a: P\} </tex> , где <tex>P</tex> {{---}} определенное свойство элемента <tex>a</tex>.<br />
<br />
==Операции==<br />
<br />
# <tex> A \subset B </tex> (A является подмножеством B, каждый элемент из А также принадлежит В (<tex> \forall x: x \in A \Rightarrow x \in B </tex>));<br />
# <tex> A \cap B </tex> (Пересечение множеств А и В: <tex> (x \in A) \wedge (x \in B) </tex>);<br />
# <tex> A \cup B </tex> (Объединение множеств А и В: <tex> (x \in A) \vee (x \in B) </tex>);<br />
# <tex> B \backslash A </tex> (Разность множеств: <tex> (x \in B) \wedge (x \notin A) </tex>;<br />
# <tex> \varnothing </tex> {{---}} пустое множество:<br />
#* <tex> A \cup \varnothing = A </tex><br />
#* <tex> A \cap \varnothing = \varnothing </tex><br />
#* <tex> \forall A: \varnothing \subseteq A </tex><br />
# <tex> \bigcup\limits_{\alpha\in W} A_\alpha</tex> {{---}} объединение нескольких множеств. В общем случае может состоять из бесконечного количества множеств:<br />
#* <tex> \bigcup\limits_{j \in N} A_j = A_1 \cup A_2 \cup </tex> ...<br />
#* <tex> \bigcup\limits_{0 < x < 1} A_x </tex><br />
#* <tex> \bigcup\limits_{\alpha \in W} A_{\alpha} </tex>, и так далее..<br />
# <tex> A \cup B \cup C ... \subseteq U </tex> {{---}} &laquo;множество всего&raquo;, &laquo;универсальное множество&raquo;;<br />
# <tex>\overline{A} = U </tex> \ <tex> A </tex> {{---}} дополнение множества А, дополнительное множество к А до U.<br />
<br />
== Теорема де Моргана ==<br />
<br />
{{Теорема<br />
|about=<br />
де Моргана<br />
|statement= <br />
<tex>\overline{\bigcup\limits_\alpha A_\alpha} = \bigcap\limits_\alpha \overline{A_\alpha} \\<br />
\overline{\bigcap\limits_\alpha A_\alpha} = \bigcup\limits_\alpha \overline{A_\alpha} </tex><br />
|proof=<br />
Докажем первое утверждение, второе доказывается аналогично.<br />
Для того, чтобы доказать равенство множеств, докажем, что первое множество включает второе и наоборот (частый приём при доказательстве равенства двух множеств).<br />
# <tex>\overline{\bigcup\limits_\alpha A_\alpha} \subseteq \bigcap\limits_\alpha \overline{A_\alpha}</tex><br />
#* Пусть <tex>x \in \left ( \overline{\bigcup\limits_\alpha A_\alpha} \right )</tex>. Значит, не существует <tex>\alpha_1</tex> такого, что <tex>x \in A_{\alpha_1}</tex>. Следовательно, <tex>x \in \overline{A_\alpha}</tex> для любого <tex>\alpha</tex> и <tex>x \in \left (\bigcap\limits_\alpha \overline{A_\alpha} \right )</tex>.<br />
#* В силу выбора <tex>x</tex> (любой элемент множества <tex>\overline{\bigcup\limits_\alpha A_\alpha}</tex>) следует искомое включение.<br />
# <tex>\bigcap\limits_\alpha \overline{A_\alpha} \subseteq \overline{\bigcup\limits_\alpha A_\alpha}</tex><br />
#* Пусть <tex>x \in \left ( \bigcap\limits_\alpha \overline{A_\alpha} \right )</tex>. Тогда для любого <tex>\alpha</tex> <tex>x \in \overline{A_\alpha}</tex>, то есть, <tex>x \notin A_\alpha</tex>. Поскольку <tex>x</tex> не входит ни в одно объединяемое множество, то <tex>x \notin \bigcup\limits_\alpha A_\alpha</tex>, то есть, <tex>x \in \overline{\bigcup\limits_{\alpha} A_\alpha}</tex><br />
#* Аналогично, в силу выбора <tex>x</tex> выполняется искомое включение.<br />
}}<br />
<br />
Теорема де Моргана устанавливает двойственность понятий объединения и пересечения множеств. То есть, имея некоторое верное равенство, содержащее объединения и пересечения, можно переписать его, заменив пересечения на объединения и наоборот. Например, из равенства<br />
:<tex>(A \cup B) \cap C = (A \cap C) \cup (B \cap C)</tex> следует равенство<br />
:<tex>(A \cap B) \cup C = (A \cup C) \cap (B \cup C)</tex>.<br />
Доказывается это следующим образом: равны множества, значит, равны дополнения. После раскрытия дополнений приходим к написанному равенству.</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=81021Обсуждение участника:MetaMockery2021-06-14T20:58:06Z<p>MetaMockery: /* Начальные определения */</p>
<hr />
<div>[[Категория:Математический анализ 1 курс]]<br />
==Определения==<br />
<br />
{{Определение<br />
|definition=<br />
''Множество'' {{---}} первичное математическое понятие, которому не может быть дано строгое математическое определение. Представляет собой набор, совокупность каких-либо объектов, объединенных общим свойством.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Объекты, из которых состоит множество, называют ''элементами'' этого множества. Если <tex>a</tex> {{---}} элемент множества <tex>A</tex>, то записывают <tex>a \in A</tex> («<tex>a</tex> принадлежит <tex>A</tex>»). Если <tex>a</tex> не является элементом множества <tex>A</tex>, то записывают <tex>a \notin A</tex> («<tex>a</tex> не принадлежит <tex>A</tex>»). В отличие от мультимножества каждый элемент множества уникален, и во множестве не может быть двух идентичных элементов.<br />
}}<br />
<br />
==Задание множеств==<br />
<br />
1) Перечислением элементов: <tex> A = \{a_1, a_2 ..., a_n, ...\} </tex><br />
<br />
2) Заданием определенного свойства обьектов: <tex> A = \{a: P\} </tex> , где P {{---}} определенное свойство обьекта а<br />
<br />
==Операции==<br />
<br />
# <tex> A \subset B </tex> (A является подмножеством B, каждый элемент из А также принадлежит В (<tex> \forall x: x \in A \Rightarrow x \in B </tex>));<br />
# <tex> A \cap B </tex> (Пересечение множеств А и В: <tex> (x \in A) \wedge (x \in B) </tex>);<br />
# <tex> A \cup B </tex> (Объединение множеств А и В: <tex> (x \in A) \vee (x \in B) </tex>);<br />
# <tex> B \backslash A </tex> (Разность множеств: <tex> (x \in B) \wedge (x \notin A) </tex>;<br />
# <tex> \varnothing </tex> {{---}} пустое множество:<br />
#* <tex> A \cup \varnothing = A </tex><br />
#* <tex> A \cap \varnothing = \varnothing </tex><br />
#* <tex> \forall A: \varnothing \subseteq A </tex><br />
# <tex> \bigcup\limits_{\alpha\in W} A_\alpha</tex> {{---}} объединение нескольких множеств. В общем случае может состоять из бесконечного количества множеств:<br />
#* <tex> \bigcup\limits_{j \in N} A_j = A_1 \cup A_2 \cup </tex> ...<br />
#* <tex> \bigcup\limits_{0 < x < 1} A_x </tex><br />
#* <tex> \bigcup\limits_{\alpha \in W} A_{\alpha} </tex>, и так далее..<br />
# <tex> A \cup B \cup C ... \subseteq U </tex> {{---}} &laquo;множество всего&raquo;, &laquo;универсальное множество&raquo;;<br />
# <tex>\overline{A} = U </tex> \ <tex> A </tex> {{---}} дополнение множества А, дополнительное множество к А до U.<br />
<br />
== Теорема де Моргана ==<br />
<br />
{{Теорема<br />
|about=<br />
де Моргана<br />
|statement= <br />
<tex>\overline{\bigcup\limits_\alpha A_\alpha} = \bigcap\limits_\alpha \overline{A_\alpha} \\<br />
\overline{\bigcap\limits_\alpha A_\alpha} = \bigcup\limits_\alpha \overline{A_\alpha} </tex><br />
|proof=<br />
Докажем первое утверждение, второе доказывается аналогично.<br />
Для того, чтобы доказать равенство множеств, докажем, что первое множество включает второе и наоборот (частый приём при доказательстве равенства двух множеств).<br />
# <tex>\overline{\bigcup\limits_\alpha A_\alpha} \subseteq \bigcap\limits_\alpha \overline{A_\alpha}</tex><br />
#* Пусть <tex>x \in \left ( \overline{\bigcup\limits_\alpha A_\alpha} \right )</tex>. Значит, не существует <tex>\alpha_1</tex> такого, что <tex>x \in A_{\alpha_1}</tex>. Следовательно, <tex>x \in \overline{A_\alpha}</tex> для любого <tex>\alpha</tex> и <tex>x \in \left (\bigcap\limits_\alpha \overline{A_\alpha} \right )</tex>.<br />
#* В силу выбора <tex>x</tex> (любой элемент множества <tex>\overline{\bigcup\limits_\alpha A_\alpha}</tex>) следует искомое включение.<br />
# <tex>\bigcap\limits_\alpha \overline{A_\alpha} \subseteq \overline{\bigcup\limits_\alpha A_\alpha}</tex><br />
#* Пусть <tex>x \in \left ( \bigcap\limits_\alpha \overline{A_\alpha} \right )</tex>. Тогда для любого <tex>\alpha</tex> <tex>x \in \overline{A_\alpha}</tex>, то есть, <tex>x \notin A_\alpha</tex>. Поскольку <tex>x</tex> не входит ни в одно объединяемое множество, то <tex>x \notin \bigcup\limits_\alpha A_\alpha</tex>, то есть, <tex>x \in \overline{\bigcup\limits_{\alpha} A_\alpha}</tex><br />
#* Аналогично, в силу выбора <tex>x</tex> выполняется искомое включение.<br />
}}<br />
<br />
Теорема де Моргана устанавливает двойственность понятий объединения и пересечения множеств. То есть, имея некоторое верное равенство, содержащее объединения и пересечения, можно переписать его, заменив пересечения на объединения и наоборот. Например, из равенства<br />
:<tex>(A \cup B) \cap C = (A \cap C) \cup (B \cap C)</tex> следует равенство<br />
:<tex>(A \cap B) \cup C = (A \cup C) \cap (B \cup C)</tex>.<br />
Доказывается это следующим образом: равны множества, значит, равны дополнения. После раскрытия дополнений приходим к написанному равенству.</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=81020Обсуждение участника:MetaMockery2021-06-14T20:57:22Z<p>MetaMockery: /* Начальные определения */</p>
<hr />
<div>[[Категория:Математический анализ 1 курс]]<br />
==Начальные определения==<br />
<br />
{{Определение<br />
|definition=<br />
''Множество'' {{---}} первичное математическое понятие, которому не может быть дано строгое математическое определение. Представляет собой набор, совокупность каких-либо объектов, объединенных общим свойством.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Объекты, из которых состоит множество, называют ''элементами'' этого множества. Если <tex>a</tex> {{---}} элемент множества <tex>A</tex>, то записывают <tex>a \in A</tex> («<tex>a</tex> принадлежит <tex>A</tex>»). Если <tex>a</tex> не является элементом множества <tex>A</tex>, то записывают <tex>a \notin A</tex> («<tex>a</tex> не принадлежит <tex>A</tex>»). В отличие от мультимножества каждый элемент множества уникален, и во множестве не может быть двух идентичных элементов.<br />
}}<br />
<br />
==Задание множеств==<br />
<br />
1) Перечислением элементов: <tex> A = \{a_1, a_2 ..., a_n, ...\} </tex><br />
<br />
2) Заданием определенного свойства обьектов: <tex> A = \{a: P\} </tex> , где P {{---}} определенное свойство обьекта а<br />
<br />
==Операции==<br />
<br />
# <tex> A \subset B </tex> (A является подмножеством B, каждый элемент из А также принадлежит В (<tex> \forall x: x \in A \Rightarrow x \in B </tex>));<br />
# <tex> A \cap B </tex> (Пересечение множеств А и В: <tex> (x \in A) \wedge (x \in B) </tex>);<br />
# <tex> A \cup B </tex> (Объединение множеств А и В: <tex> (x \in A) \vee (x \in B) </tex>);<br />
# <tex> B \backslash A </tex> (Разность множеств: <tex> (x \in B) \wedge (x \notin A) </tex>;<br />
# <tex> \varnothing </tex> {{---}} пустое множество:<br />
#* <tex> A \cup \varnothing = A </tex><br />
#* <tex> A \cap \varnothing = \varnothing </tex><br />
#* <tex> \forall A: \varnothing \subseteq A </tex><br />
# <tex> \bigcup\limits_{\alpha\in W} A_\alpha</tex> {{---}} объединение нескольких множеств. В общем случае может состоять из бесконечного количества множеств:<br />
#* <tex> \bigcup\limits_{j \in N} A_j = A_1 \cup A_2 \cup </tex> ...<br />
#* <tex> \bigcup\limits_{0 < x < 1} A_x </tex><br />
#* <tex> \bigcup\limits_{\alpha \in W} A_{\alpha} </tex>, и так далее..<br />
# <tex> A \cup B \cup C ... \subseteq U </tex> {{---}} &laquo;множество всего&raquo;, &laquo;универсальное множество&raquo;;<br />
# <tex>\overline{A} = U </tex> \ <tex> A </tex> {{---}} дополнение множества А, дополнительное множество к А до U.<br />
<br />
== Теорема де Моргана ==<br />
<br />
{{Теорема<br />
|about=<br />
де Моргана<br />
|statement= <br />
<tex>\overline{\bigcup\limits_\alpha A_\alpha} = \bigcap\limits_\alpha \overline{A_\alpha} \\<br />
\overline{\bigcap\limits_\alpha A_\alpha} = \bigcup\limits_\alpha \overline{A_\alpha} </tex><br />
|proof=<br />
Докажем первое утверждение, второе доказывается аналогично.<br />
Для того, чтобы доказать равенство множеств, докажем, что первое множество включает второе и наоборот (частый приём при доказательстве равенства двух множеств).<br />
# <tex>\overline{\bigcup\limits_\alpha A_\alpha} \subseteq \bigcap\limits_\alpha \overline{A_\alpha}</tex><br />
#* Пусть <tex>x \in \left ( \overline{\bigcup\limits_\alpha A_\alpha} \right )</tex>. Значит, не существует <tex>\alpha_1</tex> такого, что <tex>x \in A_{\alpha_1}</tex>. Следовательно, <tex>x \in \overline{A_\alpha}</tex> для любого <tex>\alpha</tex> и <tex>x \in \left (\bigcap\limits_\alpha \overline{A_\alpha} \right )</tex>.<br />
#* В силу выбора <tex>x</tex> (любой элемент множества <tex>\overline{\bigcup\limits_\alpha A_\alpha}</tex>) следует искомое включение.<br />
# <tex>\bigcap\limits_\alpha \overline{A_\alpha} \subseteq \overline{\bigcup\limits_\alpha A_\alpha}</tex><br />
#* Пусть <tex>x \in \left ( \bigcap\limits_\alpha \overline{A_\alpha} \right )</tex>. Тогда для любого <tex>\alpha</tex> <tex>x \in \overline{A_\alpha}</tex>, то есть, <tex>x \notin A_\alpha</tex>. Поскольку <tex>x</tex> не входит ни в одно объединяемое множество, то <tex>x \notin \bigcup\limits_\alpha A_\alpha</tex>, то есть, <tex>x \in \overline{\bigcup\limits_{\alpha} A_\alpha}</tex><br />
#* Аналогично, в силу выбора <tex>x</tex> выполняется искомое включение.<br />
}}<br />
<br />
Теорема де Моргана устанавливает двойственность понятий объединения и пересечения множеств. То есть, имея некоторое верное равенство, содержащее объединения и пересечения, можно переписать его, заменив пересечения на объединения и наоборот. Например, из равенства<br />
:<tex>(A \cup B) \cap C = (A \cap C) \cup (B \cap C)</tex> следует равенство<br />
:<tex>(A \cap B) \cup C = (A \cup C) \cap (B \cup C)</tex>.<br />
Доказывается это следующим образом: равны множества, значит, равны дополнения. После раскрытия дополнений приходим к написанному равенству.</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=81019Обсуждение участника:MetaMockery2021-06-14T20:32:34Z<p>MetaMockery: </p>
<hr />
<div>[[Категория:Математический анализ 1 курс]]<br />
==Начальные определения==<br />
Множество - первичное математическое понятие, которому не может быть дано строгое математическое определение. Часто множество определяют как «совокупность объектов, объединенных общим свойством».<br />
<br />
В [[Математический анализ 1 курс|математическом анализе]] используется «наивная» теория множеств, которая является удобным языком описания фактов. Создана немецким математиком Г. Кантором(1870).<br />
<br />
<tex>a \in A</tex> (объект а принадлежит множеству А)<br />
<br />
<tex>a \notin A</tex> (объект а не принадлежит множеству А)<br />
<br />
==Задание множеств==<br />
<br />
1) Перечислением элементов: <tex> A = \{a_1, a_2 ..., a_n, ...\} </tex><br />
<br />
2) Заданием определенного свойства обьектов: <tex> A = \{a: P\} </tex> , где P {{---}} определенное свойство обьекта а<br />
<br />
==Операции==<br />
<br />
# <tex> A \subset B </tex> (A является подмножеством B, каждый элемент из А также принадлежит В (<tex> \forall x: x \in A \Rightarrow x \in B </tex>));<br />
# <tex> A \cap B </tex> (Пересечение множеств А и В: <tex> (x \in A) \wedge (x \in B) </tex>);<br />
# <tex> A \cup B </tex> (Объединение множеств А и В: <tex> (x \in A) \vee (x \in B) </tex>);<br />
# <tex> B \backslash A </tex> (Разность множеств: <tex> (x \in B) \wedge (x \notin A) </tex>;<br />
# <tex> \varnothing </tex> {{---}} пустое множество:<br />
#* <tex> A \cup \varnothing = A </tex><br />
#* <tex> A \cap \varnothing = \varnothing </tex><br />
#* <tex> \forall A: \varnothing \subseteq A </tex><br />
# <tex> \bigcup\limits_{\alpha\in W} A_\alpha</tex> {{---}} объединение нескольких множеств. В общем случае может состоять из бесконечного количества множеств:<br />
#* <tex> \bigcup\limits_{j \in N} A_j = A_1 \cup A_2 \cup </tex> ...<br />
#* <tex> \bigcup\limits_{0 < x < 1} A_x </tex><br />
#* <tex> \bigcup\limits_{\alpha \in W} A_{\alpha} </tex>, и так далее..<br />
# <tex> A \cup B \cup C ... \subseteq U </tex> {{---}} &laquo;множество всего&raquo;, &laquo;универсальное множество&raquo;;<br />
# <tex>\overline{A} = U </tex> \ <tex> A </tex> {{---}} дополнение множества А, дополнительное множество к А до U.<br />
<br />
== Теорема де Моргана ==<br />
<br />
{{Теорема<br />
|about=<br />
де Моргана<br />
|statement= <br />
<tex>\overline{\bigcup\limits_\alpha A_\alpha} = \bigcap\limits_\alpha \overline{A_\alpha} \\<br />
\overline{\bigcap\limits_\alpha A_\alpha} = \bigcup\limits_\alpha \overline{A_\alpha} </tex><br />
|proof=<br />
Докажем первое утверждение, второе доказывается аналогично.<br />
Для того, чтобы доказать равенство множеств, докажем, что первое множество включает второе и наоборот (частый приём при доказательстве равенства двух множеств).<br />
# <tex>\overline{\bigcup\limits_\alpha A_\alpha} \subseteq \bigcap\limits_\alpha \overline{A_\alpha}</tex><br />
#* Пусть <tex>x \in \left ( \overline{\bigcup\limits_\alpha A_\alpha} \right )</tex>. Значит, не существует <tex>\alpha_1</tex> такого, что <tex>x \in A_{\alpha_1}</tex>. Следовательно, <tex>x \in \overline{A_\alpha}</tex> для любого <tex>\alpha</tex> и <tex>x \in \left (\bigcap\limits_\alpha \overline{A_\alpha} \right )</tex>.<br />
#* В силу выбора <tex>x</tex> (любой элемент множества <tex>\overline{\bigcup\limits_\alpha A_\alpha}</tex>) следует искомое включение.<br />
# <tex>\bigcap\limits_\alpha \overline{A_\alpha} \subseteq \overline{\bigcup\limits_\alpha A_\alpha}</tex><br />
#* Пусть <tex>x \in \left ( \bigcap\limits_\alpha \overline{A_\alpha} \right )</tex>. Тогда для любого <tex>\alpha</tex> <tex>x \in \overline{A_\alpha}</tex>, то есть, <tex>x \notin A_\alpha</tex>. Поскольку <tex>x</tex> не входит ни в одно объединяемое множество, то <tex>x \notin \bigcup\limits_\alpha A_\alpha</tex>, то есть, <tex>x \in \overline{\bigcup\limits_{\alpha} A_\alpha}</tex><br />
#* Аналогично, в силу выбора <tex>x</tex> выполняется искомое включение.<br />
}}<br />
<br />
Теорема де Моргана устанавливает двойственность понятий объединения и пересечения множеств. То есть, имея некоторое верное равенство, содержащее объединения и пересечения, можно переписать его, заменив пересечения на объединения и наоборот. Например, из равенства<br />
:<tex>(A \cup B) \cap C = (A \cap C) \cup (B \cap C)</tex> следует равенство<br />
:<tex>(A \cap B) \cup C = (A \cup C) \cap (B \cup C)</tex>.<br />
Доказывается это следующим образом: равны множества, значит, равны дополнения. После раскрытия дополнений приходим к написанному равенству.</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=75817Обсуждение участника:MetaMockery2020-12-29T08:30:53Z<p>MetaMockery: </p>
<hr />
<div>== Функция Эйлера ==<br />
<br />
{{Определение<br />
|definition=<br />
''Функция Эйлера'' <tex>\varphi (n) </tex> определяется как количество натуральных чисел, не превосходящих <tex>n</tex> и взаимно простых с <tex>n</tex>.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Функция <tex>f : \mathbb{N} \to \mathbb{Z} </tex> называется ''мультипликативной'', если <tex>f(mn) = f(m)f(n)</tex> для любых взаимно простых <tex>m, n</tex>.<br />
}}<br />
<br />
{{Теорема<br />
|about = Мультипликативность функции Эйлера<br />
|statement = Для любых взаимно простых чисел <tex>m, n</tex> <br />
: <math>\varphi(mn)=\varphi(m)\varphi(n)</math><br />
|proof =<br />
Запишем <math>n \cdot m</math> натуральных чисел, не превосходящих <math>n \cdot m</math>, в виде прямоугольной таблицы с <math>n</math> столбцами и <math>m</math> строками, располагая первые <math>n</math> чисел в первой строке, вторые <math>n</math> чисел во второй и т.д. <br />
<br />
Поскольку <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>. <br />
<br />
В данном доказательстве мы используем тот факт, что число <math>s</math> взаимно просто с натуральным <math>k</math> тогда и только тогда, когда остаток деления <math>s</math> на <math>k</math> тоже взаимно прост с <math>k</math>. Данный факт довольно очевиден и используется в [https://e-maxx.ru/algo/euclid_algorithm Алгоритме Евклида].<br />
<br />
Теперь приступим непосредственно к доказательству. Число находящееся в <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> столбцов.<br />
<br />
Перед тем как продолжить доказательство, давайте рассмотрим небольшое утверждение. Пусть нам даны <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>, причем каждый остаток получается ровно из одного из членов прогрессии.<br />
<br />
Воспользуемся данным утверждением, подставив разность арифметической прогресии <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>, что и требовалось доказать.<br />
<br />
<br />
}}<br />
<br />
== Функции <tex>\sigma(n)</tex>, <tex>\tau(n)</tex> и <tex>\varphi(n)</tex>, их мультипликативность и значения ==<br />
<br />
Каноническое разложение числа <tex>\displaystyle n = \prod_{i=1}^{r}p_i^{s_i} </tex>, где <tex>r</tex> {{---}} количество простых делителей числа <tex>n</tex>, <tex>p_i</tex> {{---}} <tex>i</tex>-ый простой делитель, <tex>s_i</tex> {{---}} максимальная степень вхождения этого простого делителя.<br />
<br />
==== Функция <tex>\sigma(n)</tex> ====<br />
<br />
Функция <tex>\sigma : \mathbb{N} \to \mathbb{N} </tex> определяется как сумма делителей натурального числа <tex>n</tex>:<br />
<center><tex>\displaystyle\sigma(n) = \sum_{d | n}d </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\sigma(n)</tex> мультипликативна:<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\sigma(p) = p + 1</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\sigma(p^s) = \sum_{k=0}^{s}p^k = \frac{p^{s + 1} - 1}{p - 1} </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \sigma (n) = \prod_{i = 1}^{r}{\frac{p_{i}^{s_i+1}-1} {p_{i}-1}} </tex></center><br />
<br />
==== Функция <tex>\tau(n)</tex> ====<br />
<br />
Функция <tex>\tau: \mathbb{N} \to \mathbb{N} </tex> определяется как число положительных делителей натурального числа <tex>n</tex>: <br />
<center><tex>\displaystyle\tau(n) = \sum_{d | n}1 </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\tau(n)</tex> мультипликативна:<br />
<center><math>\tau(mn)=\tau(m)\tau(n)</math></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\tau(p) = 2</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\tau(p^s) = s + 1 </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \tau(n) = \prod_{i = 1}^{r}(s_i + 1) </tex></center><br />
<br />
==== Функция <tex>\varphi(n)</tex> ====<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\varphi(p) = p - 1</tex>. На некоторую степень <math>p</math> формулу можно обобщить:<br />
<center><tex>\displaystyle\varphi(p^s) = p^s - p^{s - 1} </tex></center><br />
Обосновывается следующим образом: Все не взаимно простые с <math>p^s</math> числа в диапазоне от 1 до <math>p^s</math>, очевидно, кратны <math>p</math>. Всего таких чисел <math>p^{s - 1}</math>.<br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i}(1 - \frac{1}{p_i}) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex></center><br />
<br />
== Малая теорема Ферма и теорема Эйлера ==<br />
<br />
{{Теорема<br />
|about= Теорема Эйлера<br />
<br />
|statement = Если <math>n</math> и <math>a</math> {{---}} взаимно простые целые числа, то <math>a^{\varphi(n)} \equiv 1 \ (mod \ n)</math><br />
<br />
|proof =<br />
Число <math>\overline{x}</math> называется вычетом по модулю <math>n</math>, если <math>\overline{x} \equiv x \ (mod \ n)</math>. Вычет <math>\overline{x}</math> называется обратимым вычетом, если существует вычет <math>\overline{y}</math>, такой что <math>\overline{x}\overline{y} \equiv 1 \ (mod \ n)</math>. Заметим, что вычет <math>\overline{x}</math> обратим тогда и только тогда, когда <math>\overline{x}</math> и <math>n</math> взаимно просты. Это обосновывается тем, что данное выражение можно представить в виде [https://e-maxx.ru/algo/diofant_2_equation линейного диофантово уравнения второго порядка] <math>\overline{x}\cdot\overline{y} + m \cdot n = 1</math>. Как видно из статьи, решение существует только при <math>(\overline{x}, n) = 1</math>. В таком случае, у числа <math>n</math> существует всего <math>\varphi(n)</math> обратимых вычетов. Пусть <math>\mathbb{Z}_{n}^{*}</math> {{---}} множество всех обратимых вычетов по модулю <math>n</math>.<br />
<br />
Достаточно доказать данную теорему только для вычетов, так как мы знаем, что если остаток числа <math>a</math> по модулю <math>n</math> взаимно прост с <math>n</math>, то и само число взаимно просто с <math>n</math>. Напомним, что данный факт был ранее доказан в доказательстве мультипликативности функции Эйлера.<br />
<br />
Рассмотрим вычеты по модулю <math>n</math>. Так как <math>n</math> и <math>a</math> взаимно просты, то вычет <math>\overline{a}</math> обратим. Пусть <math>\overline{b_1}, \overline{b_2}, \dots , \overline{b_{\varphi(n)}}</math> {{---}} все обратимые вычеты по модулю <math>n</math>. Тогда вычет <math>\overline{b} = \overline{b_1}\overline{b_2}\dots\overline{b_{\varphi(n)}}</math>, равный произведению всех обратимых вычетов, тоже обратим. Заметим, что отображение <math>\mathbb{Z}_{n}^{*} \to \mathbb{Z}_{n}^{*}</math>, заданное формулой <math>\overline{x} \mapsto \overline{a}\cdot\overline{x}</math> является биекцией. Действительно, мы просто умножаем каждый остаток на какую-то константу, от этого множество вычетов не изменится. В таком случае в выражении <math> \overline{a}^{\varphi(n)}\overline{b} = (\overline{a} \overline{b_1}) \dots (\overline{a} \overline{b_{\varphi(n)}}) </math>, в правой части стоит произведение всех обратимых вычетов, но взятое в другом порядке. Тогда <math>\overline{a}^{\varphi(n)}\overline{b} = \overline{b}</math>. Умножая обе части на вычет, обратный к <math>\overline{b}</math>, получим, что <math>\overline{a}^{\varphi(n)} \equiv 1 \ (mod \ n) </math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
Следствием теоремы Эйлера является малая теорема Ферма. У нее также есть доказательство без использования более общей теоремы Эйлера, однако его мы приводить не будем.<br />
<br />
<br />
{{Теорема<br />
|about = Малая теорема Ферма<br />
<br />
|statement = Если целое число <math>a</math> и простое число <math>p</math> {{---}} взаимно просты, то <math>a^{p - 1} \equiv 1 \ (mod \ p)</math><br />
<br />
|proof = Так как <math>p</math> {{---}} простое, то <math>\varphi(p) = p - 1</math>. Воспользуемся теоремой Эйлера, тогда <math>a^{\varphi(p)} = a^{p - 1} \equiv 1 \ (mod \ p)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
== Различные свойства функции Эйлера ==<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Если для каких-то натуральных чисел <math>a</math> и <math>b</math> верно, что <math>a\,|\,b</math>, тогда верно и <math>\varphi(a)\,|\, \varphi(b)</math><br />
<br />
|proof = <br />
Воспользуемся формулой для <tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i - 1}(p_i - 1) </tex>.<br />
<br />
:<math>a = p_1^{\alpha_1} \cdot\ldots\cdot p_{r_a}^{\alpha_{r_a}},</math><br />
:<math>b = p_1^{\beta_1} \cdot\ldots\cdot p_{r_b}^{\beta_{r_b}}</math><br />
<br />
При этом, так как <math>a\,|\,b</math>, то <math>r_a \leq r_b</math>, а также <math>\forall i \in [1\, ;\, r_a] \ \alpha_i \leq \beta_i</math><br />
<br />
<math></math><br />
<br />
Значит, <tex>\displaystyle\frac{\varphi(b)}{\varphi(a)}</tex><tex>\displaystyle = \frac{\displaystyle\prod_{i = 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1)}{\displaystyle\prod_{i = 1}^{r_a}p_i^{\alpha_i - 1}(p_i - 1)} = \displaystyle(\prod_{i = 1}^{r_a}p_i^{\beta_i - \alpha_i}) \cdot \displaystyle(\prod_{i = r_a + 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1))</tex>, а значит, <math>\varphi(a)\,|\, \varphi(b)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Для любого натурального числа <math>n</math> выполнено равенство <math>\displaystyle n = \sum_{d | n} \varphi(d)</math><br />
<br />
|proof = Данную теорему можно доказать разложив по формуле <math>\varphi(d)</math>, а можно более элегантно:<br />
<br />
Рассмотрим <math>n</math> дробей <math>\frac{1}{n}, \frac{2}{n}, \dots , \frac{n}{n}</math>. Каждую дробь представим в виде несократимой дроби <math>\frac{p}{q}</math>.<br />
Заметим, что множество значений <math>q</math> {{---}} это множество делителей числа <math>n</math>. Так как дробь <math>\frac{p}{q}</math> несократима, то <math>p</math> и <math>q</math> взаимно просты. Зная, что <math>p \leq q</math>, легко понять, что всего дробей со знаменателем <math>q</math> ровно <math>\varphi(q)</math>. Так как, все <math>n</math> дробей мы представили в несократимом виде, где знаменатель является делителем <math>n</math>, то <math>\displaystyle \sum_{d | n} \varphi(d) = n</math>, так как всего дробей <math>n</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
:<br />
<br />
{{Теорема<br />
|about = Обобщённая мультипликативность<br />
<br />
|statement = Пусть <math>n</math> и <math>m</math> {{---}} любые два натуральных числа, а <math>d = (n,\ m)</math>, тогда:<br />
: <math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n)\cdot\frac{d}{\varphi(d)}</math><br />
<br />
|proof = <br />
<br />
Пусть <math>(m,\,n)=d,</math> тогда <math>m = m'd, \; n = n'd,</math> причем в общем случае <math>(m',\,d) \neq 1</math> и <math>(n',\,d) \neq 1.</math> Поэтому можно записать:<br />
:<math>d = d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}},</math><br />
:<math>m' = d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r},</math><br />
:<math>n' = d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}.</math><br />
Здесь первые <math>k</math> делителей <math>d</math> являются также делителями <math>m',</math> а последние <math>K-k</math> делителей <math>d</math> являются делителями <math>n'.</math> Распишем:<br />
:<math>\varphi(mn)= \varphi(d^2 \cdot m'n')<br />
= \varphi((d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}})^2 \cdot d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r} \cdot d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}).</math><br />
В силу мультипликативности функции Эйлера, а также с учётом формулы<br />
:<math>\varphi(p^n) = p^n(1-\frac{1}{p}),</math><br />
где <math>p</math> — простое, получаем:<br />
:<math><br />
\begin{align}<br />
\varphi(mn)<br />
<br />
&= d_1^{\alpha_1+\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_k^{\alpha_k+\delta_k}\left(1-\frac{1}{d_k}\right) \cdot p_1^{\beta_1}\left(1-\frac{1}{p_1}\right) \cdot\ldots\cdot p_r^{\beta_r}\left(1-\frac{1}{p_r}\right) \cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\delta_{K}}\left(1-\frac{1}{d_{K}}\right)\times \\<br />
<br />
&\; \times \; d_{k+1}^{\gamma_{k+1}+\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\gamma_{K}+\delta_{K}}\left(1-\frac{1}{d_{K}}\right) \cdot q_1^{\varepsilon_1}\left(1-\frac{1}{q_1}\right) \cdot\ldots\cdot q_s^{\varepsilon_s}\left(1-\frac{1}{q_s}\right) \cdot d_1^{\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right)\times \\<br />
<br />
&\; \times \; \frac{1}{\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot \left(1-\frac{1}{d_K}\right)}<br />
\end{align}<br />
</math><br />
В первой строке записано <math>\varphi(m),</math> во второй — <math>\varphi(n),</math> а третью можно представить, как <math>\frac{d}{\varphi(d)}.</math> Поэтому:<br />
:<math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n) \cdot \frac{d}{\varphi(d)}</math><br />
<br />
}}<br />
<br />
== Применение теоремы Эйлера в других задачах ==<br />
<br />
==== Задача об ожерельях ====<br />
<br />
{{Задача<br />
|definition=<br />
Требуется посчитать количество ожерелий из <tex>n</tex> бусинок, каждая из которых может быть покрашена в один из <tex> k </tex> цветов. При сравнении двух ожерелий их можно поворачивать, но не переворачивать (т.е. разрешается сделать циклический сдвиг).}}<br />
<br />
В ходе решения задачи мы приходим к формуле <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{i = 1}^{n} k^{\mathrm{gcd}(i,n)}</tex><br />
<br />
Мы можем улучшить эту формулу, если рассмотрим выражение <math>\mathrm{gcd}(i,n)</math>. Пусть <math>\mathrm{gcd}(i,n) = q</math>, тогда числа <math>i</math> и <math>n</math> оба делятся на <math>q</math> и больше не имеют общих делителей. Тогда <math>\mathrm{gcd}(\frac{i}{q},\frac{n}{q}) = 1</math>. Таких натуральных <math>i \in [1 ; n]</math> и имеющих <math>\mathrm{gcd}(i,n) = q</math> ровно <tex>\varphi\left(\dfrac{n}{q}\right)</tex>.<br />
<br />
Пользуясь функцией Эйлера, мы можем привести формулу к более лаконичному виду <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{q|n}\varphi\left(\dfrac{n}{q}\right)k^q</tex>.<br />
<br />
== Алгоритм ==<br />
Основной идеей алгоритма является формула <tex> \displaystyle \varphi(n) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex>. Для решения задачи нам нужны только простые делители числа <math>n</math>. Их можно найти с помощью алгоритма факторизации. Написанный ниже алгоритм использует факторизацию числа, работающую за <math>O(\sqrt{n})</math>, однако есть более [https://e-maxx.ru/algo/factorization эффективные алгоритмы].<br />
<br />
Асимптотика вычисления <math> \displaystyle \varphi(n) = O(\sqrt{n})</math>. <br />
<br />
'''function''' phi (n):<br />
result = n <br />
i = 2<br />
<br />
'''while''' (i*i <= n):<br />
'''if''' n % i == 0:<br />
'''while''' n % i == 0:<br />
n /= i<br />
result -= result / i<br />
i++<br />
'''if''' (n > 1):<br />
result -= result/n<br />
'''return''' result<br />
<br />
== См. также ==<br />
* [[Задача об ожерельях]]<br />
<br />
== Ссылки ==<br />
* [https://ru.wikipedia.org/wiki/Функция_Эйлера Wikipedia {{---}} Функция Эйлера]<br />
* [https://e-maxx.ru/algo/euler_function Алгоритм нахождения функции Эйлера]<br />
* [https://wikichi.ru/wiki/Divisor_function Функция <math>\sigma</math>]</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=75813Обсуждение участника:MetaMockery2020-12-29T08:26:29Z<p>MetaMockery: /* Малая теорема Ферма и теорема Эйлера */</p>
<hr />
<div>== Функция Эйлера ==<br />
<br />
{{Определение<br />
|definition=<br />
''Функция Эйлера'' <tex>\varphi (n) </tex> определяется как количество натуральных чисел, не превосходящих <tex>n</tex> и взаимно простых с <tex>n</tex>.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Функция <tex>f : \mathbb{N} \to \mathbb{Z} </tex> называется ''мультипликативной'', если <tex>f(mn) = f(m)f(n)</tex> для любых взаимно простых <tex>m, n</tex>.<br />
}}<br />
<br />
{{Теорема<br />
|about = Мультипликативность функции Эйлера<br />
|statement = Для любых взаимно простых чисел <tex>m, n</tex> <br />
: <math>\varphi(mn)=\varphi(m)\varphi(n)</math><br />
|proof =<br />
Запишем <math>n \cdot m</math> натуральных чисел, не превосходящих <math>n \cdot m</math>, в виде прямоугольной таблицы с <math>n</math> столбцами и <math>m</math> строками, располагая первые <math>n</math> чисел в первой строке, вторые <math>n</math> чисел во второй и т.д. <br />
<br />
Поскольку <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>. <br />
<br />
В данном доказательстве мы используем тот факт, что число <math>s</math> взаимно просто с натуральным <math>k</math> тогда и только тогда, когда остаток деления <math>s</math> на <math>k</math> тоже взаимно прост с <math>k</math>. Данный факт довольно очевиден и используется в [https://e-maxx.ru/algo/euclid_algorithm Алгоритме Евклида].<br />
<br />
Теперь приступим непосредственно к доказательству. Число находящееся в <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> столбцов.<br />
<br />
Перед тем как продолжить доказательство, давайте рассмотрим небольшое утверждение. Пусть нам даны <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>, причем каждый остаток получается ровно из одного из членов прогрессии.<br />
<br />
Воспользуемся данным утверждением, подставив разность арифметической прогресии <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>, что и требовалось доказать.<br />
<br />
<br />
}}<br />
<br />
== Функции <tex>\sigma(n)</tex>, <tex>\tau(n)</tex> и <tex>\varphi(n)</tex>, их мультипликативность и значения ==<br />
<br />
Каноническое разложение числа <tex>\displaystyle n = \prod_{i=1}^{r}p_i^{s_i} </tex>, где <tex>r</tex> {{---}} количество простых делителей числа <tex>n</tex>, <tex>p_i</tex> {{---}} <tex>i</tex>-ый простой делитель, <tex>s_i</tex> {{---}} максимальная степень вхождения этого простого делителя.<br />
<br />
==== Функция <tex>\sigma(n)</tex> ====<br />
<br />
Функция <tex>\sigma : \mathbb{N} \to \mathbb{N} </tex> определяется как сумма делителей натурального числа <tex>n</tex>:<br />
<center><tex>\displaystyle\sigma(n) = \sum_{d | n}d </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\sigma(n)</tex> мультипликативна:<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\sigma(p) = p + 1</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\sigma(p^s) = \sum_{k=0}^{s}p^k = \frac{p^{s + 1} - 1}{p - 1} </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \sigma (n) = \prod_{i = 1}^{r}{\frac{p_{i}^{s_i+1}-1} {p_{i}-1}} </tex></center><br />
<br />
==== Функция <tex>\tau(n)</tex> ====<br />
<br />
Функция <tex>\tau: \mathbb{N} \to \mathbb{N} </tex> определяется как число положительных делителей натурального числа <tex>n</tex>: <br />
<center><tex>\displaystyle\tau(n) = \sum_{d | n}1 </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\tau(n)</tex> мультипликативна:<br />
<center><math>\tau(mn)=\tau(m)\tau(n)</math></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\tau(p) = 2</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\tau(p^s) = s + 1 </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \tau(n) = \prod_{i = 1}^{r}(s_i + 1) </tex></center><br />
<br />
==== Функция <tex>\varphi(n)</tex> ====<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\varphi(p) = p - 1</tex>. На некоторую степень <math>p</math> формулу можно обобщить:<br />
<center><tex>\displaystyle\varphi(p^s) = p^s - p^{s - 1} </tex></center><br />
Обосновывается следующим образом: Все не взаимно простые с <math>p^s</math> числа в диапазоне от 1 до <math>p^s</math>, очевидно, кратны <math>p</math>. Всего таких чисел <math>p^{s - 1}</math>.<br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i}(1 - \frac{1}{p_i}) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex></center><br />
<br />
== Малая теорема Ферма и теорема Эйлера ==<br />
<br />
{{Теорема<br />
|about= Теорема Эйлера<br />
<br />
|statement = Если <math>n</math> и <math>a</math> {{---}} взаимно простые целые числа, то <math>a^{\varphi(n)} \equiv 1 \ (mod \ n)</math><br />
<br />
|proof =<br />
Число <math>\overline{x}</math> называется вычетом по модулю <math>n</math>, если <math>\overline{x} \equiv x \ (mod \ n)</math>. Вычет <math>\overline{x}</math> называется обратимым вычетом, если существует вычет <math>\overline{y}</math>, такой что <math>\overline{x}\overline{y} \equiv 1 \ (mod \ n)</math>. Заметим, что вычет <math>\overline{x}</math> обратим тогда и только тогда, когда <math>\overline{x}</math> и <math>n</math> взаимно просты. Это обосновывается тем, что данное выражение можно представить в виде [https://e-maxx.ru/algo/diofant_2_equation линейного диофантово уравнения второго порядка] <math>\overline{x}\cdot\overline{y} + m \cdot n = 1</math>. Как видно из статьи, решение существует только при <math>(\overline{x}, n) = 1</math>. В таком случае, у числа <math>n</math> существует всего <math>\varphi(n)</math> обратимых вычетов. Пусть <math>\mathbb{Z}_{n}^{*}</math> {{---}} множество всех обратимых вычетов по модулю <math>n</math>.<br />
<br />
Достаточно доказать данную теорему только для вычетов, так как мы знаем, что если остаток числа <math>a</math> по модулю <math>n</math> взаимно прост с <math>n</math>, то и само число взаимно просто с <math>n</math>. Напомним, что данный факт был ранее доказан в доказательстве мультипликативности функции Эйлера.<br />
<br />
Рассмотрим вычеты по модулю <math>n</math>. Так как <math>n</math> и <math>a</math> взаимно просты, то вычет <math>\overline{a}</math> обратим. Пусть <math>\overline{b_1}, \overline{b_2}, \dots , \overline{b_{\varphi(n)}}</math> {{---}} все обратимые вычеты по модулю <math>n</math>. Тогда вычет <math>\overline{b} = \overline{b_1}\overline{b_2}\dots\overline{b_{\varphi(n)}}</math>, равный произведению всех обратимых вычетов, тоже обратим. Заметим, что отображение <math>\mathbb{Z}_{n}^{*} \to \mathbb{Z}_{n}^{*}</math>, заданное формулой <math>\overline{x} \mapsto \overline{a}\cdot\overline{x}</math> является биекцией. Действительно, мы просто умножаем каждый остаток на какую-то константу, от этого множество вычетов не изменится. В таком случае в выражении <math> \overline{a}^{\varphi(n)}\overline{b} = (\overline{a} \overline{b_1}) \dots (\overline{a} \overline{b_{\varphi(n)}}) </math>, в правой части стоит произведение всех обратимых вычетов, но взятое в другом порядке. Тогда <math>\overline{a}^{\varphi(n)}\overline{b} = \overline{b}</math>. Умножая обе части на вычет, обратный к <math>\overline{b}</math>, получим, что <math>\overline{a}^{\varphi(n)} \equiv 1 \ (mod \ n) </math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
Следствием теоремы Эйлера является малая теорема Ферма. У нее также есть доказательство без использования более общей теоремы Эйлера, однако его мы приводить не будем.<br />
<br />
<br />
{{Теорема<br />
|about = Малая теорема Ферма<br />
<br />
|statement = Если целое число <math>a</math> и простое число <math>p</math> {{---}} взаимно просты, то <math>a^{p - 1} \equiv 1 \ (mod \ p)</math><br />
<br />
|proof = Так как <math>p</math> {{---}} простое, то <math>\varphi(p) = p - 1</math>. Воспользуемся теоремой Эйлера, тогда <math>a^{\varphi(p)} = a^{p - 1} \equiv 1 \ (mod \ p)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
== Различные свойства функции Эйлера ==<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Если для каких-то натуральных чисел <math>a</math> и <math>b</math> верно, что <math>a\,|\,b</math>, тогда верно и <math>\varphi(a)\,|\, \varphi(b)</math><br />
<br />
|proof = <br />
Воспользуемся формулой для <tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i - 1}(p_i - 1) </tex>.<br />
<br />
:<math>a = p_1^{\alpha_1} \cdot\ldots\cdot p_{r_a}^{\alpha_{r_a}},</math><br />
:<math>b = p_1^{\beta_1} \cdot\ldots\cdot p_{r_b}^{\beta_{r_b}}</math><br />
<br />
При этом, так как <math>a\,|\,b</math>, то <math>r_a \leq r_b</math>, а также <math>\forall i \in [1\, ;\, r_a] \ \alpha_i \leq \beta_i</math><br />
<br />
<math></math><br />
<br />
Значит <tex>\displaystyle\frac{\varphi(b)}{\varphi(a)}</tex><tex>\displaystyle = \frac{\displaystyle\prod_{i = 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1)}{\displaystyle\prod_{i = 1}^{r_a}p_i^{\alpha_i - 1}(p_i - 1)} = \displaystyle(\prod_{i = 1}^{r_a}p_i^{\beta_i - \alpha_i}) \cdot \displaystyle(\prod_{i = r_a + 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1))</tex>, а значит <math>\varphi(a)\,|\, \varphi(b)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Для любого натурального числа <math>n</math> выполнено равенство <math>\displaystyle n = \sum_{d | n} \varphi(d)</math><br />
<br />
|proof = Данную теорему можно доказать разложив по формуле <math>\varphi(d)</math>, а можно более элегантно:<br />
<br />
Рассмотрим <math>n</math> дробей <math>\frac{1}{n}, \frac{2}{n}, \dots , \frac{n}{n}</math>. Каждую дробь представим в виде несократимой дроби <math>\frac{p}{q}</math>.<br />
Заметим, что множество значений <math>q</math> {{---}} это множество делителей числа <math>n</math>. Так как дробь <math>\frac{p}{q}</math> несократима, то <math>p</math> и <math>q</math> взаимно просты. Зная, что <math>p \leq q</math>, легко понять, что всего дробей со знаменателем <math>q</math> ровно <math>\varphi(q)</math>. Так как, все <math>n</math> дробей мы представили в несократимом виде, где знаменатель является делителем <math>n</math>, то <math>\displaystyle \sum_{d | n} \varphi(d) = n</math>, так как всего дробей <math>n</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
:<br />
<br />
{{Теорема<br />
|about = Обобщённая мультипликативность<br />
<br />
|statement = Пусть <math>n</math> и <math>m</math> {{---}} любые два натуральных числа, а <math>d = (n,\ m)</math>, тогда:<br />
: <math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n)\cdot\frac{d}{\varphi(d)}</math><br />
<br />
|proof = <br />
<br />
Пусть <math>(m,\,n)=d,</math> тогда <math>m = m'd, \; n = n'd,</math> причем в общем случае <math>(m',\,d) \neq 1</math> и <math>(n',\,d) \neq 1.</math> Поэтому можно записать:<br />
:<math>d = d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}},</math><br />
:<math>m' = d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r},</math><br />
:<math>n' = d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}.</math><br />
Здесь первые <math>k</math> делителей <math>d</math> являются также делителями <math>m',</math> а последние <math>K-k</math> делителей <math>d</math> являются делителями <math>n'.</math> Распишем:<br />
:<math>\varphi(mn)= \varphi(d^2 \cdot m'n')<br />
= \varphi((d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}})^2 \cdot d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r} \cdot d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}).</math><br />
В силу мультипликативности функции Эйлера, а также с учётом формулы<br />
:<math>\varphi(p^n) = p^n(1-\frac{1}{p}),</math><br />
где <math>p</math> — простое, получаем:<br />
:<math><br />
\begin{align}<br />
\varphi(mn)<br />
<br />
&= d_1^{\alpha_1+\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_k^{\alpha_k+\delta_k}\left(1-\frac{1}{d_k}\right) \cdot p_1^{\beta_1}\left(1-\frac{1}{p_1}\right) \cdot\ldots\cdot p_r^{\beta_r}\left(1-\frac{1}{p_r}\right) \cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\delta_{K}}\left(1-\frac{1}{d_{K}}\right)\times \\<br />
<br />
&\; \times \; d_{k+1}^{\gamma_{k+1}+\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\gamma_{K}+\delta_{K}}\left(1-\frac{1}{d_{K}}\right) \cdot q_1^{\varepsilon_1}\left(1-\frac{1}{q_1}\right) \cdot\ldots\cdot q_s^{\varepsilon_s}\left(1-\frac{1}{q_s}\right) \cdot d_1^{\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right)\times \\<br />
<br />
&\; \times \; \frac{1}{\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot \left(1-\frac{1}{d_K}\right)}<br />
\end{align}<br />
</math><br />
В первой строке записано <math>\varphi(m),</math> во второй — <math>\varphi(n),</math> а третью можно представить, как <math>\frac{d}{\varphi(d)}.</math> Поэтому:<br />
:<math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n) \cdot \frac{d}{\varphi(d)}</math><br />
<br />
}}<br />
<br />
== Применение теоремы Эйлера в других задачах ==<br />
<br />
==== Задача об ожерельях ====<br />
<br />
{{Задача<br />
|definition=<br />
Требуется посчитать количество ожерелий из <tex>n</tex> бусинок, каждая из которых может быть покрашена в один из <tex> k </tex> цветов. При сравнении двух ожерелий их можно поворачивать, но не переворачивать (т.е. разрешается сделать циклический сдвиг).}}<br />
<br />
В ходе решения задачи мы приходим к формуле <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{i = 1}^{n} k^{\mathrm{gcd}(i,n)}</tex><br />
<br />
Мы можем улучшить эту формулу, если рассмотрим выражение <math>\mathrm{gcd}(i,n)</math>. Пусть <math>\mathrm{gcd}(i,n) = q</math>, тогда числа <math>i</math> и <math>n</math> оба делятся на <math>q</math> и больше не имеют общих делителей. Тогда <math>\mathrm{gcd}(\frac{i}{q},\frac{n}{q}) = 1</math>. Таких натуральных <math>i \in [1 ; n]</math> и имеющих <math>\mathrm{gcd}(i,n) = q</math> ровно <tex>\varphi\left(\dfrac{n}{q}\right)</tex>.<br />
<br />
Пользуясь функцией Эйлера, мы можем привести формулу к более лаконичному виду <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{q|n}\varphi\left(\dfrac{n}{q}\right)k^q</tex>.<br />
<br />
== Алгоритм ==<br />
Основной идеей алгоритма является формула <tex> \displaystyle \varphi(n) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex>. Для решения задачи нам нужны только простые делители числа <math>n</math>. Их можно найти с помощью алгоритма факторизации. Написанный ниже алгоритм использует факторизацию числа, работающую за <math>O(\sqrt{n})</math>, однако есть более [https://e-maxx.ru/algo/factorization эффективные алгоритмы].<br />
<br />
Асимптотика вычисления <math> \displaystyle \varphi(n) = O(\sqrt{n})</math>. <br />
<br />
'''function''' phi (n):<br />
result = n <br />
i = 2<br />
<br />
'''while''' (i*i <= n):<br />
'''if''' n % i == 0:<br />
'''while''' n % i == 0:<br />
n /= i<br />
result -= result / i<br />
i++<br />
'''if''' (n > 1):<br />
result -= result/n<br />
'''return''' result<br />
<br />
== См. также ==<br />
* [[Задача об ожерельях]]<br />
<br />
== Ссылки ==<br />
* [https://ru.wikipedia.org/wiki/Функция_Эйлера Wikipedia {{---}} Функция Эйлера]<br />
* [https://e-maxx.ru/algo/euler_function Алгоритм нахождения функции Эйлера]<br />
* [https://wikichi.ru/wiki/Divisor_function Функция <math>\sigma</math>]</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=75812Обсуждение участника:MetaMockery2020-12-29T08:25:08Z<p>MetaMockery: /* Функции \sigma(n), \tau(n) и \varphi(n), их мультипликативность и значения */</p>
<hr />
<div>== Функция Эйлера ==<br />
<br />
{{Определение<br />
|definition=<br />
''Функция Эйлера'' <tex>\varphi (n) </tex> определяется как количество натуральных чисел, не превосходящих <tex>n</tex> и взаимно простых с <tex>n</tex>.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Функция <tex>f : \mathbb{N} \to \mathbb{Z} </tex> называется ''мультипликативной'', если <tex>f(mn) = f(m)f(n)</tex> для любых взаимно простых <tex>m, n</tex>.<br />
}}<br />
<br />
{{Теорема<br />
|about = Мультипликативность функции Эйлера<br />
|statement = Для любых взаимно простых чисел <tex>m, n</tex> <br />
: <math>\varphi(mn)=\varphi(m)\varphi(n)</math><br />
|proof =<br />
Запишем <math>n \cdot m</math> натуральных чисел, не превосходящих <math>n \cdot m</math>, в виде прямоугольной таблицы с <math>n</math> столбцами и <math>m</math> строками, располагая первые <math>n</math> чисел в первой строке, вторые <math>n</math> чисел во второй и т.д. <br />
<br />
Поскольку <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>. <br />
<br />
В данном доказательстве мы используем тот факт, что число <math>s</math> взаимно просто с натуральным <math>k</math> тогда и только тогда, когда остаток деления <math>s</math> на <math>k</math> тоже взаимно прост с <math>k</math>. Данный факт довольно очевиден и используется в [https://e-maxx.ru/algo/euclid_algorithm Алгоритме Евклида].<br />
<br />
Теперь приступим непосредственно к доказательству. Число находящееся в <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> столбцов.<br />
<br />
Перед тем как продолжить доказательство, давайте рассмотрим небольшое утверждение. Пусть нам даны <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>, причем каждый остаток получается ровно из одного из членов прогрессии.<br />
<br />
Воспользуемся данным утверждением, подставив разность арифметической прогресии <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>, что и требовалось доказать.<br />
<br />
<br />
}}<br />
<br />
== Функции <tex>\sigma(n)</tex>, <tex>\tau(n)</tex> и <tex>\varphi(n)</tex>, их мультипликативность и значения ==<br />
<br />
Каноническое разложение числа <tex>\displaystyle n = \prod_{i=1}^{r}p_i^{s_i} </tex>, где <tex>r</tex> {{---}} количество простых делителей числа <tex>n</tex>, <tex>p_i</tex> {{---}} <tex>i</tex>-ый простой делитель, <tex>s_i</tex> {{---}} максимальная степень вхождения этого простого делителя.<br />
<br />
==== Функция <tex>\sigma(n)</tex> ====<br />
<br />
Функция <tex>\sigma : \mathbb{N} \to \mathbb{N} </tex> определяется как сумма делителей натурального числа <tex>n</tex>:<br />
<center><tex>\displaystyle\sigma(n) = \sum_{d | n}d </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\sigma(n)</tex> мультипликативна:<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\sigma(p) = p + 1</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\sigma(p^s) = \sum_{k=0}^{s}p^k = \frac{p^{s + 1} - 1}{p - 1} </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \sigma (n) = \prod_{i = 1}^{r}{\frac{p_{i}^{s_i+1}-1} {p_{i}-1}} </tex></center><br />
<br />
==== Функция <tex>\tau(n)</tex> ====<br />
<br />
Функция <tex>\tau: \mathbb{N} \to \mathbb{N} </tex> определяется как число положительных делителей натурального числа <tex>n</tex>: <br />
<center><tex>\displaystyle\tau(n) = \sum_{d | n}1 </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\tau(n)</tex> мультипликативна:<br />
<center><math>\tau(mn)=\tau(m)\tau(n)</math></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\tau(p) = 2</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\tau(p^s) = s + 1 </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \tau(n) = \prod_{i = 1}^{r}(s_i + 1) </tex></center><br />
<br />
==== Функция <tex>\varphi(n)</tex> ====<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\varphi(p) = p - 1</tex>. На некоторую степень <math>p</math> формулу можно обобщить:<br />
<center><tex>\displaystyle\varphi(p^s) = p^s - p^{s - 1} </tex></center><br />
Обосновывается следующим образом: Все не взаимно простые с <math>p^s</math> числа в диапазоне от 1 до <math>p^s</math>, очевидно, кратны <math>p</math>. Всего таких чисел <math>p^{s - 1}</math>.<br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i}(1 - \frac{1}{p_i}) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex></center><br />
<br />
== Малая теорема Ферма и теорема Эйлера ==<br />
<br />
{{Теорема<br />
|about= Теорема Эйлера<br />
<br />
|statement = Если <math>n</math> и <math>a</math> {{---}} взаимно простые целые числа, то <math>a^{\varphi(n)} \equiv 1 \ (mod \ n)</math><br />
<br />
|proof =<br />
Число <math>\overline{x}</math> называется вычетом по модулю <math>n</math>, если <math>\overline{x} \equiv x \ (mod \ n)</math>. Вычет <math>\overline{x}</math> называется обратимым вычетом, если существует вычет <math>\overline{y}</math>, такой что <math>\overline{x}\overline{y} \equiv 1 \ (mod \ n)</math>. Заметим, что вычет <math>\overline{x}</math> обратим тогда и только тогда, когда <math>\overline{x}</math> и <math>n</math> взаимно просты. Это обосновывается тем, что данное выражение можно представить в виде [https://e-maxx.ru/algo/diofant_2_equation линейного диофантово уравнения второго порядка] <math>\overline{x}\cdot\overline{y} + m \cdot n = 1</math>. Как видно из статьи, решение существует только при <math>(\overline{x}, n) = 1</math>. В таком случае, у числа <math>n</math> существует всего <math>\varphi(n)</math> обратимых вычетов. Пусть <math>\mathbb{Z}_{n}^{*}</math> {{---}} множество всех обратимых вычетов по модулю <math>n</math>.<br />
<br />
Достаточно доказать данную теорему только для вычетов, так как мы знаем, что если остаток числа <math>a</math> по модулю <math>n</math> взаимно прост с <math>n</math>, то и само число взаимно просто с <math>n</math>.<br />
<br />
Рассмотрим вычеты по модулю <math>n</math>. Так как <math>n</math> и <math>a</math> взаимно просты, то вычет <math>\overline{a}</math> обратим. Пусть <math>\overline{b_1}, \overline{b_2}, \dots , \overline{b_{\varphi(n)}}</math> {{---}} все обратимые вычеты по модулю <math>n</math>. Тогда вычет <math>\overline{b} = \overline{b_1}\overline{b_2}\dots\overline{b_{\varphi(n)}}</math>, равный произведению всех обратимых вычетов, тоже обратим. Заметим, что отображение <math>\mathbb{Z}_{n}^{*} \to \mathbb{Z}_{n}^{*}</math>, заданное формулой <math>\overline{x} \mapsto \overline{a}\cdot\overline{x}</math> является биекцией. Действительно, мы просто умножаем каждый остаток на какую-то константу, от этого множество вычетов не изменится. В таком случае в выражении <math> \overline{a}^{\varphi(n)}\overline{b} = (\overline{a} \overline{b_1}) \dots (\overline{a} \overline{b_{\varphi(n)}}) </math>, в правой части стоит произведение всех обратимых вычетов, но взятое в другом порядке. Тогда <math>\overline{a}^{\varphi(n)}\overline{b} = \overline{b}</math>. Умножая обе части на вычет, обратный к <math>\overline{b}</math>, получим, что <math>\overline{a}^{\varphi(n)} \equiv 1 \ (mod \ n) </math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
Следствием теоремы Эйлера является малая теорема Ферма. У нее также есть доказательство без использования более общей теоремы Эйлера, однако его мы приводить не будем.<br />
<br />
<br />
{{Теорема<br />
|about = Малая теорема Ферма<br />
<br />
|statement = Если целое число <math>a</math> и простое число <math>p</math> {{---}} взаимно просты, то <math>a^{p - 1} \equiv 1 \ (mod \ p)</math><br />
<br />
|proof = Так как <math>p</math> {{---}} простое, то <math>\varphi(p) = p - 1</math>. Воспользуемся теоремой Эйлера, тогда <math>a^{\varphi(p)} = a^{p - 1} \equiv 1 \ (mod \ p)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
== Различные свойства функции Эйлера ==<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Если для каких-то натуральных чисел <math>a</math> и <math>b</math> верно, что <math>a\,|\,b</math>, тогда верно и <math>\varphi(a)\,|\, \varphi(b)</math><br />
<br />
|proof = <br />
Воспользуемся формулой для <tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i - 1}(p_i - 1) </tex>.<br />
<br />
:<math>a = p_1^{\alpha_1} \cdot\ldots\cdot p_{r_a}^{\alpha_{r_a}},</math><br />
:<math>b = p_1^{\beta_1} \cdot\ldots\cdot p_{r_b}^{\beta_{r_b}}</math><br />
<br />
При этом, так как <math>a\,|\,b</math>, то <math>r_a \leq r_b</math>, а также <math>\forall i \in [1\, ;\, r_a] \ \alpha_i \leq \beta_i</math><br />
<br />
<math></math><br />
<br />
Значит <tex>\displaystyle\frac{\varphi(b)}{\varphi(a)}</tex><tex>\displaystyle = \frac{\displaystyle\prod_{i = 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1)}{\displaystyle\prod_{i = 1}^{r_a}p_i^{\alpha_i - 1}(p_i - 1)} = \displaystyle(\prod_{i = 1}^{r_a}p_i^{\beta_i - \alpha_i}) \cdot \displaystyle(\prod_{i = r_a + 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1))</tex>, а значит <math>\varphi(a)\,|\, \varphi(b)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Для любого натурального числа <math>n</math> выполнено равенство <math>\displaystyle n = \sum_{d | n} \varphi(d)</math><br />
<br />
|proof = Данную теорему можно доказать разложив по формуле <math>\varphi(d)</math>, а можно более элегантно:<br />
<br />
Рассмотрим <math>n</math> дробей <math>\frac{1}{n}, \frac{2}{n}, \dots , \frac{n}{n}</math>. Каждую дробь представим в виде несократимой дроби <math>\frac{p}{q}</math>.<br />
Заметим, что множество значений <math>q</math> {{---}} это множество делителей числа <math>n</math>. Так как дробь <math>\frac{p}{q}</math> несократима, то <math>p</math> и <math>q</math> взаимно просты. Зная, что <math>p \leq q</math>, легко понять, что всего дробей со знаменателем <math>q</math> ровно <math>\varphi(q)</math>. Так как, все <math>n</math> дробей мы представили в несократимом виде, где знаменатель является делителем <math>n</math>, то <math>\displaystyle \sum_{d | n} \varphi(d) = n</math>, так как всего дробей <math>n</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
:<br />
<br />
{{Теорема<br />
|about = Обобщённая мультипликативность<br />
<br />
|statement = Пусть <math>n</math> и <math>m</math> {{---}} любые два натуральных числа, а <math>d = (n,\ m)</math>, тогда:<br />
: <math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n)\cdot\frac{d}{\varphi(d)}</math><br />
<br />
|proof = <br />
<br />
Пусть <math>(m,\,n)=d,</math> тогда <math>m = m'd, \; n = n'd,</math> причем в общем случае <math>(m',\,d) \neq 1</math> и <math>(n',\,d) \neq 1.</math> Поэтому можно записать:<br />
:<math>d = d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}},</math><br />
:<math>m' = d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r},</math><br />
:<math>n' = d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}.</math><br />
Здесь первые <math>k</math> делителей <math>d</math> являются также делителями <math>m',</math> а последние <math>K-k</math> делителей <math>d</math> являются делителями <math>n'.</math> Распишем:<br />
:<math>\varphi(mn)= \varphi(d^2 \cdot m'n')<br />
= \varphi((d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}})^2 \cdot d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r} \cdot d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}).</math><br />
В силу мультипликативности функции Эйлера, а также с учётом формулы<br />
:<math>\varphi(p^n) = p^n(1-\frac{1}{p}),</math><br />
где <math>p</math> — простое, получаем:<br />
:<math><br />
\begin{align}<br />
\varphi(mn)<br />
<br />
&= d_1^{\alpha_1+\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_k^{\alpha_k+\delta_k}\left(1-\frac{1}{d_k}\right) \cdot p_1^{\beta_1}\left(1-\frac{1}{p_1}\right) \cdot\ldots\cdot p_r^{\beta_r}\left(1-\frac{1}{p_r}\right) \cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\delta_{K}}\left(1-\frac{1}{d_{K}}\right)\times \\<br />
<br />
&\; \times \; d_{k+1}^{\gamma_{k+1}+\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\gamma_{K}+\delta_{K}}\left(1-\frac{1}{d_{K}}\right) \cdot q_1^{\varepsilon_1}\left(1-\frac{1}{q_1}\right) \cdot\ldots\cdot q_s^{\varepsilon_s}\left(1-\frac{1}{q_s}\right) \cdot d_1^{\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right)\times \\<br />
<br />
&\; \times \; \frac{1}{\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot \left(1-\frac{1}{d_K}\right)}<br />
\end{align}<br />
</math><br />
В первой строке записано <math>\varphi(m),</math> во второй — <math>\varphi(n),</math> а третью можно представить, как <math>\frac{d}{\varphi(d)}.</math> Поэтому:<br />
:<math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n) \cdot \frac{d}{\varphi(d)}</math><br />
<br />
}}<br />
<br />
== Применение теоремы Эйлера в других задачах ==<br />
<br />
==== Задача об ожерельях ====<br />
<br />
{{Задача<br />
|definition=<br />
Требуется посчитать количество ожерелий из <tex>n</tex> бусинок, каждая из которых может быть покрашена в один из <tex> k </tex> цветов. При сравнении двух ожерелий их можно поворачивать, но не переворачивать (т.е. разрешается сделать циклический сдвиг).}}<br />
<br />
В ходе решения задачи мы приходим к формуле <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{i = 1}^{n} k^{\mathrm{gcd}(i,n)}</tex><br />
<br />
Мы можем улучшить эту формулу, если рассмотрим выражение <math>\mathrm{gcd}(i,n)</math>. Пусть <math>\mathrm{gcd}(i,n) = q</math>, тогда числа <math>i</math> и <math>n</math> оба делятся на <math>q</math> и больше не имеют общих делителей. Тогда <math>\mathrm{gcd}(\frac{i}{q},\frac{n}{q}) = 1</math>. Таких натуральных <math>i \in [1 ; n]</math> и имеющих <math>\mathrm{gcd}(i,n) = q</math> ровно <tex>\varphi\left(\dfrac{n}{q}\right)</tex>.<br />
<br />
Пользуясь функцией Эйлера, мы можем привести формулу к более лаконичному виду <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{q|n}\varphi\left(\dfrac{n}{q}\right)k^q</tex>.<br />
<br />
== Алгоритм ==<br />
Основной идеей алгоритма является формула <tex> \displaystyle \varphi(n) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex>. Для решения задачи нам нужны только простые делители числа <math>n</math>. Их можно найти с помощью алгоритма факторизации. Написанный ниже алгоритм использует факторизацию числа, работающую за <math>O(\sqrt{n})</math>, однако есть более [https://e-maxx.ru/algo/factorization эффективные алгоритмы].<br />
<br />
Асимптотика вычисления <math> \displaystyle \varphi(n) = O(\sqrt{n})</math>. <br />
<br />
'''function''' phi (n):<br />
result = n <br />
i = 2<br />
<br />
'''while''' (i*i <= n):<br />
'''if''' n % i == 0:<br />
'''while''' n % i == 0:<br />
n /= i<br />
result -= result / i<br />
i++<br />
'''if''' (n > 1):<br />
result -= result/n<br />
'''return''' result<br />
<br />
== См. также ==<br />
* [[Задача об ожерельях]]<br />
<br />
== Ссылки ==<br />
* [https://ru.wikipedia.org/wiki/Функция_Эйлера Wikipedia {{---}} Функция Эйлера]<br />
* [https://e-maxx.ru/algo/euler_function Алгоритм нахождения функции Эйлера]<br />
* [https://wikichi.ru/wiki/Divisor_function Функция <math>\sigma</math>]</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=75811Обсуждение участника:MetaMockery2020-12-29T08:21:10Z<p>MetaMockery: /* Малая теорема Ферма и теорема Эйлера */</p>
<hr />
<div>== Функция Эйлера ==<br />
<br />
{{Определение<br />
|definition=<br />
''Функция Эйлера'' <tex>\varphi (n) </tex> определяется как количество натуральных чисел, не превосходящих <tex>n</tex> и взаимно простых с <tex>n</tex>.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Функция <tex>f : \mathbb{N} \to \mathbb{Z} </tex> называется ''мультипликативной'', если <tex>f(mn) = f(m)f(n)</tex> для любых взаимно простых <tex>m, n</tex>.<br />
}}<br />
<br />
{{Теорема<br />
|about = Мультипликативность функции Эйлера<br />
|statement = Для любых взаимно простых чисел <tex>m, n</tex> <br />
: <math>\varphi(mn)=\varphi(m)\varphi(n)</math><br />
|proof =<br />
Запишем <math>n \cdot m</math> натуральных чисел, не превосходящих <math>n \cdot m</math>, в виде прямоугольной таблицы с <math>n</math> столбцами и <math>m</math> строками, располагая первые <math>n</math> чисел в первой строке, вторые <math>n</math> чисел во второй и т.д. <br />
<br />
Поскольку <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>. <br />
<br />
В данном доказательстве мы используем тот факт, что число <math>s</math> взаимно просто с натуральным <math>k</math> тогда и только тогда, когда остаток деления <math>s</math> на <math>k</math> тоже взаимно прост с <math>k</math>. Данный факт довольно очевиден и используется в [https://e-maxx.ru/algo/euclid_algorithm Алгоритме Евклида].<br />
<br />
Теперь приступим непосредственно к доказательству. Число находящееся в <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> столбцов.<br />
<br />
Перед тем как продолжить доказательство, давайте рассмотрим небольшое утверждение. Пусть нам даны <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>, причем каждый остаток получается ровно из одного из членов прогрессии.<br />
<br />
Воспользуемся данным утверждением, подставив разность арифметической прогресии <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>, что и требовалось доказать.<br />
<br />
<br />
}}<br />
<br />
== Функции <tex>\sigma(n)</tex>, <tex>\tau(n)</tex> и <tex>\varphi(n)</tex>, их мультипликативность и значения ==<br />
<br />
Каноническое разложение числа <tex>\displaystyle n = \prod_{i=1}^{r}p_i^{s_i} </tex><br />
<br />
==== Функция <tex>\sigma(n)</tex> ====<br />
<br />
Функция <tex>\sigma : \mathbb{N} \to \mathbb{N} </tex> определяется как сумма делителей натурального числа <tex>n</tex>:<br />
<center><tex>\displaystyle\sigma(n) = \sum_{d | n}d </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\sigma(n)</tex> мультипликативна:<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\sigma(p) = p + 1</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\sigma(p^s) = \sum_{k=0}^{s}p^k = \frac{p^{s + 1} - 1}{p - 1} </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \sigma (n) = \prod_{i = 1}^{r}{\frac{p_{i}^{s_i+1}-1} {p_{i}-1}} </tex></center><br />
<br />
==== Функция <tex>\tau(n)</tex> ====<br />
<br />
Функция <tex>\tau: \mathbb{N} \to \mathbb{N} </tex> определяется как число положительных делителей натурального числа <tex>n</tex>: <br />
<center><tex>\displaystyle\tau(n) = \sum_{d | n}1 </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\tau(n)</tex> мультипликативна:<br />
<center><math>\tau(mn)=\tau(m)\tau(n)</math></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\tau(p) = 2</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\tau(p^s) = s + 1 </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \tau(n) = \prod_{i = 1}^{r}(s_i + 1) </tex></center><br />
<br />
==== Функция <tex>\varphi(n)</tex> ====<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\varphi(p) = p - 1</tex>. На некоторую степень <math>p</math> формулу можно обобщить:<br />
<center><tex>\displaystyle\varphi(p^s) = p^s - p^{s - 1} </tex></center><br />
Обосновывается следующим образом: Все не взаимно простые с <math>p^s</math> числа в диапазоне от 1 до <math>p^s</math>, очевидно, кратны <math>p</math>. Всего таких чисел <math>p^{s - 1}</math>.<br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i}(1 - \frac{1}{p_i}) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex></center><br />
<br />
== Малая теорема Ферма и теорема Эйлера ==<br />
<br />
{{Теорема<br />
|about= Теорема Эйлера<br />
<br />
|statement = Если <math>n</math> и <math>a</math> {{---}} взаимно простые целые числа, то <math>a^{\varphi(n)} \equiv 1 \ (mod \ n)</math><br />
<br />
|proof =<br />
Число <math>\overline{x}</math> называется вычетом по модулю <math>n</math>, если <math>\overline{x} \equiv x \ (mod \ n)</math>. Вычет <math>\overline{x}</math> называется обратимым вычетом, если существует вычет <math>\overline{y}</math>, такой что <math>\overline{x}\overline{y} \equiv 1 \ (mod \ n)</math>. Заметим, что вычет <math>\overline{x}</math> обратим тогда и только тогда, когда <math>\overline{x}</math> и <math>n</math> взаимно просты. Это обосновывается тем, что данное выражение можно представить в виде [https://e-maxx.ru/algo/diofant_2_equation линейного диофантово уравнения второго порядка] <math>\overline{x}\cdot\overline{y} + m \cdot n = 1</math>. Как видно из статьи, решение существует только при <math>(\overline{x}, n) = 1</math>. В таком случае, у числа <math>n</math> существует всего <math>\varphi(n)</math> обратимых вычетов. Пусть <math>\mathbb{Z}_{n}^{*}</math> {{---}} множество всех обратимых вычетов по модулю <math>n</math>.<br />
<br />
Достаточно доказать данную теорему только для вычетов, так как мы знаем, что если остаток числа <math>a</math> по модулю <math>n</math> взаимно прост с <math>n</math>, то и само число взаимно просто с <math>n</math>.<br />
<br />
Рассмотрим вычеты по модулю <math>n</math>. Так как <math>n</math> и <math>a</math> взаимно просты, то вычет <math>\overline{a}</math> обратим. Пусть <math>\overline{b_1}, \overline{b_2}, \dots , \overline{b_{\varphi(n)}}</math> {{---}} все обратимые вычеты по модулю <math>n</math>. Тогда вычет <math>\overline{b} = \overline{b_1}\overline{b_2}\dots\overline{b_{\varphi(n)}}</math>, равный произведению всех обратимых вычетов, тоже обратим. Заметим, что отображение <math>\mathbb{Z}_{n}^{*} \to \mathbb{Z}_{n}^{*}</math>, заданное формулой <math>\overline{x} \mapsto \overline{a}\cdot\overline{x}</math> является биекцией. Действительно, мы просто умножаем каждый остаток на какую-то константу, от этого множество вычетов не изменится. В таком случае в выражении <math> \overline{a}^{\varphi(n)}\overline{b} = (\overline{a} \overline{b_1}) \dots (\overline{a} \overline{b_{\varphi(n)}}) </math>, в правой части стоит произведение всех обратимых вычетов, но взятое в другом порядке. Тогда <math>\overline{a}^{\varphi(n)}\overline{b} = \overline{b}</math>. Умножая обе части на вычет, обратный к <math>\overline{b}</math>, получим, что <math>\overline{a}^{\varphi(n)} \equiv 1 \ (mod \ n) </math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
Следствием теоремы Эйлера является малая теорема Ферма. У нее также есть доказательство без использования более общей теоремы Эйлера, однако его мы приводить не будем.<br />
<br />
<br />
{{Теорема<br />
|about = Малая теорема Ферма<br />
<br />
|statement = Если целое число <math>a</math> и простое число <math>p</math> {{---}} взаимно просты, то <math>a^{p - 1} \equiv 1 \ (mod \ p)</math><br />
<br />
|proof = Так как <math>p</math> {{---}} простое, то <math>\varphi(p) = p - 1</math>. Воспользуемся теоремой Эйлера, тогда <math>a^{\varphi(p)} = a^{p - 1} \equiv 1 \ (mod \ p)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
== Различные свойства функции Эйлера ==<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Если для каких-то натуральных чисел <math>a</math> и <math>b</math> верно, что <math>a\,|\,b</math>, тогда верно и <math>\varphi(a)\,|\, \varphi(b)</math><br />
<br />
|proof = <br />
Воспользуемся формулой для <tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i - 1}(p_i - 1) </tex>.<br />
<br />
:<math>a = p_1^{\alpha_1} \cdot\ldots\cdot p_{r_a}^{\alpha_{r_a}},</math><br />
:<math>b = p_1^{\beta_1} \cdot\ldots\cdot p_{r_b}^{\beta_{r_b}}</math><br />
<br />
При этом, так как <math>a\,|\,b</math>, то <math>r_a \leq r_b</math>, а также <math>\forall i \in [1\, ;\, r_a] \ \alpha_i \leq \beta_i</math><br />
<br />
<math></math><br />
<br />
Значит <tex>\displaystyle\frac{\varphi(b)}{\varphi(a)}</tex><tex>\displaystyle = \frac{\displaystyle\prod_{i = 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1)}{\displaystyle\prod_{i = 1}^{r_a}p_i^{\alpha_i - 1}(p_i - 1)} = \displaystyle(\prod_{i = 1}^{r_a}p_i^{\beta_i - \alpha_i}) \cdot \displaystyle(\prod_{i = r_a + 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1))</tex>, а значит <math>\varphi(a)\,|\, \varphi(b)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Для любого натурального числа <math>n</math> выполнено равенство <math>\displaystyle n = \sum_{d | n} \varphi(d)</math><br />
<br />
|proof = Данную теорему можно доказать разложив по формуле <math>\varphi(d)</math>, а можно более элегантно:<br />
<br />
Рассмотрим <math>n</math> дробей <math>\frac{1}{n}, \frac{2}{n}, \dots , \frac{n}{n}</math>. Каждую дробь представим в виде несократимой дроби <math>\frac{p}{q}</math>.<br />
Заметим, что множество значений <math>q</math> {{---}} это множество делителей числа <math>n</math>. Так как дробь <math>\frac{p}{q}</math> несократима, то <math>p</math> и <math>q</math> взаимно просты. Зная, что <math>p \leq q</math>, легко понять, что всего дробей со знаменателем <math>q</math> ровно <math>\varphi(q)</math>. Так как, все <math>n</math> дробей мы представили в несократимом виде, где знаменатель является делителем <math>n</math>, то <math>\displaystyle \sum_{d | n} \varphi(d) = n</math>, так как всего дробей <math>n</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
:<br />
<br />
{{Теорема<br />
|about = Обобщённая мультипликативность<br />
<br />
|statement = Пусть <math>n</math> и <math>m</math> {{---}} любые два натуральных числа, а <math>d = (n,\ m)</math>, тогда:<br />
: <math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n)\cdot\frac{d}{\varphi(d)}</math><br />
<br />
|proof = <br />
<br />
Пусть <math>(m,\,n)=d,</math> тогда <math>m = m'd, \; n = n'd,</math> причем в общем случае <math>(m',\,d) \neq 1</math> и <math>(n',\,d) \neq 1.</math> Поэтому можно записать:<br />
:<math>d = d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}},</math><br />
:<math>m' = d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r},</math><br />
:<math>n' = d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}.</math><br />
Здесь первые <math>k</math> делителей <math>d</math> являются также делителями <math>m',</math> а последние <math>K-k</math> делителей <math>d</math> являются делителями <math>n'.</math> Распишем:<br />
:<math>\varphi(mn)= \varphi(d^2 \cdot m'n')<br />
= \varphi((d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}})^2 \cdot d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r} \cdot d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}).</math><br />
В силу мультипликативности функции Эйлера, а также с учётом формулы<br />
:<math>\varphi(p^n) = p^n(1-\frac{1}{p}),</math><br />
где <math>p</math> — простое, получаем:<br />
:<math><br />
\begin{align}<br />
\varphi(mn)<br />
<br />
&= d_1^{\alpha_1+\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_k^{\alpha_k+\delta_k}\left(1-\frac{1}{d_k}\right) \cdot p_1^{\beta_1}\left(1-\frac{1}{p_1}\right) \cdot\ldots\cdot p_r^{\beta_r}\left(1-\frac{1}{p_r}\right) \cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\delta_{K}}\left(1-\frac{1}{d_{K}}\right)\times \\<br />
<br />
&\; \times \; d_{k+1}^{\gamma_{k+1}+\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\gamma_{K}+\delta_{K}}\left(1-\frac{1}{d_{K}}\right) \cdot q_1^{\varepsilon_1}\left(1-\frac{1}{q_1}\right) \cdot\ldots\cdot q_s^{\varepsilon_s}\left(1-\frac{1}{q_s}\right) \cdot d_1^{\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right)\times \\<br />
<br />
&\; \times \; \frac{1}{\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot \left(1-\frac{1}{d_K}\right)}<br />
\end{align}<br />
</math><br />
В первой строке записано <math>\varphi(m),</math> во второй — <math>\varphi(n),</math> а третью можно представить, как <math>\frac{d}{\varphi(d)}.</math> Поэтому:<br />
:<math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n) \cdot \frac{d}{\varphi(d)}</math><br />
<br />
}}<br />
<br />
== Применение теоремы Эйлера в других задачах ==<br />
<br />
==== Задача об ожерельях ====<br />
<br />
{{Задача<br />
|definition=<br />
Требуется посчитать количество ожерелий из <tex>n</tex> бусинок, каждая из которых может быть покрашена в один из <tex> k </tex> цветов. При сравнении двух ожерелий их можно поворачивать, но не переворачивать (т.е. разрешается сделать циклический сдвиг).}}<br />
<br />
В ходе решения задачи мы приходим к формуле <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{i = 1}^{n} k^{\mathrm{gcd}(i,n)}</tex><br />
<br />
Мы можем улучшить эту формулу, если рассмотрим выражение <math>\mathrm{gcd}(i,n)</math>. Пусть <math>\mathrm{gcd}(i,n) = q</math>, тогда числа <math>i</math> и <math>n</math> оба делятся на <math>q</math> и больше не имеют общих делителей. Тогда <math>\mathrm{gcd}(\frac{i}{q},\frac{n}{q}) = 1</math>. Таких натуральных <math>i \in [1 ; n]</math> и имеющих <math>\mathrm{gcd}(i,n) = q</math> ровно <tex>\varphi\left(\dfrac{n}{q}\right)</tex>.<br />
<br />
Пользуясь функцией Эйлера, мы можем привести формулу к более лаконичному виду <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{q|n}\varphi\left(\dfrac{n}{q}\right)k^q</tex>.<br />
<br />
== Алгоритм ==<br />
Основной идеей алгоритма является формула <tex> \displaystyle \varphi(n) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex>. Для решения задачи нам нужны только простые делители числа <math>n</math>. Их можно найти с помощью алгоритма факторизации. Написанный ниже алгоритм использует факторизацию числа, работающую за <math>O(\sqrt{n})</math>, однако есть более [https://e-maxx.ru/algo/factorization эффективные алгоритмы].<br />
<br />
Асимптотика вычисления <math> \displaystyle \varphi(n) = O(\sqrt{n})</math>. <br />
<br />
'''function''' phi (n):<br />
result = n <br />
i = 2<br />
<br />
'''while''' (i*i <= n):<br />
'''if''' n % i == 0:<br />
'''while''' n % i == 0:<br />
n /= i<br />
result -= result / i<br />
i++<br />
'''if''' (n > 1):<br />
result -= result/n<br />
'''return''' result<br />
<br />
== См. также ==<br />
* [[Задача об ожерельях]]<br />
<br />
== Ссылки ==<br />
* [https://ru.wikipedia.org/wiki/Функция_Эйлера Wikipedia {{---}} Функция Эйлера]<br />
* [https://e-maxx.ru/algo/euler_function Алгоритм нахождения функции Эйлера]<br />
* [https://wikichi.ru/wiki/Divisor_function Функция <math>\sigma</math>]</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=75808Обсуждение участника:MetaMockery2020-12-29T08:12:59Z<p>MetaMockery: /* Различные свойства функции Эйлера */</p>
<hr />
<div>== Функция Эйлера ==<br />
<br />
{{Определение<br />
|definition=<br />
''Функция Эйлера'' <tex>\varphi (n) </tex> определяется как количество натуральных чисел, не превосходящих <tex>n</tex> и взаимно простых с <tex>n</tex>.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Функция <tex>f : \mathbb{N} \to \mathbb{Z} </tex> называется ''мультипликативной'', если <tex>f(mn) = f(m)f(n)</tex> для любых взаимно простых <tex>m, n</tex>.<br />
}}<br />
<br />
{{Теорема<br />
|about = Мультипликативность функции Эйлера<br />
|statement = Для любых взаимно простых чисел <tex>m, n</tex> <br />
: <math>\varphi(mn)=\varphi(m)\varphi(n)</math><br />
|proof =<br />
Запишем <math>n \cdot m</math> натуральных чисел, не превосходящих <math>n \cdot m</math>, в виде прямоугольной таблицы с <math>n</math> столбцами и <math>m</math> строками, располагая первые <math>n</math> чисел в первой строке, вторые <math>n</math> чисел во второй и т.д. <br />
<br />
Поскольку <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>. <br />
<br />
В данном доказательстве мы используем тот факт, что число <math>s</math> взаимно просто с натуральным <math>k</math> тогда и только тогда, когда остаток деления <math>s</math> на <math>k</math> тоже взаимно прост с <math>k</math>. Данный факт довольно очевиден и используется в [https://e-maxx.ru/algo/euclid_algorithm Алгоритме Евклида].<br />
<br />
Теперь приступим непосредственно к доказательству. Число находящееся в <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> столбцов.<br />
<br />
Перед тем как продолжить доказательство, давайте рассмотрим небольшое утверждение. Пусть нам даны <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>, причем каждый остаток получается ровно из одного из членов прогрессии.<br />
<br />
Воспользуемся данным утверждением, подставив разность арифметической прогресии <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>, что и требовалось доказать.<br />
<br />
<br />
}}<br />
<br />
== Функции <tex>\sigma(n)</tex>, <tex>\tau(n)</tex> и <tex>\varphi(n)</tex>, их мультипликативность и значения ==<br />
<br />
Каноническое разложение числа <tex>\displaystyle n = \prod_{i=1}^{r}p_i^{s_i} </tex><br />
<br />
==== Функция <tex>\sigma(n)</tex> ====<br />
<br />
Функция <tex>\sigma : \mathbb{N} \to \mathbb{N} </tex> определяется как сумма делителей натурального числа <tex>n</tex>:<br />
<center><tex>\displaystyle\sigma(n) = \sum_{d | n}d </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\sigma(n)</tex> мультипликативна:<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\sigma(p) = p + 1</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\sigma(p^s) = \sum_{k=0}^{s}p^k = \frac{p^{s + 1} - 1}{p - 1} </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \sigma (n) = \prod_{i = 1}^{r}{\frac{p_{i}^{s_i+1}-1} {p_{i}-1}} </tex></center><br />
<br />
==== Функция <tex>\tau(n)</tex> ====<br />
<br />
Функция <tex>\tau: \mathbb{N} \to \mathbb{N} </tex> определяется как число положительных делителей натурального числа <tex>n</tex>: <br />
<center><tex>\displaystyle\tau(n) = \sum_{d | n}1 </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\tau(n)</tex> мультипликативна:<br />
<center><math>\tau(mn)=\tau(m)\tau(n)</math></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\tau(p) = 2</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\tau(p^s) = s + 1 </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \tau(n) = \prod_{i = 1}^{r}(s_i + 1) </tex></center><br />
<br />
==== Функция <tex>\varphi(n)</tex> ====<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\varphi(p) = p - 1</tex>. На некоторую степень <math>p</math> формулу можно обобщить:<br />
<center><tex>\displaystyle\varphi(p^s) = p^s - p^{s - 1} </tex></center><br />
Обосновывается следующим образом: Все не взаимно простые с <math>p^s</math> числа в диапазоне от 1 до <math>p^s</math>, очевидно, кратны <math>p</math>. Всего таких чисел <math>p^{s - 1}</math>.<br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i}(1 - \frac{1}{p_i}) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex></center><br />
<br />
== Малая теорема Ферма и теорема Эйлера ==<br />
<br />
{{Теорема<br />
|about= Теорема Эйлера<br />
<br />
|statement = Если <math>n</math> и <math>a</math> {{---}} взаимно простые целые числа, то <math>a^{\varphi(n)} \equiv 1 \ (mod \ n)</math><br />
<br />
|proof =<br />
Число <math>\overline{x}</math> называется вычетом по модулю <math>n</math>, если <math>\overline{x} \equiv x \ (mod \ n)</math>. Вычет <math>\overline{x}</math> называется обратимым вычетом, если существует вычет <math>\overline{y}</math>, такой что <math>\overline{x}\overline{y} \equiv 1 \ (mod \ n)</math>. Заметим, что вычет <math>\overline{x}</math> обратим тогда и только тогда, когда <math>\overline{x}</math> и <math>n</math> взаимно просты. Это обосновывается тем, что данное выражение можно представить в виде [https://e-maxx.ru/algo/diofant_2_equation линейного диофантово уравнения второго порядка] <math>\overline{x}\cdot\overline{y} + m \cdot n = 1</math>. Как видно из статьи, решение существует только при <math>(\overline{x}, n) = 1</math>. В таком случае, у числа <math>n</math> существует всего <math>\varphi(n)</math> обратимых вычетов. Пусть <math>\mathbb{Z}_{n}^{*}</math> {{---}} множество всех обратимых вычетов по модулю <math>n</math>.<br />
<br />
Когда мы рассматриваем числа по модулю, то мы фактически переходим в кольцо вычетов <math>\mathbb{Z}_{n}</math>, в котором не существует самих по себе чисел, а есть только вычеты (считай остатки этих чисел по модулю).<br />
<br />
Рассмотрим вычеты по модулю <math>n</math>. Так как <math>n</math> и <math>a</math> взаимно просты, то вычет <math>\overline{a}</math> обратим. Пусть <math>\overline{b_1}, \overline{b_2}, \dots , \overline{b_{\varphi(n)}}</math> {{---}} все обратимые вычеты по модулю <math>n</math>. Тогда вычет <math>\overline{b} = \overline{b_1}\overline{b_2}\dots\overline{b_{\varphi(n)}}</math>, равный произведению всех обратимых вычетов, тоже обратим. Заметим, что отображение <math>\mathbb{Z}_{n}^{*} \to \mathbb{Z}_{n}^{*}</math>, заданное формулой <math>\overline{x} \mapsto \overline{a}\cdot\overline{x}</math> является биекцией. Действительно, мы просто умножаем каждый остаток на какую-то константу, от этого множество вычетов не изменится. В таком случае в выражении <math> \overline{a}^{\varphi(n)}\overline{b} = (\overline{a} \overline{b_1}) \dots (\overline{a} \overline{b_{\varphi(n)}}) </math>, в правой части стоит произведение всех обратимых вычетов, но взятое в другом порядке. Тогда <math>\overline{a}^{\varphi(n)}\overline{b} = \overline{b}</math>. Умножая обе части на вычет, обратный к <math>\overline{b}</math>, получим, что <math>\overline{a}^{\varphi(n)} \equiv 1 \ (mod \ n) </math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
Следствием теоремы Эйлера является малая теорема Ферма. У нее также есть доказательство без использования более общей теоремы Эйлера, однако его мы приводить не будем.<br />
<br />
<br />
{{Теорема<br />
|about = Малая теорема Ферма<br />
<br />
|statement = Если целое число <math>a</math> и простое число <math>p</math> {{---}} взаимно просты, то <math>a^{p - 1} \equiv 1 \ (mod \ p)</math><br />
<br />
|proof = Так как <math>p</math> {{---}} простое, то <math>\varphi(p) = p - 1</math>. Воспользуемся теоремой Эйлера, тогда <math>a^{\varphi(p)} = a^{p - 1} \equiv 1 \ (mod \ p)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
== Различные свойства функции Эйлера ==<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Если для каких-то натуральных чисел <math>a</math> и <math>b</math> верно, что <math>a\,|\,b</math>, тогда верно и <math>\varphi(a)\,|\, \varphi(b)</math><br />
<br />
|proof = <br />
Воспользуемся формулой для <tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i - 1}(p_i - 1) </tex>.<br />
<br />
:<math>a = p_1^{\alpha_1} \cdot\ldots\cdot p_{r_a}^{\alpha_{r_a}},</math><br />
:<math>b = p_1^{\beta_1} \cdot\ldots\cdot p_{r_b}^{\beta_{r_b}}</math><br />
<br />
При этом, так как <math>a\,|\,b</math>, то <math>r_a \leq r_b</math>, а также <math>\forall i \in [1\, ;\, r_a] \ \alpha_i \leq \beta_i</math><br />
<br />
<math></math><br />
<br />
Значит <tex>\displaystyle\frac{\varphi(b)}{\varphi(a)}</tex><tex>\displaystyle = \frac{\displaystyle\prod_{i = 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1)}{\displaystyle\prod_{i = 1}^{r_a}p_i^{\alpha_i - 1}(p_i - 1)} = \displaystyle(\prod_{i = 1}^{r_a}p_i^{\beta_i - \alpha_i}) \cdot \displaystyle(\prod_{i = r_a + 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1))</tex>, а значит <math>\varphi(a)\,|\, \varphi(b)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Для любого натурального числа <math>n</math> выполнено равенство <math>\displaystyle n = \sum_{d | n} \varphi(d)</math><br />
<br />
|proof = Данную теорему можно доказать разложив по формуле <math>\varphi(d)</math>, а можно более элегантно:<br />
<br />
Рассмотрим <math>n</math> дробей <math>\frac{1}{n}, \frac{2}{n}, \dots , \frac{n}{n}</math>. Каждую дробь представим в виде несократимой дроби <math>\frac{p}{q}</math>.<br />
Заметим, что множество значений <math>q</math> {{---}} это множество делителей числа <math>n</math>. Так как дробь <math>\frac{p}{q}</math> несократима, то <math>p</math> и <math>q</math> взаимно просты. Зная, что <math>p \leq q</math>, легко понять, что всего дробей со знаменателем <math>q</math> ровно <math>\varphi(q)</math>. Так как, все <math>n</math> дробей мы представили в несократимом виде, где знаменатель является делителем <math>n</math>, то <math>\displaystyle \sum_{d | n} \varphi(d) = n</math>, так как всего дробей <math>n</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
:<br />
<br />
{{Теорема<br />
|about = Обобщённая мультипликативность<br />
<br />
|statement = Пусть <math>n</math> и <math>m</math> {{---}} любые два натуральных числа, а <math>d = (n,\ m)</math>, тогда:<br />
: <math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n)\cdot\frac{d}{\varphi(d)}</math><br />
<br />
|proof = <br />
<br />
Пусть <math>(m,\,n)=d,</math> тогда <math>m = m'd, \; n = n'd,</math> причем в общем случае <math>(m',\,d) \neq 1</math> и <math>(n',\,d) \neq 1.</math> Поэтому можно записать:<br />
:<math>d = d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}},</math><br />
:<math>m' = d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r},</math><br />
:<math>n' = d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}.</math><br />
Здесь первые <math>k</math> делителей <math>d</math> являются также делителями <math>m',</math> а последние <math>K-k</math> делителей <math>d</math> являются делителями <math>n'.</math> Распишем:<br />
:<math>\varphi(mn)= \varphi(d^2 \cdot m'n')<br />
= \varphi((d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}})^2 \cdot d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r} \cdot d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}).</math><br />
В силу мультипликативности функции Эйлера, а также с учётом формулы<br />
:<math>\varphi(p^n) = p^n(1-\frac{1}{p}),</math><br />
где <math>p</math> — простое, получаем:<br />
:<math><br />
\begin{align}<br />
\varphi(mn)<br />
<br />
&= d_1^{\alpha_1+\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_k^{\alpha_k+\delta_k}\left(1-\frac{1}{d_k}\right) \cdot p_1^{\beta_1}\left(1-\frac{1}{p_1}\right) \cdot\ldots\cdot p_r^{\beta_r}\left(1-\frac{1}{p_r}\right) \cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\delta_{K}}\left(1-\frac{1}{d_{K}}\right)\times \\<br />
<br />
&\; \times \; d_{k+1}^{\gamma_{k+1}+\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\gamma_{K}+\delta_{K}}\left(1-\frac{1}{d_{K}}\right) \cdot q_1^{\varepsilon_1}\left(1-\frac{1}{q_1}\right) \cdot\ldots\cdot q_s^{\varepsilon_s}\left(1-\frac{1}{q_s}\right) \cdot d_1^{\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right)\times \\<br />
<br />
&\; \times \; \frac{1}{\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot \left(1-\frac{1}{d_K}\right)}<br />
\end{align}<br />
</math><br />
В первой строке записано <math>\varphi(m),</math> во второй — <math>\varphi(n),</math> а третью можно представить, как <math>\frac{d}{\varphi(d)}.</math> Поэтому:<br />
:<math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n) \cdot \frac{d}{\varphi(d)}</math><br />
<br />
}}<br />
<br />
== Применение теоремы Эйлера в других задачах ==<br />
<br />
==== Задача об ожерельях ====<br />
<br />
{{Задача<br />
|definition=<br />
Требуется посчитать количество ожерелий из <tex>n</tex> бусинок, каждая из которых может быть покрашена в один из <tex> k </tex> цветов. При сравнении двух ожерелий их можно поворачивать, но не переворачивать (т.е. разрешается сделать циклический сдвиг).}}<br />
<br />
В ходе решения задачи мы приходим к формуле <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{i = 1}^{n} k^{\mathrm{gcd}(i,n)}</tex><br />
<br />
Мы можем улучшить эту формулу, если рассмотрим выражение <math>\mathrm{gcd}(i,n)</math>. Пусть <math>\mathrm{gcd}(i,n) = q</math>, тогда числа <math>i</math> и <math>n</math> оба делятся на <math>q</math> и больше не имеют общих делителей. Тогда <math>\mathrm{gcd}(\frac{i}{q},\frac{n}{q}) = 1</math>. Таких натуральных <math>i \in [1 ; n]</math> и имеющих <math>\mathrm{gcd}(i,n) = q</math> ровно <tex>\varphi\left(\dfrac{n}{q}\right)</tex>.<br />
<br />
Пользуясь функцией Эйлера, мы можем привести формулу к более лаконичному виду <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{q|n}\varphi\left(\dfrac{n}{q}\right)k^q</tex>.<br />
<br />
== Алгоритм ==<br />
Основной идеей алгоритма является формула <tex> \displaystyle \varphi(n) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex>. Для решения задачи нам нужны только простые делители числа <math>n</math>. Их можно найти с помощью алгоритма факторизации. Написанный ниже алгоритм использует факторизацию числа, работающую за <math>O(\sqrt{n})</math>, однако есть более [https://e-maxx.ru/algo/factorization эффективные алгоритмы].<br />
<br />
Асимптотика вычисления <math> \displaystyle \varphi(n) = O(\sqrt{n})</math>. <br />
<br />
'''function''' phi (n):<br />
result = n <br />
i = 2<br />
<br />
'''while''' (i*i <= n):<br />
'''if''' n % i == 0:<br />
'''while''' n % i == 0:<br />
n /= i<br />
result -= result / i<br />
i++<br />
'''if''' (n > 1):<br />
result -= result/n<br />
'''return''' result<br />
<br />
== См. также ==<br />
* [[Задача об ожерельях]]<br />
<br />
== Ссылки ==<br />
* [https://ru.wikipedia.org/wiki/Функция_Эйлера Wikipedia {{---}} Функция Эйлера]<br />
* [https://e-maxx.ru/algo/euler_function Алгоритм нахождения функции Эйлера]<br />
* [https://wikichi.ru/wiki/Divisor_function Функция <math>\sigma</math>]</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=75807Обсуждение участника:MetaMockery2020-12-29T08:10:51Z<p>MetaMockery: /* Малая теорема Ферма и теорема Эйлера */</p>
<hr />
<div>== Функция Эйлера ==<br />
<br />
{{Определение<br />
|definition=<br />
''Функция Эйлера'' <tex>\varphi (n) </tex> определяется как количество натуральных чисел, не превосходящих <tex>n</tex> и взаимно простых с <tex>n</tex>.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Функция <tex>f : \mathbb{N} \to \mathbb{Z} </tex> называется ''мультипликативной'', если <tex>f(mn) = f(m)f(n)</tex> для любых взаимно простых <tex>m, n</tex>.<br />
}}<br />
<br />
{{Теорема<br />
|about = Мультипликативность функции Эйлера<br />
|statement = Для любых взаимно простых чисел <tex>m, n</tex> <br />
: <math>\varphi(mn)=\varphi(m)\varphi(n)</math><br />
|proof =<br />
Запишем <math>n \cdot m</math> натуральных чисел, не превосходящих <math>n \cdot m</math>, в виде прямоугольной таблицы с <math>n</math> столбцами и <math>m</math> строками, располагая первые <math>n</math> чисел в первой строке, вторые <math>n</math> чисел во второй и т.д. <br />
<br />
Поскольку <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>. <br />
<br />
В данном доказательстве мы используем тот факт, что число <math>s</math> взаимно просто с натуральным <math>k</math> тогда и только тогда, когда остаток деления <math>s</math> на <math>k</math> тоже взаимно прост с <math>k</math>. Данный факт довольно очевиден и используется в [https://e-maxx.ru/algo/euclid_algorithm Алгоритме Евклида].<br />
<br />
Теперь приступим непосредственно к доказательству. Число находящееся в <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> столбцов.<br />
<br />
Перед тем как продолжить доказательство, давайте рассмотрим небольшое утверждение. Пусть нам даны <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>, причем каждый остаток получается ровно из одного из членов прогрессии.<br />
<br />
Воспользуемся данным утверждением, подставив разность арифметической прогресии <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>, что и требовалось доказать.<br />
<br />
<br />
}}<br />
<br />
== Функции <tex>\sigma(n)</tex>, <tex>\tau(n)</tex> и <tex>\varphi(n)</tex>, их мультипликативность и значения ==<br />
<br />
Каноническое разложение числа <tex>\displaystyle n = \prod_{i=1}^{r}p_i^{s_i} </tex><br />
<br />
==== Функция <tex>\sigma(n)</tex> ====<br />
<br />
Функция <tex>\sigma : \mathbb{N} \to \mathbb{N} </tex> определяется как сумма делителей натурального числа <tex>n</tex>:<br />
<center><tex>\displaystyle\sigma(n) = \sum_{d | n}d </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\sigma(n)</tex> мультипликативна:<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\sigma(p) = p + 1</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\sigma(p^s) = \sum_{k=0}^{s}p^k = \frac{p^{s + 1} - 1}{p - 1} </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \sigma (n) = \prod_{i = 1}^{r}{\frac{p_{i}^{s_i+1}-1} {p_{i}-1}} </tex></center><br />
<br />
==== Функция <tex>\tau(n)</tex> ====<br />
<br />
Функция <tex>\tau: \mathbb{N} \to \mathbb{N} </tex> определяется как число положительных делителей натурального числа <tex>n</tex>: <br />
<center><tex>\displaystyle\tau(n) = \sum_{d | n}1 </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\tau(n)</tex> мультипликативна:<br />
<center><math>\tau(mn)=\tau(m)\tau(n)</math></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\tau(p) = 2</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\tau(p^s) = s + 1 </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \tau(n) = \prod_{i = 1}^{r}(s_i + 1) </tex></center><br />
<br />
==== Функция <tex>\varphi(n)</tex> ====<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\varphi(p) = p - 1</tex>. На некоторую степень <math>p</math> формулу можно обобщить:<br />
<center><tex>\displaystyle\varphi(p^s) = p^s - p^{s - 1} </tex></center><br />
Обосновывается следующим образом: Все не взаимно простые с <math>p^s</math> числа в диапазоне от 1 до <math>p^s</math>, очевидно, кратны <math>p</math>. Всего таких чисел <math>p^{s - 1}</math>.<br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i}(1 - \frac{1}{p_i}) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex></center><br />
<br />
== Малая теорема Ферма и теорема Эйлера ==<br />
<br />
{{Теорема<br />
|about= Теорема Эйлера<br />
<br />
|statement = Если <math>n</math> и <math>a</math> {{---}} взаимно простые целые числа, то <math>a^{\varphi(n)} \equiv 1 \ (mod \ n)</math><br />
<br />
|proof =<br />
Число <math>\overline{x}</math> называется вычетом по модулю <math>n</math>, если <math>\overline{x} \equiv x \ (mod \ n)</math>. Вычет <math>\overline{x}</math> называется обратимым вычетом, если существует вычет <math>\overline{y}</math>, такой что <math>\overline{x}\overline{y} \equiv 1 \ (mod \ n)</math>. Заметим, что вычет <math>\overline{x}</math> обратим тогда и только тогда, когда <math>\overline{x}</math> и <math>n</math> взаимно просты. Это обосновывается тем, что данное выражение можно представить в виде [https://e-maxx.ru/algo/diofant_2_equation линейного диофантово уравнения второго порядка] <math>\overline{x}\cdot\overline{y} + m \cdot n = 1</math>. Как видно из статьи, решение существует только при <math>(\overline{x}, n) = 1</math>. В таком случае, у числа <math>n</math> существует всего <math>\varphi(n)</math> обратимых вычетов. Пусть <math>\mathbb{Z}_{n}^{*}</math> {{---}} множество всех обратимых вычетов по модулю <math>n</math>.<br />
<br />
Когда мы рассматриваем числа по модулю, то мы фактически переходим в кольцо вычетов <math>\mathbb{Z}_{n}</math>, в котором не существует самих по себе чисел, а есть только вычеты (считай остатки этих чисел по модулю).<br />
<br />
Рассмотрим вычеты по модулю <math>n</math>. Так как <math>n</math> и <math>a</math> взаимно просты, то вычет <math>\overline{a}</math> обратим. Пусть <math>\overline{b_1}, \overline{b_2}, \dots , \overline{b_{\varphi(n)}}</math> {{---}} все обратимые вычеты по модулю <math>n</math>. Тогда вычет <math>\overline{b} = \overline{b_1}\overline{b_2}\dots\overline{b_{\varphi(n)}}</math>, равный произведению всех обратимых вычетов, тоже обратим. Заметим, что отображение <math>\mathbb{Z}_{n}^{*} \to \mathbb{Z}_{n}^{*}</math>, заданное формулой <math>\overline{x} \mapsto \overline{a}\cdot\overline{x}</math> является биекцией. Действительно, мы просто умножаем каждый остаток на какую-то константу, от этого множество вычетов не изменится. В таком случае в выражении <math> \overline{a}^{\varphi(n)}\overline{b} = (\overline{a} \overline{b_1}) \dots (\overline{a} \overline{b_{\varphi(n)}}) </math>, в правой части стоит произведение всех обратимых вычетов, но взятое в другом порядке. Тогда <math>\overline{a}^{\varphi(n)}\overline{b} = \overline{b}</math>. Умножая обе части на вычет, обратный к <math>\overline{b}</math>, получим, что <math>\overline{a}^{\varphi(n)} \equiv 1 \ (mod \ n) </math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
Следствием теоремы Эйлера является малая теорема Ферма. У нее также есть доказательство без использования более общей теоремы Эйлера, однако его мы приводить не будем.<br />
<br />
<br />
{{Теорема<br />
|about = Малая теорема Ферма<br />
<br />
|statement = Если целое число <math>a</math> и простое число <math>p</math> {{---}} взаимно просты, то <math>a^{p - 1} \equiv 1 \ (mod \ p)</math><br />
<br />
|proof = Так как <math>p</math> {{---}} простое, то <math>\varphi(p) = p - 1</math>. Воспользуемся теоремой Эйлера, тогда <math>a^{\varphi(p)} = a^{p - 1} \equiv 1 \ (mod \ p)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
== Различные свойства функции Эйлера ==<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Если для каких-то натуральных чисел <math>a</math> и <math>b</math> верно, что <math>a\,|\,b</math>, тогда верно и <math>\varphi(a)\,|\, \varphi(b)</math><br />
<br />
|proof = <br />
Воспользуемся формулой для <tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i - 1}(p_i - 1) </tex>.<br />
<br />
:<math>a = p_1^{\alpha_1} \cdot\ldots\cdot p_{r_a}^{\alpha_{r_a}},</math><br />
:<math>b = p_1^{\beta_1} \cdot\ldots\cdot p_{r_b}^{\beta_{r_b}}</math><br />
<br />
При этом, так как <math>a\,|\,b</math>, то <math>r_a \leq r_b</math>, а также <math>\forall i \in [1\, ;\, r_a] \ \alpha_i \leq \beta_i</math><br />
<br />
<math></math><br />
<br />
Значит <tex>\displaystyle\frac{\varphi(b)}{\varphi(a)}</tex><tex>\displaystyle = \frac{\displaystyle\prod_{i = 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1)}{\displaystyle\prod_{i = 1}^{r_a}p_i^{\alpha_i - 1}(p_i - 1)} = \displaystyle(\prod_{i = 1}^{r_a}p_i^{\beta_i - \alpha_i}) \cdot \displaystyle(\prod_{i = r_a + 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1))</tex>, а значит <math>\varphi(a)\,|\, \varphi(b)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Для любого натурального числа <math>n</math> выполнено равенство <math>\displaystyle n = \sum_{d | n} \varphi(d)</math><br />
<br />
|proof = Данную теорему можно доказать "напролом", пользуясь формулой для <math>\varphi(d)</math>, а можно более элегантно:<br />
<br />
Рассмотрим <math>n</math> дробей <math>\frac{1}{n}, \frac{2}{n}, \dots , \frac{n}{n}</math>. Каждую дробь представим в виде несократимой дроби <math>\frac{p}{q}</math>.<br />
Заметим, что множество значений <math>q</math> {{---}} это множество делителей числа <math>n</math>. Так как дробь <math>\frac{p}{q}</math> несократима, то <math>p</math> и <math>q</math> взаимно просты. Зная, что <math>p \leq q</math>, легко понять, что всего дробей со знаменателем <math>q</math> ровно <math>\varphi(q)</math>. Так как, все <math>n</math> дробей мы представили в несократимом виде, где знаменатель является делителем <math>n</math>, то <math>\displaystyle \sum_{d | n} \varphi(d) = n</math>, так как всего дробей <math>n</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
:<br />
<br />
{{Теорема<br />
|about = Обобщённая мультипликативность<br />
<br />
|statement = Пусть <math>n</math> и <math>m</math> {{---}} любые два натуральных числа, а <math>d = (n,\ m)</math>, тогда:<br />
: <math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n)\cdot\frac{d}{\varphi(d)}</math><br />
<br />
|proof = <br />
<br />
Пусть <math>(m,\,n)=d,</math> тогда <math>m = m'd, \; n = n'd,</math> причем в общем случае <math>(m',\,d) \neq 1</math> и <math>(n',\,d) \neq 1.</math> Поэтому можно записать:<br />
:<math>d = d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}},</math><br />
:<math>m' = d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r},</math><br />
:<math>n' = d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}.</math><br />
Здесь первые <math>k</math> делителей <math>d</math> являются также делителями <math>m',</math> а последние <math>K-k</math> делителей <math>d</math> являются делителями <math>n'.</math> Распишем:<br />
:<math>\varphi(mn)= \varphi(d^2 \cdot m'n')<br />
= \varphi((d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}})^2 \cdot d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r} \cdot d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}).</math><br />
В силу мультипликативности функции Эйлера, а также с учётом формулы<br />
:<math>\varphi(p^n) = p^n(1-\frac{1}{p}),</math><br />
где <math>p</math> — простое, получаем:<br />
:<math><br />
\begin{align}<br />
\varphi(mn)<br />
<br />
&= d_1^{\alpha_1+\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_k^{\alpha_k+\delta_k}\left(1-\frac{1}{d_k}\right) \cdot p_1^{\beta_1}\left(1-\frac{1}{p_1}\right) \cdot\ldots\cdot p_r^{\beta_r}\left(1-\frac{1}{p_r}\right) \cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\delta_{K}}\left(1-\frac{1}{d_{K}}\right)\times \\<br />
<br />
&\; \times \; d_{k+1}^{\gamma_{k+1}+\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\gamma_{K}+\delta_{K}}\left(1-\frac{1}{d_{K}}\right) \cdot q_1^{\varepsilon_1}\left(1-\frac{1}{q_1}\right) \cdot\ldots\cdot q_s^{\varepsilon_s}\left(1-\frac{1}{q_s}\right) \cdot d_1^{\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right)\times \\<br />
<br />
&\; \times \; \frac{1}{\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot \left(1-\frac{1}{d_K}\right)}<br />
\end{align}<br />
</math><br />
В первой строке записано <math>\varphi(m),</math> во второй — <math>\varphi(n),</math> а третью можно представить, как <math>\frac{d}{\varphi(d)}.</math> Поэтому:<br />
:<math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n) \cdot \frac{d}{\varphi(d)}</math><br />
<br />
}}<br />
<br />
== Применение теоремы Эйлера в других задачах ==<br />
<br />
==== Задача об ожерельях ====<br />
<br />
{{Задача<br />
|definition=<br />
Требуется посчитать количество ожерелий из <tex>n</tex> бусинок, каждая из которых может быть покрашена в один из <tex> k </tex> цветов. При сравнении двух ожерелий их можно поворачивать, но не переворачивать (т.е. разрешается сделать циклический сдвиг).}}<br />
<br />
В ходе решения задачи мы приходим к формуле <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{i = 1}^{n} k^{\mathrm{gcd}(i,n)}</tex><br />
<br />
Мы можем улучшить эту формулу, если рассмотрим выражение <math>\mathrm{gcd}(i,n)</math>. Пусть <math>\mathrm{gcd}(i,n) = q</math>, тогда числа <math>i</math> и <math>n</math> оба делятся на <math>q</math> и больше не имеют общих делителей. Тогда <math>\mathrm{gcd}(\frac{i}{q},\frac{n}{q}) = 1</math>. Таких натуральных <math>i \in [1 ; n]</math> и имеющих <math>\mathrm{gcd}(i,n) = q</math> ровно <tex>\varphi\left(\dfrac{n}{q}\right)</tex>.<br />
<br />
Пользуясь функцией Эйлера, мы можем привести формулу к более лаконичному виду <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{q|n}\varphi\left(\dfrac{n}{q}\right)k^q</tex>.<br />
<br />
== Алгоритм ==<br />
Основной идеей алгоритма является формула <tex> \displaystyle \varphi(n) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex>. Для решения задачи нам нужны только простые делители числа <math>n</math>. Их можно найти с помощью алгоритма факторизации. Написанный ниже алгоритм использует факторизацию числа, работающую за <math>O(\sqrt{n})</math>, однако есть более [https://e-maxx.ru/algo/factorization эффективные алгоритмы].<br />
<br />
Асимптотика вычисления <math> \displaystyle \varphi(n) = O(\sqrt{n})</math>. <br />
<br />
'''function''' phi (n):<br />
result = n <br />
i = 2<br />
<br />
'''while''' (i*i <= n):<br />
'''if''' n % i == 0:<br />
'''while''' n % i == 0:<br />
n /= i<br />
result -= result / i<br />
i++<br />
'''if''' (n > 1):<br />
result -= result/n<br />
'''return''' result<br />
<br />
== См. также ==<br />
* [[Задача об ожерельях]]<br />
<br />
== Ссылки ==<br />
* [https://ru.wikipedia.org/wiki/Функция_Эйлера Wikipedia {{---}} Функция Эйлера]<br />
* [https://e-maxx.ru/algo/euler_function Алгоритм нахождения функции Эйлера]<br />
* [https://wikichi.ru/wiki/Divisor_function Функция <math>\sigma</math>]</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=75804Обсуждение участника:MetaMockery2020-12-29T08:06:23Z<p>MetaMockery: /* Алгоритм */</p>
<hr />
<div>== Функция Эйлера ==<br />
<br />
{{Определение<br />
|definition=<br />
''Функция Эйлера'' <tex>\varphi (n) </tex> {{---}} определяется как количество натуральных чисел, не превосходящих <tex>n</tex> и взаимно простых с <tex>n</tex>.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Функция <tex>f : \mathbb{N} \to \mathbb{Z} </tex> называется ''мультипликативной'', если <tex>f(mn) = f(m)f(n)</tex> для любых взаимно простых <tex>m, n</tex>.<br />
}}<br />
<br />
{{Теорема<br />
|about = Мультипликативность функции Эйлера<br />
|statement = Для любых взаимно простых чисел <tex>m, n</tex> <br />
: <math>\varphi(mn)=\varphi(m)\varphi(n)</math><br />
|proof =<br />
Запишем <math>n \cdot m</math> натуральных чисел, не превосходящих <math>n \cdot m</math>, в виде прямоугольной таблицы с <math>n</math> столбцами и <math>m</math> строками, располагая первые <math>n</math> чисел в первой строке, вторые <math>n</math> чисел во второй и т.д. <br />
<br />
Поскольку <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>. <br />
<br />
В данном доказательстве мы используем тот факт, что число <math>s</math> взаимно просто с натуральным <math>k</math> тогда и только тогда, когда остаток деления <math>s</math> на <math>k</math> тоже взаимно прост с <math>k</math>. Данный факт довольно очевиден и используется в [https://e-maxx.ru/algo/euclid_algorithm Алгоритме Евклида].<br />
<br />
Теперь приступим непосредственно к доказательству. Число находящееся в <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> столбцов.<br />
<br />
Перед тем как продолжить доказательство, давайте рассмотрим небольшое утверждение. Пусть нам даны <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>, причем каждый остаток получается ровно из одного из членов прогрессии.<br />
<br />
Воспользуемся данным утверждением, подставив разность арифметической прогресии <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>, что и требовалось доказать.<br />
<br />
<br />
}}<br />
<br />
== Функции <tex>\sigma(n)</tex>, <tex>\tau(n)</tex> и <tex>\varphi(n)</tex>, их мультипликативность и значения ==<br />
<br />
Каноническое разложение числа <tex>\displaystyle n = \prod_{i=1}^{r}p_i^{s_i} </tex><br />
<br />
==== Функция <tex>\sigma(n)</tex> ====<br />
<br />
Функция <tex>\sigma : \mathbb{N} \to \mathbb{N} </tex> определяется как сумма делителей натурального числа <tex>n</tex>:<br />
<center><tex>\displaystyle\sigma(n) = \sum_{d | n}d </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\sigma(n)</tex> мультипликативна:<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\sigma(p) = p + 1</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\sigma(p^s) = \sum_{k=0}^{s}p^k = \frac{p^{s + 1} - 1}{p - 1} </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \sigma (n) = \prod_{i = 1}^{r}{\frac{p_{i}^{s_i+1}-1} {p_{i}-1}} </tex></center><br />
<br />
==== Функция <tex>\tau(n)</tex> ====<br />
<br />
Функция <tex>\tau: \mathbb{N} \to \mathbb{N} </tex> определяется как число положительных делителей натурального числа <tex>n</tex>: <br />
<center><tex>\displaystyle\tau(n) = \sum_{d | n}1 </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\tau(n)</tex> мультипликативна:<br />
<center><math>\tau(mn)=\tau(m)\tau(n)</math></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\tau(p) = 2</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\tau(p^s) = s + 1 </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \tau(n) = \prod_{i = 1}^{r}(s_i + 1) </tex></center><br />
<br />
==== Функция <tex>\varphi(n)</tex> ====<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\varphi(p) = p - 1</tex>. На некоторую степень <math>p</math> формулу можно обобщить:<br />
<center><tex>\displaystyle\varphi(p^s) = p^s - p^{s - 1} </tex></center><br />
Обосновывается следующим образом: Все не взаимно простые с <math>p^s</math> числа в диапазоне от 1 до <math>p^s</math>, очевидно, кратны <math>p</math>. Всего таких чисел <math>p^{s - 1}</math>.<br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i}(1 - \frac{1}{p_i}) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex></center><br />
<br />
== Малая теорема Ферма и теорема Эйлера ==<br />
<br />
{{Теорема<br />
|about= Теорема Эйлера<br />
<br />
|statement = Если <math>n</math> и <math>a</math> {{---}} взаимно простые целые числа, то <math>a^{\varphi(n)} \equiv 1 \ (mod \ n)</math><br />
<br />
|proof =<br />
Число <math>\overline{x}</math> называется вычетом по модулю <math>n</math>, если <math>\overline{x} \equiv x \ (mod \ n)</math>. Вычет <math>\overline{x}</math> называется обратимым вычетом, если существует вычет <math>\overline{y}</math>, такой что <math>\overline{x}\overline{y} \equiv 1 \ (mod \ n)</math>. Заметим, что вычет <math>\overline{x}</math> обратим тогда и только тогда, когда <math>\overline{x}</math> и <math>n</math> взаимно просты. Это обосновывается тем, что данное выражение можно представить в виде [https://e-maxx.ru/algo/diofant_2_equation линейного диофантово уравнения второго порядка] <math>\overline{x}\cdot\overline{y} + m \cdot n = 1</math>. Как видно из статьи, решение существует только при <math>(\overline{x}, n) = 1</math>. В таком случае, у числа <math>n</math> существует всего <math>\varphi(n)</math> обратимых вычетов. Пусть <math>\mathbb{Z}_{n}^{*}</math> {{---}} множество всех обратимых вычетов по модулю <math>n</math>.<br />
<br />
Рассмотрим вычеты по модулю <math>n</math>. Так как <math>n</math> и <math>a</math> взаимно просты, то вычет <math>\overline{a}</math> обратим. Пусть <math>\overline{b_1}, \overline{b_2}, \dots , \overline{b_{\varphi(n)}}</math> {{---}} все обратимые вычеты по модулю <math>n</math>. Тогда вычет <math>\overline{b} = \overline{b_1}\overline{b_2}\dots\overline{b_{\varphi(n)}}</math>, равный произведению всех обратимых вычетов, тоже обратим. Заметим, что отображение <math>\mathbb{Z}_{n}^{*} \to \mathbb{Z}_{n}^{*}</math>, заданное формулой <math>\overline{x} \mapsto \overline{a}\cdot\overline{x}</math> является биекцией. Действительно, мы просто умножаем каждый остаток на какую-то константу, от этого множество вычетов не изменится. В таком случае в выражении <math> \overline{a}^{\varphi(n)}\overline{b} = (\overline{a} \overline{b_1}) \dots (\overline{a} \overline{b_{\varphi(n)}}) </math>, в правой части стоит произведение всех обратимых вычетов, но взятое в другом порядке. Тогда <math>\overline{a}^{\varphi(n)}\overline{b} = \overline{b}</math>. Умножая обе части на вычет, обратный к <math>\overline{b}</math>, получим, что <math>\overline{a}^{\varphi(n)} \equiv 1 \ (mod \ n) </math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
Следствием теоремы Эйлера является малая теорема Ферма. У нее также есть доказательство без использования более общей теоремы Эйлера, однако его мы приводить не будем.<br />
<br />
<br />
{{Теорема<br />
|about = Малая теорема Ферма<br />
<br />
|statement = Если целое число <math>a</math> и простое число <math>p</math> {{---}} взаимно просты, то <math>a^{p - 1} \equiv 1 \ (mod \ p)</math><br />
<br />
|proof = Так как <math>p</math> {{---}} простое, то <math>\varphi(p) = p - 1</math>. Воспользуемся теоремой Эйлера, тогда <math>a^{\varphi(p)} = a^{p - 1} \equiv 1 \ (mod \ p)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
== Различные свойства функции Эйлера ==<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Если для каких-то натуральных чисел <math>a</math> и <math>b</math> верно, что <math>a\,|\,b</math>, тогда верно и <math>\varphi(a)\,|\, \varphi(b)</math><br />
<br />
|proof = <br />
Воспользуемся формулой для <tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i - 1}(p_i - 1) </tex>.<br />
<br />
:<math>a = p_1^{\alpha_1} \cdot\ldots\cdot p_{r_a}^{\alpha_{r_a}},</math><br />
:<math>b = p_1^{\beta_1} \cdot\ldots\cdot p_{r_b}^{\beta_{r_b}}</math><br />
<br />
При этом, так как <math>a\,|\,b</math>, то <math>r_a \leq r_b</math>, а также <math>\forall i \in [1\, ;\, r_a] \ \alpha_i \leq \beta_i</math><br />
<br />
<math></math><br />
<br />
Значит <tex>\displaystyle\frac{\varphi(b)}{\varphi(a)}</tex><tex>\displaystyle = \frac{\displaystyle\prod_{i = 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1)}{\displaystyle\prod_{i = 1}^{r_a}p_i^{\alpha_i - 1}(p_i - 1)} = \displaystyle(\prod_{i = 1}^{r_a}p_i^{\beta_i - \alpha_i}) \cdot \displaystyle(\prod_{i = r_a + 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1))</tex>, а значит <math>\varphi(a)\,|\, \varphi(b)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Для любого натурального числа <math>n</math> выполнено равенство <math>\displaystyle n = \sum_{d | n} \varphi(d)</math><br />
<br />
|proof = Данную теорему можно доказать "напролом", пользуясь формулой для <math>\varphi(d)</math>, а можно более элегантно:<br />
<br />
Рассмотрим <math>n</math> дробей <math>\frac{1}{n}, \frac{2}{n}, \dots , \frac{n}{n}</math>. Каждую дробь представим в виде несократимой дроби <math>\frac{p}{q}</math>.<br />
Заметим, что множество значений <math>q</math> {{---}} это множество делителей числа <math>n</math>. Так как дробь <math>\frac{p}{q}</math> несократима, то <math>p</math> и <math>q</math> взаимно просты. Зная, что <math>p \leq q</math>, легко понять, что всего дробей со знаменателем <math>q</math> ровно <math>\varphi(q)</math>. Так как, все <math>n</math> дробей мы представили в несократимом виде, где знаменатель является делителем <math>n</math>, то <math>\displaystyle \sum_{d | n} \varphi(d) = n</math>, так как всего дробей <math>n</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
:<br />
<br />
{{Теорема<br />
|about = Обобщённая мультипликативность<br />
<br />
|statement = Пусть <math>n</math> и <math>m</math> {{---}} любые два натуральных числа, а <math>d = (n,\ m)</math>, тогда:<br />
: <math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n)\cdot\frac{d}{\varphi(d)}</math><br />
<br />
|proof = <br />
<br />
Пусть <math>(m,\,n)=d,</math> тогда <math>m = m'd, \; n = n'd,</math> причем в общем случае <math>(m',\,d) \neq 1</math> и <math>(n',\,d) \neq 1.</math> Поэтому можно записать:<br />
:<math>d = d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}},</math><br />
:<math>m' = d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r},</math><br />
:<math>n' = d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}.</math><br />
Здесь первые <math>k</math> делителей <math>d</math> являются также делителями <math>m',</math> а последние <math>K-k</math> делителей <math>d</math> являются делителями <math>n'.</math> Распишем:<br />
:<math>\varphi(mn)= \varphi(d^2 \cdot m'n')<br />
= \varphi((d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}})^2 \cdot d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r} \cdot d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}).</math><br />
В силу мультипликативности функции Эйлера, а также с учётом формулы<br />
:<math>\varphi(p^n) = p^n(1-\frac{1}{p}),</math><br />
где <math>p</math> — простое, получаем:<br />
:<math><br />
\begin{align}<br />
\varphi(mn)<br />
<br />
&= d_1^{\alpha_1+\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_k^{\alpha_k+\delta_k}\left(1-\frac{1}{d_k}\right) \cdot p_1^{\beta_1}\left(1-\frac{1}{p_1}\right) \cdot\ldots\cdot p_r^{\beta_r}\left(1-\frac{1}{p_r}\right) \cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\delta_{K}}\left(1-\frac{1}{d_{K}}\right)\times \\<br />
<br />
&\; \times \; d_{k+1}^{\gamma_{k+1}+\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\gamma_{K}+\delta_{K}}\left(1-\frac{1}{d_{K}}\right) \cdot q_1^{\varepsilon_1}\left(1-\frac{1}{q_1}\right) \cdot\ldots\cdot q_s^{\varepsilon_s}\left(1-\frac{1}{q_s}\right) \cdot d_1^{\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right)\times \\<br />
<br />
&\; \times \; \frac{1}{\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot \left(1-\frac{1}{d_K}\right)}<br />
\end{align}<br />
</math><br />
В первой строке записано <math>\varphi(m),</math> во второй — <math>\varphi(n),</math> а третью можно представить, как <math>\frac{d}{\varphi(d)}.</math> Поэтому:<br />
:<math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n) \cdot \frac{d}{\varphi(d)}</math><br />
<br />
}}<br />
<br />
== Применение теоремы Эйлера в других задачах ==<br />
<br />
==== Задача об ожерельях ====<br />
<br />
{{Задача<br />
|definition=<br />
Требуется посчитать количество ожерелий из <tex>n</tex> бусинок, каждая из которых может быть покрашена в один из <tex> k </tex> цветов. При сравнении двух ожерелий их можно поворачивать, но не переворачивать (т.е. разрешается сделать циклический сдвиг).}}<br />
<br />
В ходе решения задачи мы приходим к формуле <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{i = 1}^{n} k^{\mathrm{gcd}(i,n)}</tex><br />
<br />
Мы можем улучшить эту формулу, если рассмотрим выражение <math>\mathrm{gcd}(i,n)</math>. Пусть <math>\mathrm{gcd}(i,n) = q</math>, тогда числа <math>i</math> и <math>n</math> оба делятся на <math>q</math> и больше не имеют общих делителей. Тогда <math>\mathrm{gcd}(\frac{i}{q},\frac{n}{q}) = 1</math>. Таких натуральных <math>i \in [1 ; n]</math> и имеющих <math>\mathrm{gcd}(i,n) = q</math> ровно <tex>\varphi\left(\dfrac{n}{q}\right)</tex>.<br />
<br />
Пользуясь функцией Эйлера, мы можем привести формулу к более лаконичному виду <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{q|n}\varphi\left(\dfrac{n}{q}\right)k^q</tex>.<br />
<br />
== Алгоритм ==<br />
Основной идеей алгоритма является формула <tex> \displaystyle \varphi(n) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex>. Фактически для решения задачи нам нужны только простые делители числа <math>n</math>. Их можно найти с помощью алгоритма факторизации. Написанный ниже алгоритм использует факторизацию числа, работающую за <math>O(\sqrt{n})</math>, однако есть более [https://e-maxx.ru/algo/factorization эффективные алгоритмы].<br />
<br />
Асимптотика вычисления <math> \displaystyle \varphi(n) = O(\sqrt{n})</math>. <br />
<br />
'''function''' phi (n):<br />
result = n <br />
i = 2<br />
<br />
'''while''' (i*i <= n):<br />
'''if''' n % i == 0:<br />
'''while''' n % i == 0:<br />
n /= i<br />
result -= result / i<br />
i++<br />
'''if''' (n > 1):<br />
result -= result/n<br />
'''return''' result<br />
<br />
== См. также ==<br />
* [[Задача об ожерельях]]<br />
<br />
== Ссылки ==<br />
* [https://ru.wikipedia.org/wiki/Функция_Эйлера Wikipedia {{---}} Функция Эйлера]<br />
* [https://e-maxx.ru/algo/euler_function Алгоритм нахождения функции Эйлера]<br />
* [https://wikichi.ru/wiki/Divisor_function Функция <math>\sigma</math>]</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=75654Обсуждение участника:MetaMockery2020-12-26T08:49:04Z<p>MetaMockery: /* Алгоритм */</p>
<hr />
<div>== Функция Эйлера ==<br />
<br />
{{Определение<br />
|definition=<br />
''Функция Эйлера'' <tex>\varphi (n) </tex> {{---}} определяется как количество натуральных чисел, не превосходящих <tex>n</tex> и взаимно простых с <tex>n</tex>.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Функция <tex>f : \mathbb{N} \to \mathbb{Z} </tex> называется ''мультипликативной'', если <tex>f(mn) = f(m)f(n)</tex> для любых взаимно простых <tex>m, n</tex>.<br />
}}<br />
<br />
{{Теорема<br />
|about = Мультипликативность функции Эйлера<br />
|statement = Для любых взаимно простых чисел <tex>m, n</tex> <br />
: <math>\varphi(mn)=\varphi(m)\varphi(n)</math><br />
|proof =<br />
Запишем <math>n \cdot m</math> натуральных чисел, не превосходящих <math>n \cdot m</math>, в виде прямоугольной таблицы с <math>n</math> столбцами и <math>m</math> строками, располагая первые <math>n</math> чисел в первой строке, вторые <math>n</math> чисел во второй и т.д. <br />
<br />
Поскольку <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>. <br />
<br />
В данном доказательстве мы используем тот факт, что число <math>s</math> взаимно просто с натуральным <math>k</math> тогда и только тогда, когда остаток деления <math>s</math> на <math>k</math> тоже взаимно прост с <math>k</math>. Данный факт довольно очевиден и используется в [https://e-maxx.ru/algo/euclid_algorithm Алгоритме Евклида].<br />
<br />
Теперь приступим непосредственно к доказательству. Число находящееся в <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> столбцов.<br />
<br />
Перед тем как продолжить доказательство, давайте рассмотрим небольшое утверждение. Пусть нам даны <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>, причем каждый остаток получается ровно из одного из членов прогрессии.<br />
<br />
Воспользуемся данным утверждением, подставив разность арифметической прогресии <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>, что и требовалось доказать.<br />
<br />
<br />
}}<br />
<br />
== Функции <tex>\sigma(n)</tex>, <tex>\tau(n)</tex> и <tex>\varphi(n)</tex>, их мультипликативность и значения ==<br />
<br />
Каноническое разложение числа <tex>\displaystyle n = \prod_{i=1}^{r}p_i^{s_i} </tex><br />
<br />
==== Функция <tex>\sigma(n)</tex> ====<br />
<br />
Функция <tex>\sigma : \mathbb{N} \to \mathbb{N} </tex> определяется как сумма делителей натурального числа <tex>n</tex>:<br />
<center><tex>\displaystyle\sigma(n) = \sum_{d | n}d </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\sigma(n)</tex> мультипликативна:<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\sigma(p) = p + 1</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\sigma(p^s) = \sum_{k=0}^{s}p^k = \frac{p^{s + 1} - 1}{p - 1} </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \sigma (n) = \prod_{i = 1}^{r}{\frac{p_{i}^{s_i+1}-1} {p_{i}-1}} </tex></center><br />
<br />
==== Функция <tex>\tau(n)</tex> ====<br />
<br />
Функция <tex>\tau: \mathbb{N} \to \mathbb{N} </tex> определяется как число положительных делителей натурального числа <tex>n</tex>: <br />
<center><tex>\displaystyle\tau(n) = \sum_{d | n}1 </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\tau(n)</tex> мультипликативна:<br />
<center><math>\tau(mn)=\tau(m)\tau(n)</math></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\tau(p) = 2</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\tau(p^s) = s + 1 </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \tau(n) = \prod_{i = 1}^{r}(s_i + 1) </tex></center><br />
<br />
==== Функция <tex>\varphi(n)</tex> ====<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\varphi(p) = p - 1</tex>. На некоторую степень <math>p</math> формулу можно обобщить:<br />
<center><tex>\displaystyle\varphi(p^s) = p^s - p^{s - 1} </tex></center><br />
Обосновывается следующим образом: Все не взаимно простые с <math>p^s</math> числа в диапазоне от 1 до <math>p^s</math>, очевидно, кратны <math>p</math>. Всего таких чисел <math>p^{s - 1}</math>.<br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i}(1 - \frac{1}{p_i}) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex></center><br />
<br />
== Малая теорема Ферма и теорема Эйлера ==<br />
<br />
{{Теорема<br />
|about= Теорема Эйлера<br />
<br />
|statement = Если <math>n</math> и <math>a</math> {{---}} взаимно простые целые числа, то <math>a^{\varphi(n)} \equiv 1 \ (mod \ n)</math><br />
<br />
|proof =<br />
Число <math>\overline{x}</math> называется вычетом по модулю <math>n</math>, если <math>\overline{x} \equiv x \ (mod \ n)</math>. Вычет <math>\overline{x}</math> называется обратимым вычетом, если существует вычет <math>\overline{y}</math>, такой что <math>\overline{x}\overline{y} \equiv 1 \ (mod \ n)</math>. Заметим, что вычет <math>\overline{x}</math> обратим тогда и только тогда, когда <math>\overline{x}</math> и <math>n</math> взаимно просты. Это обосновывается тем, что данное выражение можно представить в виде [https://e-maxx.ru/algo/diofant_2_equation линейного диофантово уравнения второго порядка] <math>\overline{x}\cdot\overline{y} + m \cdot n = 1</math>. Как видно из статьи, решение существует только при <math>(\overline{x}, n) = 1</math>. В таком случае, у числа <math>n</math> существует всего <math>\varphi(n)</math> обратимых вычетов. Пусть <math>\mathbb{Z}_{n}^{*}</math> {{---}} множество всех обратимых вычетов по модулю <math>n</math>.<br />
<br />
Рассмотрим вычеты по модулю <math>n</math>. Так как <math>n</math> и <math>a</math> взаимно просты, то вычет <math>\overline{a}</math> обратим. Пусть <math>\overline{b_1}, \overline{b_2}, \dots , \overline{b_{\varphi(n)}}</math> {{---}} все обратимые вычеты по модулю <math>n</math>. Тогда вычет <math>\overline{b} = \overline{b_1}\overline{b_2}\dots\overline{b_{\varphi(n)}}</math>, равный произведению всех обратимых вычетов, тоже обратим. Заметим, что отображение <math>\mathbb{Z}_{n}^{*} \to \mathbb{Z}_{n}^{*}</math>, заданное формулой <math>\overline{x} \mapsto \overline{a}\cdot\overline{x}</math> является биекцией. Действительно, мы просто умножаем каждый остаток на какую-то константу, от этого множество вычетов не изменится. В таком случае в выражении <math> \overline{a}^{\varphi(n)}\overline{b} = (\overline{a} \overline{b_1}) \dots (\overline{a} \overline{b_{\varphi(n)}}) </math>, в правой части стоит произведение всех обратимых вычетов, но взятое в другом порядке. Тогда <math>\overline{a}^{\varphi(n)}\overline{b} = \overline{b}</math>. Умножая обе части на вычет, обратный к <math>\overline{b}</math>, получим, что <math>\overline{a}^{\varphi(n)} \equiv 1 \ (mod \ n) </math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
Следствием теоремы Эйлера является малая теорема Ферма. У нее также есть доказательство без использования более общей теоремы Эйлера, однако его мы приводить не будем.<br />
<br />
<br />
{{Теорема<br />
|about = Малая теорема Ферма<br />
<br />
|statement = Если целое число <math>a</math> и простое число <math>p</math> {{---}} взаимно просты, то <math>a^{p - 1} \equiv 1 \ (mod \ p)</math><br />
<br />
|proof = Так как <math>p</math> {{---}} простое, то <math>\varphi(p) = p - 1</math>. Воспользуемся теоремой Эйлера, тогда <math>a^{\varphi(p)} = a^{p - 1} \equiv 1 \ (mod \ p)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
== Различные свойства функции Эйлера ==<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Если для каких-то натуральных чисел <math>a</math> и <math>b</math> верно, что <math>a\,|\,b</math>, тогда верно и <math>\varphi(a)\,|\, \varphi(b)</math><br />
<br />
|proof = <br />
Воспользуемся формулой для <tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i - 1}(p_i - 1) </tex>.<br />
<br />
:<math>a = p_1^{\alpha_1} \cdot\ldots\cdot p_{r_a}^{\alpha_{r_a}},</math><br />
:<math>b = p_1^{\beta_1} \cdot\ldots\cdot p_{r_b}^{\beta_{r_b}}</math><br />
<br />
При этом, так как <math>a\,|\,b</math>, то <math>r_a \leq r_b</math>, а также <math>\forall i \in [1\, ;\, r_a] \ \alpha_i \leq \beta_i</math><br />
<br />
<math></math><br />
<br />
Значит <tex>\displaystyle\frac{\varphi(b)}{\varphi(a)}</tex><tex>\displaystyle = \frac{\displaystyle\prod_{i = 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1)}{\displaystyle\prod_{i = 1}^{r_a}p_i^{\alpha_i - 1}(p_i - 1)} = \displaystyle(\prod_{i = 1}^{r_a}p_i^{\beta_i - \alpha_i}) \cdot \displaystyle(\prod_{i = r_a + 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1))</tex>, а значит <math>\varphi(a)\,|\, \varphi(b)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Для любого натурального числа <math>n</math> выполнено равенство <math>\displaystyle n = \sum_{d | n} \varphi(d)</math><br />
<br />
|proof = Данную теорему можно доказать "напролом", пользуясь формулой для <math>\varphi(d)</math>, а можно более элегантно:<br />
<br />
Рассмотрим <math>n</math> дробей <math>\frac{1}{n}, \frac{2}{n}, \dots , \frac{n}{n}</math>. Каждую дробь представим в виде несократимой дроби <math>\frac{p}{q}</math>.<br />
Заметим, что множество значений <math>q</math> {{---}} это множество делителей числа <math>n</math>. Так как дробь <math>\frac{p}{q}</math> несократима, то <math>p</math> и <math>q</math> взаимно просты. Зная, что <math>p \leq q</math>, легко понять, что всего дробей со знаменателем <math>q</math> ровно <math>\varphi(q)</math>. Так как, все <math>n</math> дробей мы представили в несократимом виде, где знаменатель является делителем <math>n</math>, то <math>\displaystyle \sum_{d | n} \varphi(d) = n</math>, так как всего дробей <math>n</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
:<br />
<br />
{{Теорема<br />
|about = Обобщённая мультипликативность<br />
<br />
|statement = Пусть <math>n</math> и <math>m</math> {{---}} любые два натуральных числа, а <math>d = (n,\ m)</math>, тогда:<br />
: <math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n)\cdot\frac{d}{\varphi(d)}</math><br />
<br />
|proof = <br />
<br />
Пусть <math>(m,\,n)=d,</math> тогда <math>m = m'd, \; n = n'd,</math> причем в общем случае <math>(m',\,d) \neq 1</math> и <math>(n',\,d) \neq 1.</math> Поэтому можно записать:<br />
:<math>d = d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}},</math><br />
:<math>m' = d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r},</math><br />
:<math>n' = d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}.</math><br />
Здесь первые <math>k</math> делителей <math>d</math> являются также делителями <math>m',</math> а последние <math>K-k</math> делителей <math>d</math> являются делителями <math>n'.</math> Распишем:<br />
:<math>\varphi(mn)= \varphi(d^2 \cdot m'n')<br />
= \varphi((d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}})^2 \cdot d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r} \cdot d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}).</math><br />
В силу мультипликативности функции Эйлера, а также с учётом формулы<br />
:<math>\varphi(p^n) = p^n(1-\frac{1}{p}),</math><br />
где <math>p</math> — простое, получаем:<br />
:<math><br />
\begin{align}<br />
\varphi(mn)<br />
<br />
&= d_1^{\alpha_1+\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_k^{\alpha_k+\delta_k}\left(1-\frac{1}{d_k}\right) \cdot p_1^{\beta_1}\left(1-\frac{1}{p_1}\right) \cdot\ldots\cdot p_r^{\beta_r}\left(1-\frac{1}{p_r}\right) \cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\delta_{K}}\left(1-\frac{1}{d_{K}}\right)\times \\<br />
<br />
&\; \times \; d_{k+1}^{\gamma_{k+1}+\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\gamma_{K}+\delta_{K}}\left(1-\frac{1}{d_{K}}\right) \cdot q_1^{\varepsilon_1}\left(1-\frac{1}{q_1}\right) \cdot\ldots\cdot q_s^{\varepsilon_s}\left(1-\frac{1}{q_s}\right) \cdot d_1^{\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right)\times \\<br />
<br />
&\; \times \; \frac{1}{\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot \left(1-\frac{1}{d_K}\right)}<br />
\end{align}<br />
</math><br />
В первой строке записано <math>\varphi(m),</math> во второй — <math>\varphi(n),</math> а третью можно представить, как <math>\frac{d}{\varphi(d)}.</math> Поэтому:<br />
:<math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n) \cdot \frac{d}{\varphi(d)}</math><br />
<br />
}}<br />
<br />
== Применение теоремы Эйлера в других задачах ==<br />
<br />
==== Задача об ожерельях ====<br />
<br />
{{Задача<br />
|definition=<br />
Требуется посчитать количество ожерелий из <tex>n</tex> бусинок, каждая из которых может быть покрашена в один из <tex> k </tex> цветов. При сравнении двух ожерелий их можно поворачивать, но не переворачивать (т.е. разрешается сделать циклический сдвиг).}}<br />
<br />
В ходе решения задачи мы приходим к формуле <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{i = 1}^{n} k^{\mathrm{gcd}(i,n)}</tex><br />
<br />
Мы можем улучшить эту формулу, если рассмотрим выражение <math>\mathrm{gcd}(i,n)</math>. Пусть <math>\mathrm{gcd}(i,n) = q</math>, тогда числа <math>i</math> и <math>n</math> оба делятся на <math>q</math> и больше не имеют общих делителей. Тогда <math>\mathrm{gcd}(\frac{i}{q},\frac{n}{q}) = 1</math>. Таких натуральных <math>i \in [1 ; n]</math> и имеющих <math>\mathrm{gcd}(i,n) = q</math> ровно <tex>\varphi\left(\dfrac{n}{q}\right)</tex>.<br />
<br />
Пользуясь функцией Эйлера, мы можем привести формулу к более лаконичному виду <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{q|n}\varphi\left(\dfrac{n}{q}\right)k^q</tex>.<br />
<br />
== Алгоритм ==<br />
Основной идеей алгоритма является формула <tex> \displaystyle \varphi(n) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex>. Фактически для решения задачи нам нужны только простые делители числа <math>n</math>. Их можно найти с помощью алгоритма факторизации. Написанный ниже алгоритм использует факторизацию числа, работающую за <math>O(\sqrt{n})</math>, однако есть более [https://e-maxx.ru/algo/factorization эффективные алгоритмы].<br />
<br />
Асимптотика вычисления <tex> \displaystyle \varphi(n)</tex> {{---}} <math>O(\sqrt{n})</math>. <br />
<br />
'''function''' phi (n):<br />
result = n <br />
i = 2<br />
<br />
'''while''' (i*i <= n):<br />
'''if''' n % i == 0:<br />
'''while''' n % i == 0:<br />
n /= i<br />
result -= result / i<br />
i++<br />
'''if''' (n > 1):<br />
result -= result/n<br />
'''return''' result<br />
<br />
== См. также ==<br />
* [[Задача об ожерельях]]<br />
<br />
== Ссылки ==<br />
* [https://ru.wikipedia.org/wiki/Функция_Эйлера Wikipedia {{---}} Функция Эйлера]<br />
* [https://e-maxx.ru/algo/euler_function Алгоритм нахождения функции Эйлера]<br />
* [https://wikichi.ru/wiki/Divisor_function Функция <math>\sigma</math>]</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=75653Обсуждение участника:MetaMockery2020-12-26T08:30:07Z<p>MetaMockery: /* Задача об ожерельях */</p>
<hr />
<div>== Функция Эйлера ==<br />
<br />
{{Определение<br />
|definition=<br />
''Функция Эйлера'' <tex>\varphi (n) </tex> {{---}} определяется как количество натуральных чисел, не превосходящих <tex>n</tex> и взаимно простых с <tex>n</tex>.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Функция <tex>f : \mathbb{N} \to \mathbb{Z} </tex> называется ''мультипликативной'', если <tex>f(mn) = f(m)f(n)</tex> для любых взаимно простых <tex>m, n</tex>.<br />
}}<br />
<br />
{{Теорема<br />
|about = Мультипликативность функции Эйлера<br />
|statement = Для любых взаимно простых чисел <tex>m, n</tex> <br />
: <math>\varphi(mn)=\varphi(m)\varphi(n)</math><br />
|proof =<br />
Запишем <math>n \cdot m</math> натуральных чисел, не превосходящих <math>n \cdot m</math>, в виде прямоугольной таблицы с <math>n</math> столбцами и <math>m</math> строками, располагая первые <math>n</math> чисел в первой строке, вторые <math>n</math> чисел во второй и т.д. <br />
<br />
Поскольку <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>. <br />
<br />
В данном доказательстве мы используем тот факт, что число <math>s</math> взаимно просто с натуральным <math>k</math> тогда и только тогда, когда остаток деления <math>s</math> на <math>k</math> тоже взаимно прост с <math>k</math>. Данный факт довольно очевиден и используется в [https://e-maxx.ru/algo/euclid_algorithm Алгоритме Евклида].<br />
<br />
Теперь приступим непосредственно к доказательству. Число находящееся в <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> столбцов.<br />
<br />
Перед тем как продолжить доказательство, давайте рассмотрим небольшое утверждение. Пусть нам даны <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>, причем каждый остаток получается ровно из одного из членов прогрессии.<br />
<br />
Воспользуемся данным утверждением, подставив разность арифметической прогресии <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>, что и требовалось доказать.<br />
<br />
<br />
}}<br />
<br />
== Функции <tex>\sigma(n)</tex>, <tex>\tau(n)</tex> и <tex>\varphi(n)</tex>, их мультипликативность и значения ==<br />
<br />
Каноническое разложение числа <tex>\displaystyle n = \prod_{i=1}^{r}p_i^{s_i} </tex><br />
<br />
==== Функция <tex>\sigma(n)</tex> ====<br />
<br />
Функция <tex>\sigma : \mathbb{N} \to \mathbb{N} </tex> определяется как сумма делителей натурального числа <tex>n</tex>:<br />
<center><tex>\displaystyle\sigma(n) = \sum_{d | n}d </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\sigma(n)</tex> мультипликативна:<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\sigma(p) = p + 1</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\sigma(p^s) = \sum_{k=0}^{s}p^k = \frac{p^{s + 1} - 1}{p - 1} </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \sigma (n) = \prod_{i = 1}^{r}{\frac{p_{i}^{s_i+1}-1} {p_{i}-1}} </tex></center><br />
<br />
==== Функция <tex>\tau(n)</tex> ====<br />
<br />
Функция <tex>\tau: \mathbb{N} \to \mathbb{N} </tex> определяется как число положительных делителей натурального числа <tex>n</tex>: <br />
<center><tex>\displaystyle\tau(n) = \sum_{d | n}1 </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\tau(n)</tex> мультипликативна:<br />
<center><math>\tau(mn)=\tau(m)\tau(n)</math></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\tau(p) = 2</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\tau(p^s) = s + 1 </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \tau(n) = \prod_{i = 1}^{r}(s_i + 1) </tex></center><br />
<br />
==== Функция <tex>\varphi(n)</tex> ====<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\varphi(p) = p - 1</tex>. На некоторую степень <math>p</math> формулу можно обобщить:<br />
<center><tex>\displaystyle\varphi(p^s) = p^s - p^{s - 1} </tex></center><br />
Обосновывается следующим образом: Все не взаимно простые с <math>p^s</math> числа в диапазоне от 1 до <math>p^s</math>, очевидно, кратны <math>p</math>. Всего таких чисел <math>p^{s - 1}</math>.<br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i}(1 - \frac{1}{p_i}) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex></center><br />
<br />
== Малая теорема Ферма и теорема Эйлера ==<br />
<br />
{{Теорема<br />
|about= Теорема Эйлера<br />
<br />
|statement = Если <math>n</math> и <math>a</math> {{---}} взаимно простые целые числа, то <math>a^{\varphi(n)} \equiv 1 \ (mod \ n)</math><br />
<br />
|proof =<br />
Число <math>\overline{x}</math> называется вычетом по модулю <math>n</math>, если <math>\overline{x} \equiv x \ (mod \ n)</math>. Вычет <math>\overline{x}</math> называется обратимым вычетом, если существует вычет <math>\overline{y}</math>, такой что <math>\overline{x}\overline{y} \equiv 1 \ (mod \ n)</math>. Заметим, что вычет <math>\overline{x}</math> обратим тогда и только тогда, когда <math>\overline{x}</math> и <math>n</math> взаимно просты. Это обосновывается тем, что данное выражение можно представить в виде [https://e-maxx.ru/algo/diofant_2_equation линейного диофантово уравнения второго порядка] <math>\overline{x}\cdot\overline{y} + m \cdot n = 1</math>. Как видно из статьи, решение существует только при <math>(\overline{x}, n) = 1</math>. В таком случае, у числа <math>n</math> существует всего <math>\varphi(n)</math> обратимых вычетов. Пусть <math>\mathbb{Z}_{n}^{*}</math> {{---}} множество всех обратимых вычетов по модулю <math>n</math>.<br />
<br />
Рассмотрим вычеты по модулю <math>n</math>. Так как <math>n</math> и <math>a</math> взаимно просты, то вычет <math>\overline{a}</math> обратим. Пусть <math>\overline{b_1}, \overline{b_2}, \dots , \overline{b_{\varphi(n)}}</math> {{---}} все обратимые вычеты по модулю <math>n</math>. Тогда вычет <math>\overline{b} = \overline{b_1}\overline{b_2}\dots\overline{b_{\varphi(n)}}</math>, равный произведению всех обратимых вычетов, тоже обратим. Заметим, что отображение <math>\mathbb{Z}_{n}^{*} \to \mathbb{Z}_{n}^{*}</math>, заданное формулой <math>\overline{x} \mapsto \overline{a}\cdot\overline{x}</math> является биекцией. Действительно, мы просто умножаем каждый остаток на какую-то константу, от этого множество вычетов не изменится. В таком случае в выражении <math> \overline{a}^{\varphi(n)}\overline{b} = (\overline{a} \overline{b_1}) \dots (\overline{a} \overline{b_{\varphi(n)}}) </math>, в правой части стоит произведение всех обратимых вычетов, но взятое в другом порядке. Тогда <math>\overline{a}^{\varphi(n)}\overline{b} = \overline{b}</math>. Умножая обе части на вычет, обратный к <math>\overline{b}</math>, получим, что <math>\overline{a}^{\varphi(n)} \equiv 1 \ (mod \ n) </math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
Следствием теоремы Эйлера является малая теорема Ферма. У нее также есть доказательство без использования более общей теоремы Эйлера, однако его мы приводить не будем.<br />
<br />
<br />
{{Теорема<br />
|about = Малая теорема Ферма<br />
<br />
|statement = Если целое число <math>a</math> и простое число <math>p</math> {{---}} взаимно просты, то <math>a^{p - 1} \equiv 1 \ (mod \ p)</math><br />
<br />
|proof = Так как <math>p</math> {{---}} простое, то <math>\varphi(p) = p - 1</math>. Воспользуемся теоремой Эйлера, тогда <math>a^{\varphi(p)} = a^{p - 1} \equiv 1 \ (mod \ p)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
== Различные свойства функции Эйлера ==<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Если для каких-то натуральных чисел <math>a</math> и <math>b</math> верно, что <math>a\,|\,b</math>, тогда верно и <math>\varphi(a)\,|\, \varphi(b)</math><br />
<br />
|proof = <br />
Воспользуемся формулой для <tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i - 1}(p_i - 1) </tex>.<br />
<br />
:<math>a = p_1^{\alpha_1} \cdot\ldots\cdot p_{r_a}^{\alpha_{r_a}},</math><br />
:<math>b = p_1^{\beta_1} \cdot\ldots\cdot p_{r_b}^{\beta_{r_b}}</math><br />
<br />
При этом, так как <math>a\,|\,b</math>, то <math>r_a \leq r_b</math>, а также <math>\forall i \in [1\, ;\, r_a] \ \alpha_i \leq \beta_i</math><br />
<br />
<math></math><br />
<br />
Значит <tex>\displaystyle\frac{\varphi(b)}{\varphi(a)}</tex><tex>\displaystyle = \frac{\displaystyle\prod_{i = 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1)}{\displaystyle\prod_{i = 1}^{r_a}p_i^{\alpha_i - 1}(p_i - 1)} = \displaystyle(\prod_{i = 1}^{r_a}p_i^{\beta_i - \alpha_i}) \cdot \displaystyle(\prod_{i = r_a + 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1))</tex>, а значит <math>\varphi(a)\,|\, \varphi(b)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Для любого натурального числа <math>n</math> выполнено равенство <math>\displaystyle n = \sum_{d | n} \varphi(d)</math><br />
<br />
|proof = Данную теорему можно доказать "напролом", пользуясь формулой для <math>\varphi(d)</math>, а можно более элегантно:<br />
<br />
Рассмотрим <math>n</math> дробей <math>\frac{1}{n}, \frac{2}{n}, \dots , \frac{n}{n}</math>. Каждую дробь представим в виде несократимой дроби <math>\frac{p}{q}</math>.<br />
Заметим, что множество значений <math>q</math> {{---}} это множество делителей числа <math>n</math>. Так как дробь <math>\frac{p}{q}</math> несократима, то <math>p</math> и <math>q</math> взаимно просты. Зная, что <math>p \leq q</math>, легко понять, что всего дробей со знаменателем <math>q</math> ровно <math>\varphi(q)</math>. Так как, все <math>n</math> дробей мы представили в несократимом виде, где знаменатель является делителем <math>n</math>, то <math>\displaystyle \sum_{d | n} \varphi(d) = n</math>, так как всего дробей <math>n</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
:<br />
<br />
{{Теорема<br />
|about = Обобщённая мультипликативность<br />
<br />
|statement = Пусть <math>n</math> и <math>m</math> {{---}} любые два натуральных числа, а <math>d = (n,\ m)</math>, тогда:<br />
: <math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n)\cdot\frac{d}{\varphi(d)}</math><br />
<br />
|proof = <br />
<br />
Пусть <math>(m,\,n)=d,</math> тогда <math>m = m'd, \; n = n'd,</math> причем в общем случае <math>(m',\,d) \neq 1</math> и <math>(n',\,d) \neq 1.</math> Поэтому можно записать:<br />
:<math>d = d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}},</math><br />
:<math>m' = d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r},</math><br />
:<math>n' = d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}.</math><br />
Здесь первые <math>k</math> делителей <math>d</math> являются также делителями <math>m',</math> а последние <math>K-k</math> делителей <math>d</math> являются делителями <math>n'.</math> Распишем:<br />
:<math>\varphi(mn)= \varphi(d^2 \cdot m'n')<br />
= \varphi((d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}})^2 \cdot d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r} \cdot d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}).</math><br />
В силу мультипликативности функции Эйлера, а также с учётом формулы<br />
:<math>\varphi(p^n) = p^n(1-\frac{1}{p}),</math><br />
где <math>p</math> — простое, получаем:<br />
:<math><br />
\begin{align}<br />
\varphi(mn)<br />
<br />
&= d_1^{\alpha_1+\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_k^{\alpha_k+\delta_k}\left(1-\frac{1}{d_k}\right) \cdot p_1^{\beta_1}\left(1-\frac{1}{p_1}\right) \cdot\ldots\cdot p_r^{\beta_r}\left(1-\frac{1}{p_r}\right) \cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\delta_{K}}\left(1-\frac{1}{d_{K}}\right)\times \\<br />
<br />
&\; \times \; d_{k+1}^{\gamma_{k+1}+\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\gamma_{K}+\delta_{K}}\left(1-\frac{1}{d_{K}}\right) \cdot q_1^{\varepsilon_1}\left(1-\frac{1}{q_1}\right) \cdot\ldots\cdot q_s^{\varepsilon_s}\left(1-\frac{1}{q_s}\right) \cdot d_1^{\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right)\times \\<br />
<br />
&\; \times \; \frac{1}{\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot \left(1-\frac{1}{d_K}\right)}<br />
\end{align}<br />
</math><br />
В первой строке записано <math>\varphi(m),</math> во второй — <math>\varphi(n),</math> а третью можно представить, как <math>\frac{d}{\varphi(d)}.</math> Поэтому:<br />
:<math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n) \cdot \frac{d}{\varphi(d)}</math><br />
<br />
}}<br />
<br />
== Применение теоремы Эйлера в других задачах ==<br />
<br />
==== Задача об ожерельях ====<br />
<br />
{{Задача<br />
|definition=<br />
Требуется посчитать количество ожерелий из <tex>n</tex> бусинок, каждая из которых может быть покрашена в один из <tex> k </tex> цветов. При сравнении двух ожерелий их можно поворачивать, но не переворачивать (т.е. разрешается сделать циклический сдвиг).}}<br />
<br />
В ходе решения задачи мы приходим к формуле <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{i = 1}^{n} k^{\mathrm{gcd}(i,n)}</tex><br />
<br />
Мы можем улучшить эту формулу, если рассмотрим выражение <math>\mathrm{gcd}(i,n)</math>. Пусть <math>\mathrm{gcd}(i,n) = q</math>, тогда числа <math>i</math> и <math>n</math> оба делятся на <math>q</math> и больше не имеют общих делителей. Тогда <math>\mathrm{gcd}(\frac{i}{q},\frac{n}{q}) = 1</math>. Таких натуральных <math>i \in [1 ; n]</math> и имеющих <math>\mathrm{gcd}(i,n) = q</math> ровно <tex>\varphi\left(\dfrac{n}{q}\right)</tex>.<br />
<br />
Пользуясь функцией Эйлера, мы можем привести формулу к более лаконичному виду <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{q|n}\varphi\left(\dfrac{n}{q}\right)k^q</tex>.<br />
<br />
== Алгоритм ==<br />
Используя доказанные выше свойства функции, получим алгоритм нахождения <math>\varphi(n)</math> через факторизацию числа, работающий за <math>O(\sqrt{n})</math>. <br />
<br />
'''function''' phi (n):<br />
result = n <br />
i = 2<br />
<br />
'''while''' (i*i <= n):<br />
'''if''' n % i == 0:<br />
'''while''' n % i == 0:<br />
n /= i<br />
result -= result / i<br />
i++<br />
'''if''' (n > 1):<br />
result -= result/n<br />
'''return''' result<br />
<br />
== См. также ==<br />
* [[Задача об ожерельях]]<br />
<br />
== Ссылки ==<br />
* [https://ru.wikipedia.org/wiki/Функция_Эйлера Wikipedia {{---}} Функция Эйлера]<br />
* [https://e-maxx.ru/algo/euler_function Алгоритм нахождения функции Эйлера]<br />
* [https://wikichi.ru/wiki/Divisor_function Функция <math>\sigma</math>]</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=75652Обсуждение участника:MetaMockery2020-12-26T08:27:12Z<p>MetaMockery: /* Функция Эйлера */</p>
<hr />
<div>== Функция Эйлера ==<br />
<br />
{{Определение<br />
|definition=<br />
''Функция Эйлера'' <tex>\varphi (n) </tex> {{---}} определяется как количество натуральных чисел, не превосходящих <tex>n</tex> и взаимно простых с <tex>n</tex>.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Функция <tex>f : \mathbb{N} \to \mathbb{Z} </tex> называется ''мультипликативной'', если <tex>f(mn) = f(m)f(n)</tex> для любых взаимно простых <tex>m, n</tex>.<br />
}}<br />
<br />
{{Теорема<br />
|about = Мультипликативность функции Эйлера<br />
|statement = Для любых взаимно простых чисел <tex>m, n</tex> <br />
: <math>\varphi(mn)=\varphi(m)\varphi(n)</math><br />
|proof =<br />
Запишем <math>n \cdot m</math> натуральных чисел, не превосходящих <math>n \cdot m</math>, в виде прямоугольной таблицы с <math>n</math> столбцами и <math>m</math> строками, располагая первые <math>n</math> чисел в первой строке, вторые <math>n</math> чисел во второй и т.д. <br />
<br />
Поскольку <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>. <br />
<br />
В данном доказательстве мы используем тот факт, что число <math>s</math> взаимно просто с натуральным <math>k</math> тогда и только тогда, когда остаток деления <math>s</math> на <math>k</math> тоже взаимно прост с <math>k</math>. Данный факт довольно очевиден и используется в [https://e-maxx.ru/algo/euclid_algorithm Алгоритме Евклида].<br />
<br />
Теперь приступим непосредственно к доказательству. Число находящееся в <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> столбцов.<br />
<br />
Перед тем как продолжить доказательство, давайте рассмотрим небольшое утверждение. Пусть нам даны <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>, причем каждый остаток получается ровно из одного из членов прогрессии.<br />
<br />
Воспользуемся данным утверждением, подставив разность арифметической прогресии <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>, что и требовалось доказать.<br />
<br />
<br />
}}<br />
<br />
== Функции <tex>\sigma(n)</tex>, <tex>\tau(n)</tex> и <tex>\varphi(n)</tex>, их мультипликативность и значения ==<br />
<br />
Каноническое разложение числа <tex>\displaystyle n = \prod_{i=1}^{r}p_i^{s_i} </tex><br />
<br />
==== Функция <tex>\sigma(n)</tex> ====<br />
<br />
Функция <tex>\sigma : \mathbb{N} \to \mathbb{N} </tex> определяется как сумма делителей натурального числа <tex>n</tex>:<br />
<center><tex>\displaystyle\sigma(n) = \sum_{d | n}d </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\sigma(n)</tex> мультипликативна:<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\sigma(p) = p + 1</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\sigma(p^s) = \sum_{k=0}^{s}p^k = \frac{p^{s + 1} - 1}{p - 1} </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \sigma (n) = \prod_{i = 1}^{r}{\frac{p_{i}^{s_i+1}-1} {p_{i}-1}} </tex></center><br />
<br />
==== Функция <tex>\tau(n)</tex> ====<br />
<br />
Функция <tex>\tau: \mathbb{N} \to \mathbb{N} </tex> определяется как число положительных делителей натурального числа <tex>n</tex>: <br />
<center><tex>\displaystyle\tau(n) = \sum_{d | n}1 </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\tau(n)</tex> мультипликативна:<br />
<center><math>\tau(mn)=\tau(m)\tau(n)</math></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\tau(p) = 2</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\tau(p^s) = s + 1 </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \tau(n) = \prod_{i = 1}^{r}(s_i + 1) </tex></center><br />
<br />
==== Функция <tex>\varphi(n)</tex> ====<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\varphi(p) = p - 1</tex>. На некоторую степень <math>p</math> формулу можно обобщить:<br />
<center><tex>\displaystyle\varphi(p^s) = p^s - p^{s - 1} </tex></center><br />
Обосновывается следующим образом: Все не взаимно простые с <math>p^s</math> числа в диапазоне от 1 до <math>p^s</math>, очевидно, кратны <math>p</math>. Всего таких чисел <math>p^{s - 1}</math>.<br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i}(1 - \frac{1}{p_i}) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex></center><br />
<br />
== Малая теорема Ферма и теорема Эйлера ==<br />
<br />
{{Теорема<br />
|about= Теорема Эйлера<br />
<br />
|statement = Если <math>n</math> и <math>a</math> {{---}} взаимно простые целые числа, то <math>a^{\varphi(n)} \equiv 1 \ (mod \ n)</math><br />
<br />
|proof =<br />
Число <math>\overline{x}</math> называется вычетом по модулю <math>n</math>, если <math>\overline{x} \equiv x \ (mod \ n)</math>. Вычет <math>\overline{x}</math> называется обратимым вычетом, если существует вычет <math>\overline{y}</math>, такой что <math>\overline{x}\overline{y} \equiv 1 \ (mod \ n)</math>. Заметим, что вычет <math>\overline{x}</math> обратим тогда и только тогда, когда <math>\overline{x}</math> и <math>n</math> взаимно просты. Это обосновывается тем, что данное выражение можно представить в виде [https://e-maxx.ru/algo/diofant_2_equation линейного диофантово уравнения второго порядка] <math>\overline{x}\cdot\overline{y} + m \cdot n = 1</math>. Как видно из статьи, решение существует только при <math>(\overline{x}, n) = 1</math>. В таком случае, у числа <math>n</math> существует всего <math>\varphi(n)</math> обратимых вычетов. Пусть <math>\mathbb{Z}_{n}^{*}</math> {{---}} множество всех обратимых вычетов по модулю <math>n</math>.<br />
<br />
Рассмотрим вычеты по модулю <math>n</math>. Так как <math>n</math> и <math>a</math> взаимно просты, то вычет <math>\overline{a}</math> обратим. Пусть <math>\overline{b_1}, \overline{b_2}, \dots , \overline{b_{\varphi(n)}}</math> {{---}} все обратимые вычеты по модулю <math>n</math>. Тогда вычет <math>\overline{b} = \overline{b_1}\overline{b_2}\dots\overline{b_{\varphi(n)}}</math>, равный произведению всех обратимых вычетов, тоже обратим. Заметим, что отображение <math>\mathbb{Z}_{n}^{*} \to \mathbb{Z}_{n}^{*}</math>, заданное формулой <math>\overline{x} \mapsto \overline{a}\cdot\overline{x}</math> является биекцией. Действительно, мы просто умножаем каждый остаток на какую-то константу, от этого множество вычетов не изменится. В таком случае в выражении <math> \overline{a}^{\varphi(n)}\overline{b} = (\overline{a} \overline{b_1}) \dots (\overline{a} \overline{b_{\varphi(n)}}) </math>, в правой части стоит произведение всех обратимых вычетов, но взятое в другом порядке. Тогда <math>\overline{a}^{\varphi(n)}\overline{b} = \overline{b}</math>. Умножая обе части на вычет, обратный к <math>\overline{b}</math>, получим, что <math>\overline{a}^{\varphi(n)} \equiv 1 \ (mod \ n) </math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
Следствием теоремы Эйлера является малая теорема Ферма. У нее также есть доказательство без использования более общей теоремы Эйлера, однако его мы приводить не будем.<br />
<br />
<br />
{{Теорема<br />
|about = Малая теорема Ферма<br />
<br />
|statement = Если целое число <math>a</math> и простое число <math>p</math> {{---}} взаимно просты, то <math>a^{p - 1} \equiv 1 \ (mod \ p)</math><br />
<br />
|proof = Так как <math>p</math> {{---}} простое, то <math>\varphi(p) = p - 1</math>. Воспользуемся теоремой Эйлера, тогда <math>a^{\varphi(p)} = a^{p - 1} \equiv 1 \ (mod \ p)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
== Различные свойства функции Эйлера ==<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Если для каких-то натуральных чисел <math>a</math> и <math>b</math> верно, что <math>a\,|\,b</math>, тогда верно и <math>\varphi(a)\,|\, \varphi(b)</math><br />
<br />
|proof = <br />
Воспользуемся формулой для <tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i - 1}(p_i - 1) </tex>.<br />
<br />
:<math>a = p_1^{\alpha_1} \cdot\ldots\cdot p_{r_a}^{\alpha_{r_a}},</math><br />
:<math>b = p_1^{\beta_1} \cdot\ldots\cdot p_{r_b}^{\beta_{r_b}}</math><br />
<br />
При этом, так как <math>a\,|\,b</math>, то <math>r_a \leq r_b</math>, а также <math>\forall i \in [1\, ;\, r_a] \ \alpha_i \leq \beta_i</math><br />
<br />
<math></math><br />
<br />
Значит <tex>\displaystyle\frac{\varphi(b)}{\varphi(a)}</tex><tex>\displaystyle = \frac{\displaystyle\prod_{i = 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1)}{\displaystyle\prod_{i = 1}^{r_a}p_i^{\alpha_i - 1}(p_i - 1)} = \displaystyle(\prod_{i = 1}^{r_a}p_i^{\beta_i - \alpha_i}) \cdot \displaystyle(\prod_{i = r_a + 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1))</tex>, а значит <math>\varphi(a)\,|\, \varphi(b)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Для любого натурального числа <math>n</math> выполнено равенство <math>\displaystyle n = \sum_{d | n} \varphi(d)</math><br />
<br />
|proof = Данную теорему можно доказать "напролом", пользуясь формулой для <math>\varphi(d)</math>, а можно более элегантно:<br />
<br />
Рассмотрим <math>n</math> дробей <math>\frac{1}{n}, \frac{2}{n}, \dots , \frac{n}{n}</math>. Каждую дробь представим в виде несократимой дроби <math>\frac{p}{q}</math>.<br />
Заметим, что множество значений <math>q</math> {{---}} это множество делителей числа <math>n</math>. Так как дробь <math>\frac{p}{q}</math> несократима, то <math>p</math> и <math>q</math> взаимно просты. Зная, что <math>p \leq q</math>, легко понять, что всего дробей со знаменателем <math>q</math> ровно <math>\varphi(q)</math>. Так как, все <math>n</math> дробей мы представили в несократимом виде, где знаменатель является делителем <math>n</math>, то <math>\displaystyle \sum_{d | n} \varphi(d) = n</math>, так как всего дробей <math>n</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
:<br />
<br />
{{Теорема<br />
|about = Обобщённая мультипликативность<br />
<br />
|statement = Пусть <math>n</math> и <math>m</math> {{---}} любые два натуральных числа, а <math>d = (n,\ m)</math>, тогда:<br />
: <math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n)\cdot\frac{d}{\varphi(d)}</math><br />
<br />
|proof = <br />
<br />
Пусть <math>(m,\,n)=d,</math> тогда <math>m = m'd, \; n = n'd,</math> причем в общем случае <math>(m',\,d) \neq 1</math> и <math>(n',\,d) \neq 1.</math> Поэтому можно записать:<br />
:<math>d = d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}},</math><br />
:<math>m' = d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r},</math><br />
:<math>n' = d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}.</math><br />
Здесь первые <math>k</math> делителей <math>d</math> являются также делителями <math>m',</math> а последние <math>K-k</math> делителей <math>d</math> являются делителями <math>n'.</math> Распишем:<br />
:<math>\varphi(mn)= \varphi(d^2 \cdot m'n')<br />
= \varphi((d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}})^2 \cdot d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r} \cdot d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}).</math><br />
В силу мультипликативности функции Эйлера, а также с учётом формулы<br />
:<math>\varphi(p^n) = p^n(1-\frac{1}{p}),</math><br />
где <math>p</math> — простое, получаем:<br />
:<math><br />
\begin{align}<br />
\varphi(mn)<br />
<br />
&= d_1^{\alpha_1+\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_k^{\alpha_k+\delta_k}\left(1-\frac{1}{d_k}\right) \cdot p_1^{\beta_1}\left(1-\frac{1}{p_1}\right) \cdot\ldots\cdot p_r^{\beta_r}\left(1-\frac{1}{p_r}\right) \cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\delta_{K}}\left(1-\frac{1}{d_{K}}\right)\times \\<br />
<br />
&\; \times \; d_{k+1}^{\gamma_{k+1}+\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\gamma_{K}+\delta_{K}}\left(1-\frac{1}{d_{K}}\right) \cdot q_1^{\varepsilon_1}\left(1-\frac{1}{q_1}\right) \cdot\ldots\cdot q_s^{\varepsilon_s}\left(1-\frac{1}{q_s}\right) \cdot d_1^{\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right)\times \\<br />
<br />
&\; \times \; \frac{1}{\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot \left(1-\frac{1}{d_K}\right)}<br />
\end{align}<br />
</math><br />
В первой строке записано <math>\varphi(m),</math> во второй — <math>\varphi(n),</math> а третью можно представить, как <math>\frac{d}{\varphi(d)}.</math> Поэтому:<br />
:<math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n) \cdot \frac{d}{\varphi(d)}</math><br />
<br />
}}<br />
<br />
== Применение теоремы Эйлера в других задачах ==<br />
<br />
==== Задача об ожерельях ====<br />
<br />
{{Задача<br />
|definition=<br />
Требуется посчитать количество ожерелий из <tex>n</tex> бусинок, каждая из которых может быть покрашена в один из <tex> k </tex> цветов. При сравнении двух ожерелий их можно поворачивать, но не переворачивать (т.е. разрешается сделать циклический сдвиг).}}<br />
<br />
В ходе решения задачи мы приходим к формуле <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{i = 1}^{n} k^{\mathrm{gcd}(i,n)}</tex><br />
<br />
Мы можем улучшить эту формулу, если рассмотрим выражение <math>\mathrm{gcd}(i,n)</math>. Пусть <math>\mathrm{gcd}(i,n) = q</math>, тогда числа <math>i</math> и <math>n</math> оба делятся на <math>q</math> и больше не имеют общих делителей. Тогда <math>\mathrm{gcd}(\frac{i}{q},\frac{n}{q}) = 1</math>. Таких натуральных <math>i \in [1 ; n]</math> и имеющих <math>\mathrm{gcd}(i,n) = q</math> ровно <tex>\varphi\left(\dfrac{n}{q}\right)</tex>.<br />
<br />
Пользуясь функцией Эйлера, мы можем привести формулу к финальному виду <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{q|n}\varphi\left(\dfrac{n}{q}\right)k^q</tex>.<br />
<br />
== Алгоритм ==<br />
Используя доказанные выше свойства функции, получим алгоритм нахождения <math>\varphi(n)</math> через факторизацию числа, работающий за <math>O(\sqrt{n})</math>. <br />
<br />
'''function''' phi (n):<br />
result = n <br />
i = 2<br />
<br />
'''while''' (i*i <= n):<br />
'''if''' n % i == 0:<br />
'''while''' n % i == 0:<br />
n /= i<br />
result -= result / i<br />
i++<br />
'''if''' (n > 1):<br />
result -= result/n<br />
'''return''' result<br />
<br />
== См. также ==<br />
* [[Задача об ожерельях]]<br />
<br />
== Ссылки ==<br />
* [https://ru.wikipedia.org/wiki/Функция_Эйлера Wikipedia {{---}} Функция Эйлера]<br />
* [https://e-maxx.ru/algo/euler_function Алгоритм нахождения функции Эйлера]<br />
* [https://wikichi.ru/wiki/Divisor_function Функция <math>\sigma</math>]</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=75651Обсуждение участника:MetaMockery2020-12-26T08:23:04Z<p>MetaMockery: /* Малая теорема Ферма и теорема Эйлера */</p>
<hr />
<div>== Функция Эйлера ==<br />
<br />
{{Определение<br />
|definition=<br />
''Функция Эйлера'' <tex>\varphi (n) </tex> {{---}} определяется как количество натуральных чисел, не превосходящих <tex>n</tex> и взаимно простых с <tex>n</tex>.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Функция <tex>f : \mathbb{N} \to \mathbb{Z} </tex> называется ''мультипликативной'', если <tex>f(mn) = f(m)f(n)</tex> для любых взаимно простых <tex>m, n</tex>.<br />
}}<br />
<br />
{{Теорема<br />
|about = Мультипликативность функции Эйлера<br />
|statement = Для любых взаимно простых чисел <tex>m, n</tex> <br />
: <math>\varphi(mn)=\varphi(m)\varphi(n)</math><br />
|proof =<br />
Запишем <math>n \cdot m</math> натуральных чисел, не превосходящих <math>n \cdot m</math>, в виде прямоугольной таблицы с <math>n</math> столбцами и <math>m</math> строками, располагая первые <math>n</math> чисел в первой строке, вторые <math>n</math> чисел во второй и т.д. <br />
<br />
Поскольку <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>. <br />
<br />
В данном доказательстве мы испольуем тот факт, что число <math>s</math> взаимно просто с натуральным <math>k</math> тогда и только тогда, когда остаток деления <math>s</math> на <math>k</math> тоже взаимно прост с <math>k</math>.<br />
<br />
Теперь приступим невосредственно к доказательству. Число находящееся в <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> столбцов.<br />
<br />
Перед тем как продолжить доказательство, давайте рассмотрим небольшое утверждение. Пусть нам даны <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>, причем каждый остаток получается ровно из одного из членов прогрессии.<br />
<br />
Воспользуемся данным утверждением, подставив разность арифметиечской прогресии <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>, что и требовалось доказать.<br />
<br />
<br />
}}<br />
<br />
== Функции <tex>\sigma(n)</tex>, <tex>\tau(n)</tex> и <tex>\varphi(n)</tex>, их мультипликативность и значения ==<br />
<br />
Каноническое разложение числа <tex>\displaystyle n = \prod_{i=1}^{r}p_i^{s_i} </tex><br />
<br />
==== Функция <tex>\sigma(n)</tex> ====<br />
<br />
Функция <tex>\sigma : \mathbb{N} \to \mathbb{N} </tex> определяется как сумма делителей натурального числа <tex>n</tex>:<br />
<center><tex>\displaystyle\sigma(n) = \sum_{d | n}d </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\sigma(n)</tex> мультипликативна:<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\sigma(p) = p + 1</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\sigma(p^s) = \sum_{k=0}^{s}p^k = \frac{p^{s + 1} - 1}{p - 1} </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \sigma (n) = \prod_{i = 1}^{r}{\frac{p_{i}^{s_i+1}-1} {p_{i}-1}} </tex></center><br />
<br />
==== Функция <tex>\tau(n)</tex> ====<br />
<br />
Функция <tex>\tau: \mathbb{N} \to \mathbb{N} </tex> определяется как число положительных делителей натурального числа <tex>n</tex>: <br />
<center><tex>\displaystyle\tau(n) = \sum_{d | n}1 </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\tau(n)</tex> мультипликативна:<br />
<center><math>\tau(mn)=\tau(m)\tau(n)</math></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\tau(p) = 2</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\tau(p^s) = s + 1 </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \tau(n) = \prod_{i = 1}^{r}(s_i + 1) </tex></center><br />
<br />
==== Функция <tex>\varphi(n)</tex> ====<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\varphi(p) = p - 1</tex>. На некоторую степень <math>p</math> формулу можно обобщить:<br />
<center><tex>\displaystyle\varphi(p^s) = p^s - p^{s - 1} </tex></center><br />
Обосновывается следующим образом: Все не взаимно простые с <math>p^s</math> числа в диапазоне от 1 до <math>p^s</math>, очевидно, кратны <math>p</math>. Всего таких чисел <math>p^{s - 1}</math>.<br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i}(1 - \frac{1}{p_i}) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex></center><br />
<br />
== Малая теорема Ферма и теорема Эйлера ==<br />
<br />
{{Теорема<br />
|about= Теорема Эйлера<br />
<br />
|statement = Если <math>n</math> и <math>a</math> {{---}} взаимно простые целые числа, то <math>a^{\varphi(n)} \equiv 1 \ (mod \ n)</math><br />
<br />
|proof =<br />
Число <math>\overline{x}</math> называется вычетом по модулю <math>n</math>, если <math>\overline{x} \equiv x \ (mod \ n)</math>. Вычет <math>\overline{x}</math> называется обратимым вычетом, если существует вычет <math>\overline{y}</math>, такой что <math>\overline{x}\overline{y} \equiv 1 \ (mod \ n)</math>. Заметим, что вычет <math>\overline{x}</math> обратим тогда и только тогда, когда <math>\overline{x}</math> и <math>n</math> взаимно просты. Это обосновывается тем, что данное выражение можно представить в виде [https://e-maxx.ru/algo/diofant_2_equation линейного диофантово уравнения второго порядка] <math>\overline{x}\cdot\overline{y} + m \cdot n = 1</math>. Как видно из статьи, решение существует только при <math>(\overline{x}, n) = 1</math>. В таком случае, у числа <math>n</math> существует всего <math>\varphi(n)</math> обратимых вычетов. Пусть <math>\mathbb{Z}_{n}^{*}</math> {{---}} множество всех обратимых вычетов по модулю <math>n</math>.<br />
<br />
Рассмотрим вычеты по модулю <math>n</math>. Так как <math>n</math> и <math>a</math> взаимно просты, то вычет <math>\overline{a}</math> обратим. Пусть <math>\overline{b_1}, \overline{b_2}, \dots , \overline{b_{\varphi(n)}}</math> {{---}} все обратимые вычеты по модулю <math>n</math>. Тогда вычет <math>\overline{b} = \overline{b_1}\overline{b_2}\dots\overline{b_{\varphi(n)}}</math>, равный произведению всех обратимых вычетов, тоже обратим. Заметим, что отображение <math>\mathbb{Z}_{n}^{*} \to \mathbb{Z}_{n}^{*}</math>, заданное формулой <math>\overline{x} \mapsto \overline{a}\cdot\overline{x}</math> является биекцией. Действительно, мы просто умножаем каждый остаток на какую-то константу, от этого множество вычетов не изменится. В таком случае в выражении <math> \overline{a}^{\varphi(n)}\overline{b} = (\overline{a} \overline{b_1}) \dots (\overline{a} \overline{b_{\varphi(n)}}) </math>, в правой части стоит произведение всех обратимых вычетов, но взятое в другом порядке. Тогда <math>\overline{a}^{\varphi(n)}\overline{b} = \overline{b}</math>. Умножая обе части на вычет, обратный к <math>\overline{b}</math>, получим, что <math>\overline{a}^{\varphi(n)} \equiv 1 \ (mod \ n) </math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
Следствием теоремы Эйлера является малая теорема Ферма. У нее также есть доказательство без использования более общей теоремы Эйлера, однако его мы приводить не будем.<br />
<br />
<br />
{{Теорема<br />
|about = Малая теорема Ферма<br />
<br />
|statement = Если целое число <math>a</math> и простое число <math>p</math> {{---}} взаимно просты, то <math>a^{p - 1} \equiv 1 \ (mod \ p)</math><br />
<br />
|proof = Так как <math>p</math> {{---}} простое, то <math>\varphi(p) = p - 1</math>. Воспользуемся теоремой Эйлера, тогда <math>a^{\varphi(p)} = a^{p - 1} \equiv 1 \ (mod \ p)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
== Различные свойства функции Эйлера ==<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Если для каких-то натуральных чисел <math>a</math> и <math>b</math> верно, что <math>a\,|\,b</math>, тогда верно и <math>\varphi(a)\,|\, \varphi(b)</math><br />
<br />
|proof = <br />
Воспользуемся формулой для <tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i - 1}(p_i - 1) </tex>.<br />
<br />
:<math>a = p_1^{\alpha_1} \cdot\ldots\cdot p_{r_a}^{\alpha_{r_a}},</math><br />
:<math>b = p_1^{\beta_1} \cdot\ldots\cdot p_{r_b}^{\beta_{r_b}}</math><br />
<br />
При этом, так как <math>a\,|\,b</math>, то <math>r_a \leq r_b</math>, а также <math>\forall i \in [1\, ;\, r_a] \ \alpha_i \leq \beta_i</math><br />
<br />
<math></math><br />
<br />
Значит <tex>\displaystyle\frac{\varphi(b)}{\varphi(a)}</tex><tex>\displaystyle = \frac{\displaystyle\prod_{i = 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1)}{\displaystyle\prod_{i = 1}^{r_a}p_i^{\alpha_i - 1}(p_i - 1)} = \displaystyle(\prod_{i = 1}^{r_a}p_i^{\beta_i - \alpha_i}) \cdot \displaystyle(\prod_{i = r_a + 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1))</tex>, а значит <math>\varphi(a)\,|\, \varphi(b)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Для любого натурального числа <math>n</math> выполнено равенство <math>\displaystyle n = \sum_{d | n} \varphi(d)</math><br />
<br />
|proof = Данную теорему можно доказать "напролом", пользуясь формулой для <math>\varphi(d)</math>, а можно более элегантно:<br />
<br />
Рассмотрим <math>n</math> дробей <math>\frac{1}{n}, \frac{2}{n}, \dots , \frac{n}{n}</math>. Каждую дробь представим в виде несократимой дроби <math>\frac{p}{q}</math>.<br />
Заметим, что множество значений <math>q</math> {{---}} это множество делителей числа <math>n</math>. Так как дробь <math>\frac{p}{q}</math> несократима, то <math>p</math> и <math>q</math> взаимно просты. Зная, что <math>p \leq q</math>, легко понять, что всего дробей со знаменателем <math>q</math> ровно <math>\varphi(q)</math>. Так как, все <math>n</math> дробей мы представили в несократимом виде, где знаменатель является делителем <math>n</math>, то <math>\displaystyle \sum_{d | n} \varphi(d) = n</math>, так как всего дробей <math>n</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
:<br />
<br />
{{Теорема<br />
|about = Обобщённая мультипликативность<br />
<br />
|statement = Пусть <math>n</math> и <math>m</math> {{---}} любые два натуральных числа, а <math>d = (n,\ m)</math>, тогда:<br />
: <math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n)\cdot\frac{d}{\varphi(d)}</math><br />
<br />
|proof = <br />
<br />
Пусть <math>(m,\,n)=d,</math> тогда <math>m = m'd, \; n = n'd,</math> причем в общем случае <math>(m',\,d) \neq 1</math> и <math>(n',\,d) \neq 1.</math> Поэтому можно записать:<br />
:<math>d = d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}},</math><br />
:<math>m' = d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r},</math><br />
:<math>n' = d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}.</math><br />
Здесь первые <math>k</math> делителей <math>d</math> являются также делителями <math>m',</math> а последние <math>K-k</math> делителей <math>d</math> являются делителями <math>n'.</math> Распишем:<br />
:<math>\varphi(mn)= \varphi(d^2 \cdot m'n')<br />
= \varphi((d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}})^2 \cdot d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r} \cdot d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}).</math><br />
В силу мультипликативности функции Эйлера, а также с учётом формулы<br />
:<math>\varphi(p^n) = p^n(1-\frac{1}{p}),</math><br />
где <math>p</math> — простое, получаем:<br />
:<math><br />
\begin{align}<br />
\varphi(mn)<br />
<br />
&= d_1^{\alpha_1+\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_k^{\alpha_k+\delta_k}\left(1-\frac{1}{d_k}\right) \cdot p_1^{\beta_1}\left(1-\frac{1}{p_1}\right) \cdot\ldots\cdot p_r^{\beta_r}\left(1-\frac{1}{p_r}\right) \cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\delta_{K}}\left(1-\frac{1}{d_{K}}\right)\times \\<br />
<br />
&\; \times \; d_{k+1}^{\gamma_{k+1}+\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\gamma_{K}+\delta_{K}}\left(1-\frac{1}{d_{K}}\right) \cdot q_1^{\varepsilon_1}\left(1-\frac{1}{q_1}\right) \cdot\ldots\cdot q_s^{\varepsilon_s}\left(1-\frac{1}{q_s}\right) \cdot d_1^{\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right)\times \\<br />
<br />
&\; \times \; \frac{1}{\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot \left(1-\frac{1}{d_K}\right)}<br />
\end{align}<br />
</math><br />
В первой строке записано <math>\varphi(m),</math> во второй — <math>\varphi(n),</math> а третью можно представить, как <math>\frac{d}{\varphi(d)}.</math> Поэтому:<br />
:<math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n) \cdot \frac{d}{\varphi(d)}</math><br />
<br />
}}<br />
<br />
== Применение теоремы Эйлера в других задачах ==<br />
<br />
==== Задача об ожерельях ====<br />
<br />
{{Задача<br />
|definition=<br />
Требуется посчитать количество ожерелий из <tex>n</tex> бусинок, каждая из которых может быть покрашена в один из <tex> k </tex> цветов. При сравнении двух ожерелий их можно поворачивать, но не переворачивать (т.е. разрешается сделать циклический сдвиг).}}<br />
<br />
В ходе решения задачи мы приходим к формуле <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{i = 1}^{n} k^{\mathrm{gcd}(i,n)}</tex><br />
<br />
Мы можем улучшить эту формулу, если рассмотрим выражение <math>\mathrm{gcd}(i,n)</math>. Пусть <math>\mathrm{gcd}(i,n) = q</math>, тогда числа <math>i</math> и <math>n</math> оба делятся на <math>q</math> и больше не имеют общих делителей. Тогда <math>\mathrm{gcd}(\frac{i}{q},\frac{n}{q}) = 1</math>. Таких натуральных <math>i \in [1 ; n]</math> и имеющих <math>\mathrm{gcd}(i,n) = q</math> ровно <tex>\varphi\left(\dfrac{n}{q}\right)</tex>.<br />
<br />
Пользуясь функцией Эйлера, мы можем привести формулу к финальному виду <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{q|n}\varphi\left(\dfrac{n}{q}\right)k^q</tex>.<br />
<br />
== Алгоритм ==<br />
Используя доказанные выше свойства функции, получим алгоритм нахождения <math>\varphi(n)</math> через факторизацию числа, работающий за <math>O(\sqrt{n})</math>. <br />
<br />
'''function''' phi (n):<br />
result = n <br />
i = 2<br />
<br />
'''while''' (i*i <= n):<br />
'''if''' n % i == 0:<br />
'''while''' n % i == 0:<br />
n /= i<br />
result -= result / i<br />
i++<br />
'''if''' (n > 1):<br />
result -= result/n<br />
'''return''' result<br />
<br />
== См. также ==<br />
* [[Задача об ожерельях]]<br />
<br />
== Ссылки ==<br />
* [https://ru.wikipedia.org/wiki/Функция_Эйлера Wikipedia {{---}} Функция Эйлера]<br />
* [https://e-maxx.ru/algo/euler_function Алгоритм нахождения функции Эйлера]<br />
* [https://wikichi.ru/wiki/Divisor_function Функция <math>\sigma</math>]</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=75635Обсуждение участника:MetaMockery2020-12-25T22:02:18Z<p>MetaMockery: /* Функция \sigma(n) */</p>
<hr />
<div>== Функция Эйлера ==<br />
<br />
{{Определение<br />
|definition=<br />
''Функция Эйлера'' <tex>\varphi (n) </tex> {{---}} определяется как количество натуральных чисел, не превосходящих <tex>n</tex> и взаимно простых с <tex>n</tex>.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Функция <tex>f : \mathbb{N} \to \mathbb{Z} </tex> называется ''мультипликативной'', если <tex>f(mn) = f(m)f(n)</tex> для любых взаимно простых <tex>m, n</tex>.<br />
}}<br />
<br />
{{Теорема<br />
|about = Мультипликативность функции Эйлера<br />
|statement = Для любых взаимно простых чисел <tex>m, n</tex> <br />
: <math>\varphi(mn)=\varphi(m)\varphi(n)</math><br />
|proof =<br />
Запишем <math>n \cdot m</math> натуральных чисел, не превосходящих <math>n \cdot m</math>, в виде прямоугольной таблицы с <math>n</math> столбцами и <math>m</math> строками, располагая первые <math>n</math> чисел в первой строке, вторые <math>n</math> чисел во второй и т.д. <br />
<br />
Поскольку <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>. <br />
<br />
В данном доказательстве мы испольуем тот факт, что число <math>s</math> взаимно просто с натуральным <math>k</math> тогда и только тогда, когда остаток деления <math>s</math> на <math>k</math> тоже взаимно прост с <math>k</math>.<br />
<br />
Теперь приступим невосредственно к доказательству. Число находящееся в <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> столбцов.<br />
<br />
Перед тем как продолжить доказательство, давайте рассмотрим небольшое утверждение. Пусть нам даны <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>, причем каждый остаток получается ровно из одного из членов прогрессии.<br />
<br />
Воспользуемся данным утверждением, подставив разность арифметиечской прогресии <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>, что и требовалось доказать.<br />
<br />
<br />
}}<br />
<br />
== Функции <tex>\sigma(n)</tex>, <tex>\tau(n)</tex> и <tex>\varphi(n)</tex>, их мультипликативность и значения ==<br />
<br />
Каноническое разложение числа <tex>\displaystyle n = \prod_{i=1}^{r}p_i^{s_i} </tex><br />
<br />
==== Функция <tex>\sigma(n)</tex> ====<br />
<br />
Функция <tex>\sigma : \mathbb{N} \to \mathbb{N} </tex> определяется как сумма делителей натурального числа <tex>n</tex>:<br />
<center><tex>\displaystyle\sigma(n) = \sum_{d | n}d </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\sigma(n)</tex> мультипликативна:<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\sigma(p) = p + 1</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\sigma(p^s) = \sum_{k=0}^{s}p^k = \frac{p^{s + 1} - 1}{p - 1} </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \sigma (n) = \prod_{i = 1}^{r}{\frac{p_{i}^{s_i+1}-1} {p_{i}-1}} </tex></center><br />
<br />
==== Функция <tex>\tau(n)</tex> ====<br />
<br />
Функция <tex>\tau: \mathbb{N} \to \mathbb{N} </tex> определяется как число положительных делителей натурального числа <tex>n</tex>: <br />
<center><tex>\displaystyle\tau(n) = \sum_{d | n}1 </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\tau(n)</tex> мультипликативна:<br />
<center><math>\tau(mn)=\tau(m)\tau(n)</math></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\tau(p) = 2</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\tau(p^s) = s + 1 </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \tau(n) = \prod_{i = 1}^{r}(s_i + 1) </tex></center><br />
<br />
==== Функция <tex>\varphi(n)</tex> ====<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\varphi(p) = p - 1</tex>. На некоторую степень <math>p</math> формулу можно обобщить:<br />
<center><tex>\displaystyle\varphi(p^s) = p^s - p^{s - 1} </tex></center><br />
Обосновывается следующим образом: Все не взаимно простые с <math>p^s</math> числа в диапазоне от 1 до <math>p^s</math>, очевидно, кратны <math>p</math>. Всего таких чисел <math>p^{s - 1}</math>.<br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i}(1 - \frac{1}{p_i}) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex></center><br />
<br />
== Малая теорема Ферма и теорема Эйлера ==<br />
<br />
{{Теорема<br />
|about= Теорема Эйлера<br />
<br />
|statement = Если <math>n</math> и <math>a</math> - взаимно простые целые числа, то <math>a^{\varphi(n)} \equiv 1 \ (mod \ n)</math><br />
<br />
|proof =<br />
Число <math>\overline{x}</math> называется вычетом по модулю <math>n</math>, если <math>\overline{x} \equiv x \ (mod \ n)</math>. Вычет <math>\overline{x}</math> называется обратимым вычетом, если существует вычет <math>\overline{y}</math>, что <math>\overline{x}\overline{y} \equiv 1 \ (mod \ n)</math>. Заметим, что вычет <math>\overline{x}</math> обратим тогда и только тогда, когда <math>\overline{x}</math> и <math>n</math> взаимно просты. В таком случае, у числа <math>n</math> существует всего <math>\varphi(n)</math> обратимых вычетов. Пусть <math>\mathbb{Z}_{n}^{*}</math> - множество всех обратимых вычетов по модулю <math>n</math>.<br />
<br />
Рассмотрим вычеты по модулю <math>n</math>. Так как <math>n</math> и <math>a</math> взаимно просты, то вычет <math>\overline{a}</math> обратим. Пусть <math>\overline{b_1}, \overline{b_2}, \dots , \overline{b_{\varphi(n)}}</math> - все обратимые вычеты по модулю <math>n</math>. Тогда вычет <math>\overline{b} = \overline{b_1}\overline{b_2}\dots\overline{b_{\varphi(n)}}</math>, равный произведению всех обратимых вычетов, тоже обратим. Заметим, что отображение <math>\mathbb{Z}_{n}^{*} \to \mathbb{Z}_{n}^{*}</math>, заданное формулой <math>\overline{x} \mapsto \overline{a}\cdot\overline{x}</math> является биекцией. В таком случае в выражении <math> \overline{a}^{\varphi(n)}\overline{b} = (\overline{a} \overline{b_1}) \dots (\overline{a} \overline{b_{\varphi(n)}}) </math>, в правой части стоит произведение всех обратимых вычетов, но взятое в другом порядке. Тогда <math>\overline{a}^{\varphi(n)}\overline{b} = \overline{b}</math>. Умножая обе части на вычет, обратный к <math>\overline{b}</math>, получим, что <math>\overline{a}^{\varphi(n)} \equiv 1 \ (mod \ n) </math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
Следствием теоремы Эйлера является малая теорема Ферма. У нее также есть доказательство без использования более общей теоремы Эйлера, однако его мы приводить не будем.<br />
<br />
<br />
{{Теорема<br />
|about = Малая теорема Ферма<br />
<br />
|statement = Если целое число <math>a</math> и простое число <math>p</math> - взаимно просты, то <math>a^{p - 1} \equiv 1 \ (mod \ p)</math><br />
<br />
|proof = Так как <math>p</math> - простое, то <math>\varphi(p) = p - 1</math>. Воспользуемся теоремой Эйлера, тогда <math>a^{\varphi(p)} = a^{p - 1} \equiv 1 \ (mod \ p)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
== Различные свойства функции Эйлера ==<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Если для каких-то натуральных чисел <math>a</math> и <math>b</math> верно, что <math>a\,|\,b</math>, тогда верно и <math>\varphi(a)\,|\, \varphi(b)</math><br />
<br />
|proof = <br />
Воспользуемся формулой для <tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i - 1}(p_i - 1) </tex>.<br />
<br />
:<math>a = p_1^{\alpha_1} \cdot\ldots\cdot p_{r_a}^{\alpha_{r_a}},</math><br />
:<math>b = p_1^{\beta_1} \cdot\ldots\cdot p_{r_b}^{\beta_{r_b}}</math><br />
<br />
При этом, так как <math>a\,|\,b</math>, то <math>r_a \leq r_b</math>, а также <math>\forall i \in [1\, ;\, r_a] \ \alpha_i \leq \beta_i</math><br />
<br />
<math></math><br />
<br />
Значит <tex>\displaystyle\frac{\varphi(b)}{\varphi(a)}</tex><tex>\displaystyle = \frac{\displaystyle\prod_{i = 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1)}{\displaystyle\prod_{i = 1}^{r_a}p_i^{\alpha_i - 1}(p_i - 1)} = \displaystyle(\prod_{i = 1}^{r_a}p_i^{\beta_i - \alpha_i}) \cdot \displaystyle(\prod_{i = r_a + 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1))</tex>, а значит <math>\varphi(a)\,|\, \varphi(b)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Для любого натурального числа <math>n</math> выполнено равенство <math>\displaystyle n = \sum_{d | n} \varphi(d)</math><br />
<br />
|proof = Данную теорему можно доказать "напролом", пользуясь формулой для <math>\varphi(d)</math>, а можно более элегантно:<br />
<br />
Рассмотрим <math>n</math> дробей <math>\frac{1}{n}, \frac{2}{n}, \dots , \frac{n}{n}</math>. Каждую дробь представим в виде несократимой дроби <math>\frac{p}{q}</math>.<br />
Заметим, что множество значений <math>q</math> {{---}} это множество делителей числа <math>n</math>. Так как дробь <math>\frac{p}{q}</math> несократима, то <math>p</math> и <math>q</math> взаимно просты. Зная, что <math>p \leq q</math>, легко понять, что всего дробей со знаменателем <math>q</math> ровно <math>\varphi(q)</math>. Так как, все <math>n</math> дробей мы представили в несократимом виде, где знаменатель является делителем <math>n</math>, то <math>\displaystyle \sum_{d | n} \varphi(d) = n</math>, так как всего дробей <math>n</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
:<br />
<br />
{{Теорема<br />
|about = Обобщённая мультипликативность<br />
<br />
|statement = Пусть <math>n</math> и <math>m</math> {{---}} любые два натуральных числа, а <math>d = (n,\ m)</math>, тогда:<br />
: <math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n)\cdot\frac{d}{\varphi(d)}</math><br />
<br />
|proof = <br />
<br />
Пусть <math>(m,\,n)=d,</math> тогда <math>m = m'd, \; n = n'd,</math> причем в общем случае <math>(m',\,d) \neq 1</math> и <math>(n',\,d) \neq 1.</math> Поэтому можно записать:<br />
:<math>d = d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}},</math><br />
:<math>m' = d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r},</math><br />
:<math>n' = d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}.</math><br />
Здесь первые <math>k</math> делителей <math>d</math> являются также делителями <math>m',</math> а последние <math>K-k</math> делителей <math>d</math> являются делителями <math>n'.</math> Распишем:<br />
:<math>\varphi(mn)= \varphi(d^2 \cdot m'n')<br />
= \varphi((d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}})^2 \cdot d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r} \cdot d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}).</math><br />
В силу мультипликативности функции Эйлера, а также с учётом формулы<br />
:<math>\varphi(p^n) = p^n(1-\frac{1}{p}),</math><br />
где <math>p</math> — простое, получаем:<br />
:<math><br />
\begin{align}<br />
\varphi(mn)<br />
<br />
&= d_1^{\alpha_1+\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_k^{\alpha_k+\delta_k}\left(1-\frac{1}{d_k}\right) \cdot p_1^{\beta_1}\left(1-\frac{1}{p_1}\right) \cdot\ldots\cdot p_r^{\beta_r}\left(1-\frac{1}{p_r}\right) \cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\delta_{K}}\left(1-\frac{1}{d_{K}}\right)\times \\<br />
<br />
&\; \times \; d_{k+1}^{\gamma_{k+1}+\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\gamma_{K}+\delta_{K}}\left(1-\frac{1}{d_{K}}\right) \cdot q_1^{\varepsilon_1}\left(1-\frac{1}{q_1}\right) \cdot\ldots\cdot q_s^{\varepsilon_s}\left(1-\frac{1}{q_s}\right) \cdot d_1^{\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right)\times \\<br />
<br />
&\; \times \; \frac{1}{\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot \left(1-\frac{1}{d_K}\right)}<br />
\end{align}<br />
</math><br />
В первой строке записано <math>\varphi(m),</math> во второй — <math>\varphi(n),</math> а третью можно представить, как <math>\frac{d}{\varphi(d)}.</math> Поэтому:<br />
:<math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n) \cdot \frac{d}{\varphi(d)}</math><br />
<br />
}}<br />
<br />
== Применение теоремы Эйлера в других задачах ==<br />
<br />
==== Задача об ожерельях ====<br />
<br />
{{Задача<br />
|definition=<br />
Требуется посчитать количество ожерелий из <tex>n</tex> бусинок, каждая из которых может быть покрашена в один из <tex> k </tex> цветов. При сравнении двух ожерелий их можно поворачивать, но не переворачивать (т.е. разрешается сделать циклический сдвиг).}}<br />
<br />
В ходе решения задачи мы приходим к формуле <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{i = 1}^{n} k^{\mathrm{gcd}(i,n)}</tex><br />
<br />
Мы можем улучшить эту формулу, если рассмотрим выражение <math>\mathrm{gcd}(i,n)</math>. Пусть <math>\mathrm{gcd}(i,n) = q</math>, тогда числа <math>i</math> и <math>n</math> оба делятся на <math>q</math> и больше не имеют общих делителей. Тогда <math>\mathrm{gcd}(\frac{i}{q},\frac{n}{q}) = 1</math>. Таких натуральных <math>i \in [1 ; n]</math> и имеющих <math>\mathrm{gcd}(i,n) = q</math> ровно <tex>\varphi\left(\dfrac{n}{q}\right)</tex>.<br />
<br />
Пользуясь функцией Эйлера, мы можем привести формулу к финальному виду <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{q|n}\varphi\left(\dfrac{n}{q}\right)k^q</tex>.<br />
<br />
== Алгоритм ==<br />
Используя доказанные выше свойства функции, получим алгоритм нахождения <math>\varphi(n)</math> через факторизацию числа, работающий за <math>O(\sqrt{n})</math>. <br />
<br />
'''function''' phi (n):<br />
result = n <br />
i = 2<br />
<br />
'''while''' (i*i <= n):<br />
'''if''' n % i == 0:<br />
'''while''' n % i == 0:<br />
n /= i<br />
result -= result / i<br />
i++<br />
'''if''' (n > 1):<br />
result -= result/n<br />
'''return''' result<br />
<br />
== См. также ==<br />
* [[Задача об ожерельях]]<br />
<br />
== Ссылки ==<br />
* [https://ru.wikipedia.org/wiki/Функция_Эйлера Wikipedia {{---}} Функция Эйлера]<br />
* [https://e-maxx.ru/algo/euler_function Алгоритм нахождения функции Эйлера]<br />
* [https://wikichi.ru/wiki/Divisor_function Функция <math>\sigma</math>]</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=75634Обсуждение участника:MetaMockery2020-12-25T21:55:49Z<p>MetaMockery: /* Функция \tau(n) */</p>
<hr />
<div>== Функция Эйлера ==<br />
<br />
{{Определение<br />
|definition=<br />
''Функция Эйлера'' <tex>\varphi (n) </tex> {{---}} определяется как количество натуральных чисел, не превосходящих <tex>n</tex> и взаимно простых с <tex>n</tex>.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Функция <tex>f : \mathbb{N} \to \mathbb{Z} </tex> называется ''мультипликативной'', если <tex>f(mn) = f(m)f(n)</tex> для любых взаимно простых <tex>m, n</tex>.<br />
}}<br />
<br />
{{Теорема<br />
|about = Мультипликативность функции Эйлера<br />
|statement = Для любых взаимно простых чисел <tex>m, n</tex> <br />
: <math>\varphi(mn)=\varphi(m)\varphi(n)</math><br />
|proof =<br />
Запишем <math>n \cdot m</math> натуральных чисел, не превосходящих <math>n \cdot m</math>, в виде прямоугольной таблицы с <math>n</math> столбцами и <math>m</math> строками, располагая первые <math>n</math> чисел в первой строке, вторые <math>n</math> чисел во второй и т.д. <br />
<br />
Поскольку <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>. <br />
<br />
В данном доказательстве мы испольуем тот факт, что число <math>s</math> взаимно просто с натуральным <math>k</math> тогда и только тогда, когда остаток деления <math>s</math> на <math>k</math> тоже взаимно прост с <math>k</math>.<br />
<br />
Теперь приступим невосредственно к доказательству. Число находящееся в <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> столбцов.<br />
<br />
Перед тем как продолжить доказательство, давайте рассмотрим небольшое утверждение. Пусть нам даны <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>, причем каждый остаток получается ровно из одного из членов прогрессии.<br />
<br />
Воспользуемся данным утверждением, подставив разность арифметиечской прогресии <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>, что и требовалось доказать.<br />
<br />
<br />
}}<br />
<br />
== Функции <tex>\sigma(n)</tex>, <tex>\tau(n)</tex> и <tex>\varphi(n)</tex>, их мультипликативность и значения ==<br />
<br />
Каноническое разложение числа <tex>\displaystyle n = \prod_{i=1}^{r}p_i^{s_i} </tex><br />
<br />
==== Функция <tex>\sigma(n)</tex> ====<br />
<br />
Функция <tex>\sigma : \mathbb{N} \to \mathbb{N} </tex> определяется как сумма делителей натурального числа <tex>n</tex>:<br />
<center><tex>\displaystyle\sigma(n) = \sum_{d | n}d </tex></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\sigma(p) = p + 1</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\sigma(p^s) = \sum_{k=0}^{s}p^k = \frac{p^{s + 1} - 1}{p - 1} </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \sigma (n) = \prod_{i = 1}^{r}{\frac{p_{i}^{s_i+1}-1} {p_{i}-1}} </tex></center><br />
<br />
<br />
==== Функция <tex>\tau(n)</tex> ====<br />
<br />
Функция <tex>\tau: \mathbb{N} \to \mathbb{N} </tex> определяется как число положительных делителей натурального числа <tex>n</tex>: <br />
<center><tex>\displaystyle\tau(n) = \sum_{d | n}1 </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\tau(n)</tex> мультипликативна:<br />
<center><math>\tau(mn)=\tau(m)\tau(n)</math></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\tau(p) = 2</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\tau(p^s) = s + 1 </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \tau(n) = \prod_{i = 1}^{r}(s_i + 1) </tex></center><br />
<br />
==== Функция <tex>\varphi(n)</tex> ====<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\varphi(p) = p - 1</tex>. На некоторую степень <math>p</math> формулу можно обобщить:<br />
<center><tex>\displaystyle\varphi(p^s) = p^s - p^{s - 1} </tex></center><br />
Обосновывается следующим образом: Все не взаимно простые с <math>p^s</math> числа в диапазоне от 1 до <math>p^s</math>, очевидно, кратны <math>p</math>. Всего таких чисел <math>p^{s - 1}</math>.<br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i}(1 - \frac{1}{p_i}) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex></center><br />
<br />
== Малая теорема Ферма и теорема Эйлера ==<br />
<br />
{{Теорема<br />
|about= Теорема Эйлера<br />
<br />
|statement = Если <math>n</math> и <math>a</math> - взаимно простые целые числа, то <math>a^{\varphi(n)} \equiv 1 \ (mod \ n)</math><br />
<br />
|proof =<br />
Число <math>\overline{x}</math> называется вычетом по модулю <math>n</math>, если <math>\overline{x} \equiv x \ (mod \ n)</math>. Вычет <math>\overline{x}</math> называется обратимым вычетом, если существует вычет <math>\overline{y}</math>, что <math>\overline{x}\overline{y} \equiv 1 \ (mod \ n)</math>. Заметим, что вычет <math>\overline{x}</math> обратим тогда и только тогда, когда <math>\overline{x}</math> и <math>n</math> взаимно просты. В таком случае, у числа <math>n</math> существует всего <math>\varphi(n)</math> обратимых вычетов. Пусть <math>\mathbb{Z}_{n}^{*}</math> - множество всех обратимых вычетов по модулю <math>n</math>.<br />
<br />
Рассмотрим вычеты по модулю <math>n</math>. Так как <math>n</math> и <math>a</math> взаимно просты, то вычет <math>\overline{a}</math> обратим. Пусть <math>\overline{b_1}, \overline{b_2}, \dots , \overline{b_{\varphi(n)}}</math> - все обратимые вычеты по модулю <math>n</math>. Тогда вычет <math>\overline{b} = \overline{b_1}\overline{b_2}\dots\overline{b_{\varphi(n)}}</math>, равный произведению всех обратимых вычетов, тоже обратим. Заметим, что отображение <math>\mathbb{Z}_{n}^{*} \to \mathbb{Z}_{n}^{*}</math>, заданное формулой <math>\overline{x} \mapsto \overline{a}\cdot\overline{x}</math> является биекцией. В таком случае в выражении <math> \overline{a}^{\varphi(n)}\overline{b} = (\overline{a} \overline{b_1}) \dots (\overline{a} \overline{b_{\varphi(n)}}) </math>, в правой части стоит произведение всех обратимых вычетов, но взятое в другом порядке. Тогда <math>\overline{a}^{\varphi(n)}\overline{b} = \overline{b}</math>. Умножая обе части на вычет, обратный к <math>\overline{b}</math>, получим, что <math>\overline{a}^{\varphi(n)} \equiv 1 \ (mod \ n) </math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
Следствием теоремы Эйлера является малая теорема Ферма. У нее также есть доказательство без использования более общей теоремы Эйлера, однако его мы приводить не будем.<br />
<br />
<br />
{{Теорема<br />
|about = Малая теорема Ферма<br />
<br />
|statement = Если целое число <math>a</math> и простое число <math>p</math> - взаимно просты, то <math>a^{p - 1} \equiv 1 \ (mod \ p)</math><br />
<br />
|proof = Так как <math>p</math> - простое, то <math>\varphi(p) = p - 1</math>. Воспользуемся теоремой Эйлера, тогда <math>a^{\varphi(p)} = a^{p - 1} \equiv 1 \ (mod \ p)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
== Различные свойства функции Эйлера ==<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Если для каких-то натуральных чисел <math>a</math> и <math>b</math> верно, что <math>a\,|\,b</math>, тогда верно и <math>\varphi(a)\,|\, \varphi(b)</math><br />
<br />
|proof = <br />
Воспользуемся формулой для <tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i - 1}(p_i - 1) </tex>.<br />
<br />
:<math>a = p_1^{\alpha_1} \cdot\ldots\cdot p_{r_a}^{\alpha_{r_a}},</math><br />
:<math>b = p_1^{\beta_1} \cdot\ldots\cdot p_{r_b}^{\beta_{r_b}}</math><br />
<br />
При этом, так как <math>a\,|\,b</math>, то <math>r_a \leq r_b</math>, а также <math>\forall i \in [1\, ;\, r_a] \ \alpha_i \leq \beta_i</math><br />
<br />
<math></math><br />
<br />
Значит <tex>\displaystyle\frac{\varphi(b)}{\varphi(a)}</tex><tex>\displaystyle = \frac{\displaystyle\prod_{i = 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1)}{\displaystyle\prod_{i = 1}^{r_a}p_i^{\alpha_i - 1}(p_i - 1)} = \displaystyle(\prod_{i = 1}^{r_a}p_i^{\beta_i - \alpha_i}) \cdot \displaystyle(\prod_{i = r_a + 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1))</tex>, а значит <math>\varphi(a)\,|\, \varphi(b)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Для любого натурального числа <math>n</math> выполнено равенство <math>\displaystyle n = \sum_{d | n} \varphi(d)</math><br />
<br />
|proof = Данную теорему можно доказать "напролом", пользуясь формулой для <math>\varphi(d)</math>, а можно более элегантно:<br />
<br />
Рассмотрим <math>n</math> дробей <math>\frac{1}{n}, \frac{2}{n}, \dots , \frac{n}{n}</math>. Каждую дробь представим в виде несократимой дроби <math>\frac{p}{q}</math>.<br />
Заметим, что множество значений <math>q</math> {{---}} это множество делителей числа <math>n</math>. Так как дробь <math>\frac{p}{q}</math> несократима, то <math>p</math> и <math>q</math> взаимно просты. Зная, что <math>p \leq q</math>, легко понять, что всего дробей со знаменателем <math>q</math> ровно <math>\varphi(q)</math>. Так как, все <math>n</math> дробей мы представили в несократимом виде, где знаменатель является делителем <math>n</math>, то <math>\displaystyle \sum_{d | n} \varphi(d) = n</math>, так как всего дробей <math>n</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
:<br />
<br />
{{Теорема<br />
|about = Обобщённая мультипликативность<br />
<br />
|statement = Пусть <math>n</math> и <math>m</math> {{---}} любые два натуральных числа, а <math>d = (n,\ m)</math>, тогда:<br />
: <math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n)\cdot\frac{d}{\varphi(d)}</math><br />
<br />
|proof = <br />
<br />
Пусть <math>(m,\,n)=d,</math> тогда <math>m = m'd, \; n = n'd,</math> причем в общем случае <math>(m',\,d) \neq 1</math> и <math>(n',\,d) \neq 1.</math> Поэтому можно записать:<br />
:<math>d = d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}},</math><br />
:<math>m' = d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r},</math><br />
:<math>n' = d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}.</math><br />
Здесь первые <math>k</math> делителей <math>d</math> являются также делителями <math>m',</math> а последние <math>K-k</math> делителей <math>d</math> являются делителями <math>n'.</math> Распишем:<br />
:<math>\varphi(mn)= \varphi(d^2 \cdot m'n')<br />
= \varphi((d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}})^2 \cdot d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r} \cdot d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}).</math><br />
В силу мультипликативности функции Эйлера, а также с учётом формулы<br />
:<math>\varphi(p^n) = p^n(1-\frac{1}{p}),</math><br />
где <math>p</math> — простое, получаем:<br />
:<math><br />
\begin{align}<br />
\varphi(mn)<br />
<br />
&= d_1^{\alpha_1+\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_k^{\alpha_k+\delta_k}\left(1-\frac{1}{d_k}\right) \cdot p_1^{\beta_1}\left(1-\frac{1}{p_1}\right) \cdot\ldots\cdot p_r^{\beta_r}\left(1-\frac{1}{p_r}\right) \cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\delta_{K}}\left(1-\frac{1}{d_{K}}\right)\times \\<br />
<br />
&\; \times \; d_{k+1}^{\gamma_{k+1}+\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\gamma_{K}+\delta_{K}}\left(1-\frac{1}{d_{K}}\right) \cdot q_1^{\varepsilon_1}\left(1-\frac{1}{q_1}\right) \cdot\ldots\cdot q_s^{\varepsilon_s}\left(1-\frac{1}{q_s}\right) \cdot d_1^{\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right)\times \\<br />
<br />
&\; \times \; \frac{1}{\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot \left(1-\frac{1}{d_K}\right)}<br />
\end{align}<br />
</math><br />
В первой строке записано <math>\varphi(m),</math> во второй — <math>\varphi(n),</math> а третью можно представить, как <math>\frac{d}{\varphi(d)}.</math> Поэтому:<br />
:<math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n) \cdot \frac{d}{\varphi(d)}</math><br />
<br />
}}<br />
<br />
== Применение теоремы Эйлера в других задачах ==<br />
<br />
==== Задача об ожерельях ====<br />
<br />
{{Задача<br />
|definition=<br />
Требуется посчитать количество ожерелий из <tex>n</tex> бусинок, каждая из которых может быть покрашена в один из <tex> k </tex> цветов. При сравнении двух ожерелий их можно поворачивать, но не переворачивать (т.е. разрешается сделать циклический сдвиг).}}<br />
<br />
В ходе решения задачи мы приходим к формуле <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{i = 1}^{n} k^{\mathrm{gcd}(i,n)}</tex><br />
<br />
Мы можем улучшить эту формулу, если рассмотрим выражение <math>\mathrm{gcd}(i,n)</math>. Пусть <math>\mathrm{gcd}(i,n) = q</math>, тогда числа <math>i</math> и <math>n</math> оба делятся на <math>q</math> и больше не имеют общих делителей. Тогда <math>\mathrm{gcd}(\frac{i}{q},\frac{n}{q}) = 1</math>. Таких натуральных <math>i \in [1 ; n]</math> и имеющих <math>\mathrm{gcd}(i,n) = q</math> ровно <tex>\varphi\left(\dfrac{n}{q}\right)</tex>.<br />
<br />
Пользуясь функцией Эйлера, мы можем привести формулу к финальному виду <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{q|n}\varphi\left(\dfrac{n}{q}\right)k^q</tex>.<br />
<br />
== Алгоритм ==<br />
Используя доказанные выше свойства функции, получим алгоритм нахождения <math>\varphi(n)</math> через факторизацию числа, работающий за <math>O(\sqrt{n})</math>. <br />
<br />
'''function''' phi (n):<br />
result = n <br />
i = 2<br />
<br />
'''while''' (i*i <= n):<br />
'''if''' n % i == 0:<br />
'''while''' n % i == 0:<br />
n /= i<br />
result -= result / i<br />
i++<br />
'''if''' (n > 1):<br />
result -= result/n<br />
'''return''' result<br />
<br />
== См. также ==<br />
* [[Задача об ожерельях]]<br />
<br />
== Ссылки ==<br />
* [https://ru.wikipedia.org/wiki/Функция_Эйлера Wikipedia {{---}} Функция Эйлера]<br />
* [https://e-maxx.ru/algo/euler_function Алгоритм нахождения функции Эйлера]<br />
* [https://wikichi.ru/wiki/Divisor_function Функция <math>\sigma</math>]</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=75633Обсуждение участника:MetaMockery2020-12-25T21:55:11Z<p>MetaMockery: /* Различные свойства функции Эйлера */</p>
<hr />
<div>== Функция Эйлера ==<br />
<br />
{{Определение<br />
|definition=<br />
''Функция Эйлера'' <tex>\varphi (n) </tex> {{---}} определяется как количество натуральных чисел, не превосходящих <tex>n</tex> и взаимно простых с <tex>n</tex>.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Функция <tex>f : \mathbb{N} \to \mathbb{Z} </tex> называется ''мультипликативной'', если <tex>f(mn) = f(m)f(n)</tex> для любых взаимно простых <tex>m, n</tex>.<br />
}}<br />
<br />
{{Теорема<br />
|about = Мультипликативность функции Эйлера<br />
|statement = Для любых взаимно простых чисел <tex>m, n</tex> <br />
: <math>\varphi(mn)=\varphi(m)\varphi(n)</math><br />
|proof =<br />
Запишем <math>n \cdot m</math> натуральных чисел, не превосходящих <math>n \cdot m</math>, в виде прямоугольной таблицы с <math>n</math> столбцами и <math>m</math> строками, располагая первые <math>n</math> чисел в первой строке, вторые <math>n</math> чисел во второй и т.д. <br />
<br />
Поскольку <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>. <br />
<br />
В данном доказательстве мы испольуем тот факт, что число <math>s</math> взаимно просто с натуральным <math>k</math> тогда и только тогда, когда остаток деления <math>s</math> на <math>k</math> тоже взаимно прост с <math>k</math>.<br />
<br />
Теперь приступим невосредственно к доказательству. Число находящееся в <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> столбцов.<br />
<br />
Перед тем как продолжить доказательство, давайте рассмотрим небольшое утверждение. Пусть нам даны <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>, причем каждый остаток получается ровно из одного из членов прогрессии.<br />
<br />
Воспользуемся данным утверждением, подставив разность арифметиечской прогресии <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>, что и требовалось доказать.<br />
<br />
<br />
}}<br />
<br />
== Функции <tex>\sigma(n)</tex>, <tex>\tau(n)</tex> и <tex>\varphi(n)</tex>, их мультипликативность и значения ==<br />
<br />
Каноническое разложение числа <tex>\displaystyle n = \prod_{i=1}^{r}p_i^{s_i} </tex><br />
<br />
==== Функция <tex>\sigma(n)</tex> ====<br />
<br />
Функция <tex>\sigma : \mathbb{N} \to \mathbb{N} </tex> определяется как сумма делителей натурального числа <tex>n</tex>:<br />
<center><tex>\displaystyle\sigma(n) = \sum_{d | n}d </tex></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\sigma(p) = p + 1</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\sigma(p^s) = \sum_{k=0}^{s}p^k = \frac{p^{s + 1} - 1}{p - 1} </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \sigma (n) = \prod_{i = 1}^{r}{\frac{p_{i}^{s_i+1}-1} {p_{i}-1}} </tex></center><br />
<br />
<br />
==== Функция <tex>\tau(n)</tex> ====<br />
<br />
Функция <tex>\tau: \mathbb{N} \to \mathbb{N} </tex> определяется как число положительных делителей натурального числа <tex>n</tex>: <br />
<center><tex>\displaystyle\tau(n) = \sum_{d | n}1 </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\tau(n)</tex> мультипликативна:<br />
<center><math>\tau(mn)=\tau(m)\tau(n)</math></math></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\tau(p) = 2</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\tau(p^s) = s + 1 </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \tau(n) = \prod_{i = 1}^{r}(s_i + 1) </tex></center><br />
<br />
==== Функция <tex>\varphi(n)</tex> ====<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\varphi(p) = p - 1</tex>. На некоторую степень <math>p</math> формулу можно обобщить:<br />
<center><tex>\displaystyle\varphi(p^s) = p^s - p^{s - 1} </tex></center><br />
Обосновывается следующим образом: Все не взаимно простые с <math>p^s</math> числа в диапазоне от 1 до <math>p^s</math>, очевидно, кратны <math>p</math>. Всего таких чисел <math>p^{s - 1}</math>.<br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i}(1 - \frac{1}{p_i}) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex></center><br />
<br />
== Малая теорема Ферма и теорема Эйлера ==<br />
<br />
{{Теорема<br />
|about= Теорема Эйлера<br />
<br />
|statement = Если <math>n</math> и <math>a</math> - взаимно простые целые числа, то <math>a^{\varphi(n)} \equiv 1 \ (mod \ n)</math><br />
<br />
|proof =<br />
Число <math>\overline{x}</math> называется вычетом по модулю <math>n</math>, если <math>\overline{x} \equiv x \ (mod \ n)</math>. Вычет <math>\overline{x}</math> называется обратимым вычетом, если существует вычет <math>\overline{y}</math>, что <math>\overline{x}\overline{y} \equiv 1 \ (mod \ n)</math>. Заметим, что вычет <math>\overline{x}</math> обратим тогда и только тогда, когда <math>\overline{x}</math> и <math>n</math> взаимно просты. В таком случае, у числа <math>n</math> существует всего <math>\varphi(n)</math> обратимых вычетов. Пусть <math>\mathbb{Z}_{n}^{*}</math> - множество всех обратимых вычетов по модулю <math>n</math>.<br />
<br />
Рассмотрим вычеты по модулю <math>n</math>. Так как <math>n</math> и <math>a</math> взаимно просты, то вычет <math>\overline{a}</math> обратим. Пусть <math>\overline{b_1}, \overline{b_2}, \dots , \overline{b_{\varphi(n)}}</math> - все обратимые вычеты по модулю <math>n</math>. Тогда вычет <math>\overline{b} = \overline{b_1}\overline{b_2}\dots\overline{b_{\varphi(n)}}</math>, равный произведению всех обратимых вычетов, тоже обратим. Заметим, что отображение <math>\mathbb{Z}_{n}^{*} \to \mathbb{Z}_{n}^{*}</math>, заданное формулой <math>\overline{x} \mapsto \overline{a}\cdot\overline{x}</math> является биекцией. В таком случае в выражении <math> \overline{a}^{\varphi(n)}\overline{b} = (\overline{a} \overline{b_1}) \dots (\overline{a} \overline{b_{\varphi(n)}}) </math>, в правой части стоит произведение всех обратимых вычетов, но взятое в другом порядке. Тогда <math>\overline{a}^{\varphi(n)}\overline{b} = \overline{b}</math>. Умножая обе части на вычет, обратный к <math>\overline{b}</math>, получим, что <math>\overline{a}^{\varphi(n)} \equiv 1 \ (mod \ n) </math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
Следствием теоремы Эйлера является малая теорема Ферма. У нее также есть доказательство без использования более общей теоремы Эйлера, однако его мы приводить не будем.<br />
<br />
<br />
{{Теорема<br />
|about = Малая теорема Ферма<br />
<br />
|statement = Если целое число <math>a</math> и простое число <math>p</math> - взаимно просты, то <math>a^{p - 1} \equiv 1 \ (mod \ p)</math><br />
<br />
|proof = Так как <math>p</math> - простое, то <math>\varphi(p) = p - 1</math>. Воспользуемся теоремой Эйлера, тогда <math>a^{\varphi(p)} = a^{p - 1} \equiv 1 \ (mod \ p)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
== Различные свойства функции Эйлера ==<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Если для каких-то натуральных чисел <math>a</math> и <math>b</math> верно, что <math>a\,|\,b</math>, тогда верно и <math>\varphi(a)\,|\, \varphi(b)</math><br />
<br />
|proof = <br />
Воспользуемся формулой для <tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i - 1}(p_i - 1) </tex>.<br />
<br />
:<math>a = p_1^{\alpha_1} \cdot\ldots\cdot p_{r_a}^{\alpha_{r_a}},</math><br />
:<math>b = p_1^{\beta_1} \cdot\ldots\cdot p_{r_b}^{\beta_{r_b}}</math><br />
<br />
При этом, так как <math>a\,|\,b</math>, то <math>r_a \leq r_b</math>, а также <math>\forall i \in [1\, ;\, r_a] \ \alpha_i \leq \beta_i</math><br />
<br />
<math></math><br />
<br />
Значит <tex>\displaystyle\frac{\varphi(b)}{\varphi(a)}</tex><tex>\displaystyle = \frac{\displaystyle\prod_{i = 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1)}{\displaystyle\prod_{i = 1}^{r_a}p_i^{\alpha_i - 1}(p_i - 1)} = \displaystyle(\prod_{i = 1}^{r_a}p_i^{\beta_i - \alpha_i}) \cdot \displaystyle(\prod_{i = r_a + 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1))</tex>, а значит <math>\varphi(a)\,|\, \varphi(b)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Для любого натурального числа <math>n</math> выполнено равенство <math>\displaystyle n = \sum_{d | n} \varphi(d)</math><br />
<br />
|proof = Данную теорему можно доказать "напролом", пользуясь формулой для <math>\varphi(d)</math>, а можно более элегантно:<br />
<br />
Рассмотрим <math>n</math> дробей <math>\frac{1}{n}, \frac{2}{n}, \dots , \frac{n}{n}</math>. Каждую дробь представим в виде несократимой дроби <math>\frac{p}{q}</math>.<br />
Заметим, что множество значений <math>q</math> {{---}} это множество делителей числа <math>n</math>. Так как дробь <math>\frac{p}{q}</math> несократима, то <math>p</math> и <math>q</math> взаимно просты. Зная, что <math>p \leq q</math>, легко понять, что всего дробей со знаменателем <math>q</math> ровно <math>\varphi(q)</math>. Так как, все <math>n</math> дробей мы представили в несократимом виде, где знаменатель является делителем <math>n</math>, то <math>\displaystyle \sum_{d | n} \varphi(d) = n</math>, так как всего дробей <math>n</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
:<br />
<br />
{{Теорема<br />
|about = Обобщённая мультипликативность<br />
<br />
|statement = Пусть <math>n</math> и <math>m</math> {{---}} любые два натуральных числа, а <math>d = (n,\ m)</math>, тогда:<br />
: <math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n)\cdot\frac{d}{\varphi(d)}</math><br />
<br />
|proof = <br />
<br />
Пусть <math>(m,\,n)=d,</math> тогда <math>m = m'd, \; n = n'd,</math> причем в общем случае <math>(m',\,d) \neq 1</math> и <math>(n',\,d) \neq 1.</math> Поэтому можно записать:<br />
:<math>d = d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}},</math><br />
:<math>m' = d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r},</math><br />
:<math>n' = d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}.</math><br />
Здесь первые <math>k</math> делителей <math>d</math> являются также делителями <math>m',</math> а последние <math>K-k</math> делителей <math>d</math> являются делителями <math>n'.</math> Распишем:<br />
:<math>\varphi(mn)= \varphi(d^2 \cdot m'n')<br />
= \varphi((d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}})^2 \cdot d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r} \cdot d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}).</math><br />
В силу мультипликативности функции Эйлера, а также с учётом формулы<br />
:<math>\varphi(p^n) = p^n(1-\frac{1}{p}),</math><br />
где <math>p</math> — простое, получаем:<br />
:<math><br />
\begin{align}<br />
\varphi(mn)<br />
<br />
&= d_1^{\alpha_1+\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_k^{\alpha_k+\delta_k}\left(1-\frac{1}{d_k}\right) \cdot p_1^{\beta_1}\left(1-\frac{1}{p_1}\right) \cdot\ldots\cdot p_r^{\beta_r}\left(1-\frac{1}{p_r}\right) \cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\delta_{K}}\left(1-\frac{1}{d_{K}}\right)\times \\<br />
<br />
&\; \times \; d_{k+1}^{\gamma_{k+1}+\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\gamma_{K}+\delta_{K}}\left(1-\frac{1}{d_{K}}\right) \cdot q_1^{\varepsilon_1}\left(1-\frac{1}{q_1}\right) \cdot\ldots\cdot q_s^{\varepsilon_s}\left(1-\frac{1}{q_s}\right) \cdot d_1^{\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right)\times \\<br />
<br />
&\; \times \; \frac{1}{\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot \left(1-\frac{1}{d_K}\right)}<br />
\end{align}<br />
</math><br />
В первой строке записано <math>\varphi(m),</math> во второй — <math>\varphi(n),</math> а третью можно представить, как <math>\frac{d}{\varphi(d)}.</math> Поэтому:<br />
:<math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n) \cdot \frac{d}{\varphi(d)}</math><br />
<br />
}}<br />
<br />
== Применение теоремы Эйлера в других задачах ==<br />
<br />
==== Задача об ожерельях ====<br />
<br />
{{Задача<br />
|definition=<br />
Требуется посчитать количество ожерелий из <tex>n</tex> бусинок, каждая из которых может быть покрашена в один из <tex> k </tex> цветов. При сравнении двух ожерелий их можно поворачивать, но не переворачивать (т.е. разрешается сделать циклический сдвиг).}}<br />
<br />
В ходе решения задачи мы приходим к формуле <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{i = 1}^{n} k^{\mathrm{gcd}(i,n)}</tex><br />
<br />
Мы можем улучшить эту формулу, если рассмотрим выражение <math>\mathrm{gcd}(i,n)</math>. Пусть <math>\mathrm{gcd}(i,n) = q</math>, тогда числа <math>i</math> и <math>n</math> оба делятся на <math>q</math> и больше не имеют общих делителей. Тогда <math>\mathrm{gcd}(\frac{i}{q},\frac{n}{q}) = 1</math>. Таких натуральных <math>i \in [1 ; n]</math> и имеющих <math>\mathrm{gcd}(i,n) = q</math> ровно <tex>\varphi\left(\dfrac{n}{q}\right)</tex>.<br />
<br />
Пользуясь функцией Эйлера, мы можем привести формулу к финальному виду <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{q|n}\varphi\left(\dfrac{n}{q}\right)k^q</tex>.<br />
<br />
== Алгоритм ==<br />
Используя доказанные выше свойства функции, получим алгоритм нахождения <math>\varphi(n)</math> через факторизацию числа, работающий за <math>O(\sqrt{n})</math>. <br />
<br />
'''function''' phi (n):<br />
result = n <br />
i = 2<br />
<br />
'''while''' (i*i <= n):<br />
'''if''' n % i == 0:<br />
'''while''' n % i == 0:<br />
n /= i<br />
result -= result / i<br />
i++<br />
'''if''' (n > 1):<br />
result -= result/n<br />
'''return''' result<br />
<br />
== См. также ==<br />
* [[Задача об ожерельях]]<br />
<br />
== Ссылки ==<br />
* [https://ru.wikipedia.org/wiki/Функция_Эйлера Wikipedia {{---}} Функция Эйлера]<br />
* [https://e-maxx.ru/algo/euler_function Алгоритм нахождения функции Эйлера]<br />
* [https://wikichi.ru/wiki/Divisor_function Функция <math>\sigma</math>]</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=75632Обсуждение участника:MetaMockery2020-12-25T21:54:53Z<p>MetaMockery: /* Малая теорема Ферма и теорема Эйлера */</p>
<hr />
<div>== Функция Эйлера ==<br />
<br />
{{Определение<br />
|definition=<br />
''Функция Эйлера'' <tex>\varphi (n) </tex> {{---}} определяется как количество натуральных чисел, не превосходящих <tex>n</tex> и взаимно простых с <tex>n</tex>.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Функция <tex>f : \mathbb{N} \to \mathbb{Z} </tex> называется ''мультипликативной'', если <tex>f(mn) = f(m)f(n)</tex> для любых взаимно простых <tex>m, n</tex>.<br />
}}<br />
<br />
{{Теорема<br />
|about = Мультипликативность функции Эйлера<br />
|statement = Для любых взаимно простых чисел <tex>m, n</tex> <br />
: <math>\varphi(mn)=\varphi(m)\varphi(n)</math><br />
|proof =<br />
Запишем <math>n \cdot m</math> натуральных чисел, не превосходящих <math>n \cdot m</math>, в виде прямоугольной таблицы с <math>n</math> столбцами и <math>m</math> строками, располагая первые <math>n</math> чисел в первой строке, вторые <math>n</math> чисел во второй и т.д. <br />
<br />
Поскольку <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>. <br />
<br />
В данном доказательстве мы испольуем тот факт, что число <math>s</math> взаимно просто с натуральным <math>k</math> тогда и только тогда, когда остаток деления <math>s</math> на <math>k</math> тоже взаимно прост с <math>k</math>.<br />
<br />
Теперь приступим невосредственно к доказательству. Число находящееся в <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> столбцов.<br />
<br />
Перед тем как продолжить доказательство, давайте рассмотрим небольшое утверждение. Пусть нам даны <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>, причем каждый остаток получается ровно из одного из членов прогрессии.<br />
<br />
Воспользуемся данным утверждением, подставив разность арифметиечской прогресии <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>, что и требовалось доказать.<br />
<br />
<br />
}}<br />
<br />
== Функции <tex>\sigma(n)</tex>, <tex>\tau(n)</tex> и <tex>\varphi(n)</tex>, их мультипликативность и значения ==<br />
<br />
Каноническое разложение числа <tex>\displaystyle n = \prod_{i=1}^{r}p_i^{s_i} </tex><br />
<br />
==== Функция <tex>\sigma(n)</tex> ====<br />
<br />
Функция <tex>\sigma : \mathbb{N} \to \mathbb{N} </tex> определяется как сумма делителей натурального числа <tex>n</tex>:<br />
<center><tex>\displaystyle\sigma(n) = \sum_{d | n}d </tex></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\sigma(p) = p + 1</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\sigma(p^s) = \sum_{k=0}^{s}p^k = \frac{p^{s + 1} - 1}{p - 1} </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \sigma (n) = \prod_{i = 1}^{r}{\frac{p_{i}^{s_i+1}-1} {p_{i}-1}} </tex></center><br />
<br />
<br />
==== Функция <tex>\tau(n)</tex> ====<br />
<br />
Функция <tex>\tau: \mathbb{N} \to \mathbb{N} </tex> определяется как число положительных делителей натурального числа <tex>n</tex>: <br />
<center><tex>\displaystyle\tau(n) = \sum_{d | n}1 </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\tau(n)</tex> мультипликативна:<br />
<center><math>\tau(mn)=\tau(m)\tau(n)</math></math></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\tau(p) = 2</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\tau(p^s) = s + 1 </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \tau(n) = \prod_{i = 1}^{r}(s_i + 1) </tex></center><br />
<br />
==== Функция <tex>\varphi(n)</tex> ====<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\varphi(p) = p - 1</tex>. На некоторую степень <math>p</math> формулу можно обобщить:<br />
<center><tex>\displaystyle\varphi(p^s) = p^s - p^{s - 1} </tex></center><br />
Обосновывается следующим образом: Все не взаимно простые с <math>p^s</math> числа в диапазоне от 1 до <math>p^s</math>, очевидно, кратны <math>p</math>. Всего таких чисел <math>p^{s - 1}</math>.<br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i}(1 - \frac{1}{p_i}) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex></center><br />
<br />
== Малая теорема Ферма и теорема Эйлера ==<br />
<br />
{{Теорема<br />
|about= Теорема Эйлера<br />
<br />
|statement = Если <math>n</math> и <math>a</math> - взаимно простые целые числа, то <math>a^{\varphi(n)} \equiv 1 \ (mod \ n)</math><br />
<br />
|proof =<br />
Число <math>\overline{x}</math> называется вычетом по модулю <math>n</math>, если <math>\overline{x} \equiv x \ (mod \ n)</math>. Вычет <math>\overline{x}</math> называется обратимым вычетом, если существует вычет <math>\overline{y}</math>, что <math>\overline{x}\overline{y} \equiv 1 \ (mod \ n)</math>. Заметим, что вычет <math>\overline{x}</math> обратим тогда и только тогда, когда <math>\overline{x}</math> и <math>n</math> взаимно просты. В таком случае, у числа <math>n</math> существует всего <math>\varphi(n)</math> обратимых вычетов. Пусть <math>\mathbb{Z}_{n}^{*}</math> - множество всех обратимых вычетов по модулю <math>n</math>.<br />
<br />
Рассмотрим вычеты по модулю <math>n</math>. Так как <math>n</math> и <math>a</math> взаимно просты, то вычет <math>\overline{a}</math> обратим. Пусть <math>\overline{b_1}, \overline{b_2}, \dots , \overline{b_{\varphi(n)}}</math> - все обратимые вычеты по модулю <math>n</math>. Тогда вычет <math>\overline{b} = \overline{b_1}\overline{b_2}\dots\overline{b_{\varphi(n)}}</math>, равный произведению всех обратимых вычетов, тоже обратим. Заметим, что отображение <math>\mathbb{Z}_{n}^{*} \to \mathbb{Z}_{n}^{*}</math>, заданное формулой <math>\overline{x} \mapsto \overline{a}\cdot\overline{x}</math> является биекцией. В таком случае в выражении <math> \overline{a}^{\varphi(n)}\overline{b} = (\overline{a} \overline{b_1}) \dots (\overline{a} \overline{b_{\varphi(n)}}) </math>, в правой части стоит произведение всех обратимых вычетов, но взятое в другом порядке. Тогда <math>\overline{a}^{\varphi(n)}\overline{b} = \overline{b}</math>. Умножая обе части на вычет, обратный к <math>\overline{b}</math>, получим, что <math>\overline{a}^{\varphi(n)} \equiv 1 \ (mod \ n) </math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
Следствием теоремы Эйлера является малая теорема Ферма. У нее также есть доказательство без использования более общей теоремы Эйлера, однако его мы приводить не будем.<br />
<br />
<br />
{{Теорема<br />
|about = Малая теорема Ферма<br />
<br />
|statement = Если целое число <math>a</math> и простое число <math>p</math> - взаимно просты, то <math>a^{p - 1} \equiv 1 \ (mod \ p)</math><br />
<br />
|proof = Так как <math>p</math> - простое, то <math>\varphi(p) = p - 1</math>. Воспользуемся теоремой Эйлера, тогда <math>a^{\varphi(p)} = a^{p - 1} \equiv 1 \ (mod \ p)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
== Различные свойства функции Эйлера ==<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Если для каких-то натуральных чисел <math>a</math> и <math>b</math> верно, что <math>a\,|\,b</math>, тогда верно и <math>\varphi(a)\,|\, \varphi(b)</math><br />
<br />
|proof = <br />
Воспользуемся формулой для <tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i - 1}(p_i - 1) </tex>.<br />
<br />
:<math>a = p_1^{\alpha_1} \cdot\ldots\cdot p_{r_a}^{\alpha_{r_a}},</math><br />
:<math>b = p_1^{\beta_1} \cdot\ldots\cdot p_{r_b}^{\beta_{r_b}}</math><br />
<br />
При этом, так как <math>a\,|\,b</math>, то <math>r_a \leq r_b</math>, а также <math>\forall i \in [1\, ;\, r_a] \ \alpha_i \leq \beta_i</math><br />
<br />
<math></math><br />
<br />
Значит <tex>\displaystyle\frac{\varphi(b)}{\varphi(a)}</tex><tex>\displaystyle = \frac{\displaystyle\prod_{i = 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1)}{\displaystyle\prod_{i = 1}^{r_a}p_i^{\alpha_i - 1}(p_i - 1)} = \displaystyle(\prod_{i = 1}^{r_a}p_i^{\beta_i - \alpha_i}) \cdot \displaystyle(\prod_{i = r_a + 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1))</tex>, а значит <math>\varphi(a)\,|\, \varphi(b)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Для любого натурального числа <math>n</math> выполнено равенство <math>\displaystyle n = \sum_{d | n} \varphi(d)</math><br />
<br />
|proof = Данную теорему можно доказать "напролом", пользуясь формулой для <math>\varphi(d)</math>, а можно более элегантно:<br />
<br />
Рассмотрим <math>n</math> дробей <math>\frac{1}{n}, \frac{2}{n}, \dots , \frac{n}{n}</math>. Каждую дробь представим в виде несократимой дроби <math>\frac{p}{q}</math>.<br />
Заметим, что множество значений <math>q</math> {{---}} это множество делителей числа <math>n</math>. Так как дробь <math>\frac{p}{q}</math> несократима, то <math>p</math> и <math>q</math> взаимно-просты. Зная, что <math>p \leq q</math>, легко понять, что всего дробей со знаменателем <math>q</math> ровно <math>\varphi(q)</math>. Так как, все <math>n</math> дробей мы представили в несократимом виде, где знаменатель является делителем <math>n</math>, то <math>\displaystyle \sum_{d | n} \varphi(d) = n</math>, так как всего дробей <math>n</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
:<br />
<br />
{{Теорема<br />
|about = Обобщённая мультипликативность<br />
<br />
|statement = Пусть <math>n</math> и <math>m</math> {{---}} любые два натуральных числа, а <math>d = (n,\ m)</math>, тогда:<br />
: <math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n)\cdot\frac{d}{\varphi(d)}</math><br />
<br />
|proof = <br />
<br />
Пусть <math>(m,\,n)=d,</math> тогда <math>m = m'd, \; n = n'd,</math> причем в общем случае <math>(m',\,d) \neq 1</math> и <math>(n',\,d) \neq 1.</math> Поэтому можно записать:<br />
:<math>d = d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}},</math><br />
:<math>m' = d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r},</math><br />
:<math>n' = d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}.</math><br />
Здесь первые <math>k</math> делителей <math>d</math> являются также делителями <math>m',</math> а последние <math>K-k</math> делителей <math>d</math> являются делителями <math>n'.</math> Распишем:<br />
:<math>\varphi(mn)= \varphi(d^2 \cdot m'n')<br />
= \varphi((d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}})^2 \cdot d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r} \cdot d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}).</math><br />
В силу мультипликативности функции Эйлера, а также с учётом формулы<br />
:<math>\varphi(p^n) = p^n(1-\frac{1}{p}),</math><br />
где <math>p</math> — простое, получаем:<br />
:<math><br />
\begin{align}<br />
\varphi(mn)<br />
<br />
&= d_1^{\alpha_1+\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_k^{\alpha_k+\delta_k}\left(1-\frac{1}{d_k}\right) \cdot p_1^{\beta_1}\left(1-\frac{1}{p_1}\right) \cdot\ldots\cdot p_r^{\beta_r}\left(1-\frac{1}{p_r}\right) \cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\delta_{K}}\left(1-\frac{1}{d_{K}}\right)\times \\<br />
<br />
&\; \times \; d_{k+1}^{\gamma_{k+1}+\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\gamma_{K}+\delta_{K}}\left(1-\frac{1}{d_{K}}\right) \cdot q_1^{\varepsilon_1}\left(1-\frac{1}{q_1}\right) \cdot\ldots\cdot q_s^{\varepsilon_s}\left(1-\frac{1}{q_s}\right) \cdot d_1^{\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right)\times \\<br />
<br />
&\; \times \; \frac{1}{\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot \left(1-\frac{1}{d_K}\right)}<br />
\end{align}<br />
</math><br />
В первой строке записано <math>\varphi(m),</math> во второй — <math>\varphi(n),</math> а третью можно представить, как <math>\frac{d}{\varphi(d)}.</math> Поэтому:<br />
:<math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n) \cdot \frac{d}{\varphi(d)}</math><br />
<br />
}}<br />
<br />
== Применение теоремы Эйлера в других задачах ==<br />
<br />
==== Задача об ожерельях ====<br />
<br />
{{Задача<br />
|definition=<br />
Требуется посчитать количество ожерелий из <tex>n</tex> бусинок, каждая из которых может быть покрашена в один из <tex> k </tex> цветов. При сравнении двух ожерелий их можно поворачивать, но не переворачивать (т.е. разрешается сделать циклический сдвиг).}}<br />
<br />
В ходе решения задачи мы приходим к формуле <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{i = 1}^{n} k^{\mathrm{gcd}(i,n)}</tex><br />
<br />
Мы можем улучшить эту формулу, если рассмотрим выражение <math>\mathrm{gcd}(i,n)</math>. Пусть <math>\mathrm{gcd}(i,n) = q</math>, тогда числа <math>i</math> и <math>n</math> оба делятся на <math>q</math> и больше не имеют общих делителей. Тогда <math>\mathrm{gcd}(\frac{i}{q},\frac{n}{q}) = 1</math>. Таких натуральных <math>i \in [1 ; n]</math> и имеющих <math>\mathrm{gcd}(i,n) = q</math> ровно <tex>\varphi\left(\dfrac{n}{q}\right)</tex>.<br />
<br />
Пользуясь функцией Эйлера, мы можем привести формулу к финальному виду <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{q|n}\varphi\left(\dfrac{n}{q}\right)k^q</tex>.<br />
<br />
== Алгоритм ==<br />
Используя доказанные выше свойства функции, получим алгоритм нахождения <math>\varphi(n)</math> через факторизацию числа, работающий за <math>O(\sqrt{n})</math>. <br />
<br />
'''function''' phi (n):<br />
result = n <br />
i = 2<br />
<br />
'''while''' (i*i <= n):<br />
'''if''' n % i == 0:<br />
'''while''' n % i == 0:<br />
n /= i<br />
result -= result / i<br />
i++<br />
'''if''' (n > 1):<br />
result -= result/n<br />
'''return''' result<br />
<br />
== См. также ==<br />
* [[Задача об ожерельях]]<br />
<br />
== Ссылки ==<br />
* [https://ru.wikipedia.org/wiki/Функция_Эйлера Wikipedia {{---}} Функция Эйлера]<br />
* [https://e-maxx.ru/algo/euler_function Алгоритм нахождения функции Эйлера]<br />
* [https://wikichi.ru/wiki/Divisor_function Функция <math>\sigma</math>]</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=75631Обсуждение участника:MetaMockery2020-12-25T21:54:24Z<p>MetaMockery: /* Функции \sigma(n), \tau(n) и \varphi(n), их мультипликативность и значения */</p>
<hr />
<div>== Функция Эйлера ==<br />
<br />
{{Определение<br />
|definition=<br />
''Функция Эйлера'' <tex>\varphi (n) </tex> {{---}} определяется как количество натуральных чисел, не превосходящих <tex>n</tex> и взаимно простых с <tex>n</tex>.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Функция <tex>f : \mathbb{N} \to \mathbb{Z} </tex> называется ''мультипликативной'', если <tex>f(mn) = f(m)f(n)</tex> для любых взаимно простых <tex>m, n</tex>.<br />
}}<br />
<br />
{{Теорема<br />
|about = Мультипликативность функции Эйлера<br />
|statement = Для любых взаимно простых чисел <tex>m, n</tex> <br />
: <math>\varphi(mn)=\varphi(m)\varphi(n)</math><br />
|proof =<br />
Запишем <math>n \cdot m</math> натуральных чисел, не превосходящих <math>n \cdot m</math>, в виде прямоугольной таблицы с <math>n</math> столбцами и <math>m</math> строками, располагая первые <math>n</math> чисел в первой строке, вторые <math>n</math> чисел во второй и т.д. <br />
<br />
Поскольку <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>. <br />
<br />
В данном доказательстве мы испольуем тот факт, что число <math>s</math> взаимно просто с натуральным <math>k</math> тогда и только тогда, когда остаток деления <math>s</math> на <math>k</math> тоже взаимно прост с <math>k</math>.<br />
<br />
Теперь приступим невосредственно к доказательству. Число находящееся в <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> столбцов.<br />
<br />
Перед тем как продолжить доказательство, давайте рассмотрим небольшое утверждение. Пусть нам даны <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>, причем каждый остаток получается ровно из одного из членов прогрессии.<br />
<br />
Воспользуемся данным утверждением, подставив разность арифметиечской прогресии <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>, что и требовалось доказать.<br />
<br />
<br />
}}<br />
<br />
== Функции <tex>\sigma(n)</tex>, <tex>\tau(n)</tex> и <tex>\varphi(n)</tex>, их мультипликативность и значения ==<br />
<br />
Каноническое разложение числа <tex>\displaystyle n = \prod_{i=1}^{r}p_i^{s_i} </tex><br />
<br />
==== Функция <tex>\sigma(n)</tex> ====<br />
<br />
Функция <tex>\sigma : \mathbb{N} \to \mathbb{N} </tex> определяется как сумма делителей натурального числа <tex>n</tex>:<br />
<center><tex>\displaystyle\sigma(n) = \sum_{d | n}d </tex></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\sigma(p) = p + 1</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\sigma(p^s) = \sum_{k=0}^{s}p^k = \frac{p^{s + 1} - 1}{p - 1} </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \sigma (n) = \prod_{i = 1}^{r}{\frac{p_{i}^{s_i+1}-1} {p_{i}-1}} </tex></center><br />
<br />
<br />
==== Функция <tex>\tau(n)</tex> ====<br />
<br />
Функция <tex>\tau: \mathbb{N} \to \mathbb{N} </tex> определяется как число положительных делителей натурального числа <tex>n</tex>: <br />
<center><tex>\displaystyle\tau(n) = \sum_{d | n}1 </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\tau(n)</tex> мультипликативна:<br />
<center><math>\tau(mn)=\tau(m)\tau(n)</math></math></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\tau(p) = 2</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\tau(p^s) = s + 1 </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \tau(n) = \prod_{i = 1}^{r}(s_i + 1) </tex></center><br />
<br />
==== Функция <tex>\varphi(n)</tex> ====<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\varphi(p) = p - 1</tex>. На некоторую степень <math>p</math> формулу можно обобщить:<br />
<center><tex>\displaystyle\varphi(p^s) = p^s - p^{s - 1} </tex></center><br />
Обосновывается следующим образом: Все не взаимно простые с <math>p^s</math> числа в диапазоне от 1 до <math>p^s</math>, очевидно, кратны <math>p</math>. Всего таких чисел <math>p^{s - 1}</math>.<br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i}(1 - \frac{1}{p_i}) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex></center><br />
<br />
== Малая теорема Ферма и теорема Эйлера ==<br />
<br />
{{Теорема<br />
|about= Теорема Эйлера<br />
<br />
|statement = Если <math>n</math> и <math>a</math> - взаимно-простые целые числа, то <math>a^{\varphi(n)} \equiv 1 \ (mod \ n)</math><br />
<br />
|proof =<br />
Число <math>\overline{x}</math> называется вычетом по модулю <math>n</math>, если <math>\overline{x} \equiv x \ (mod \ n)</math>. Вычет <math>\overline{x}</math> называется обратимым вычетом, если существует вычет <math>\overline{y}</math>, что <math>\overline{x}\overline{y} \equiv 1 \ (mod \ n)</math>. Заметим, что вычет <math>\overline{x}</math> обратим тогда и только тогда, когда <math>\overline{x}</math> и <math>n</math> взаимно-просты. В таком случае, у числа <math>n</math> существует всего <math>\varphi(n)</math> обратимых вычетов. Пусть <math>\mathbb{Z}_{n}^{*}</math> - множество всех обратимых вычетов по модулю <math>n</math>.<br />
<br />
Рассмотрим вычеты по модулю <math>n</math>. Так как <math>n</math> и <math>a</math> взаимно-просты, то вычет <math>\overline{a}</math> обратим. Пусть <math>\overline{b_1}, \overline{b_2}, \dots , \overline{b_{\varphi(n)}}</math> - все обратимые вычеты по модулю <math>n</math>. Тогда вычет <math>\overline{b} = \overline{b_1}\overline{b_2}\dots\overline{b_{\varphi(n)}}</math>, равный произведению всех обратимых вычетов, тоже обратим. Заметим, что отображение <math>\mathbb{Z}_{n}^{*} \to \mathbb{Z}_{n}^{*}</math>, заданное формулой <math>\overline{x} \mapsto \overline{a}\cdot\overline{x}</math> является биекцией. В таком случае в выражении <math> \overline{a}^{\varphi(n)}\overline{b} = (\overline{a} \overline{b_1}) \dots (\overline{a} \overline{b_{\varphi(n)}}) </math>, в правой части стоит произведение всех обратимых вычетов, но взятое в другом порядке. Тогда <math>\overline{a}^{\varphi(n)}\overline{b} = \overline{b}</math>. Умножая обе части на вычет, обратный к <math>\overline{b}</math>, получим, что <math>\overline{a}^{\varphi(n)} \equiv 1 \ (mod \ n) </math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
Следствием теоремы Эйлера является малая теорема Ферма. У нее также есть доказательство без использования более общей теоремы Эйлера, однако его мы приводить не будем.<br />
<br />
<br />
{{Теорема<br />
|about = Малая теорема Ферма<br />
<br />
|statement = Если целое число <math>a</math> и простое число <math>p</math> - взаимно-просты, то <math>a^{p - 1} \equiv 1 \ (mod \ p)</math><br />
<br />
|proof = Так как <math>p</math> - простое, то <math>\varphi(p) = p - 1</math>. Воспользуемся теоремой Эйлера, тогда <math>a^{\varphi(p)} = a^{p - 1} \equiv 1 \ (mod \ p)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
== Различные свойства функции Эйлера ==<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Если для каких-то натуральных чисел <math>a</math> и <math>b</math> верно, что <math>a\,|\,b</math>, тогда верно и <math>\varphi(a)\,|\, \varphi(b)</math><br />
<br />
|proof = <br />
Воспользуемся формулой для <tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i - 1}(p_i - 1) </tex>.<br />
<br />
:<math>a = p_1^{\alpha_1} \cdot\ldots\cdot p_{r_a}^{\alpha_{r_a}},</math><br />
:<math>b = p_1^{\beta_1} \cdot\ldots\cdot p_{r_b}^{\beta_{r_b}}</math><br />
<br />
При этом, так как <math>a\,|\,b</math>, то <math>r_a \leq r_b</math>, а также <math>\forall i \in [1\, ;\, r_a] \ \alpha_i \leq \beta_i</math><br />
<br />
<math></math><br />
<br />
Значит <tex>\displaystyle\frac{\varphi(b)}{\varphi(a)}</tex><tex>\displaystyle = \frac{\displaystyle\prod_{i = 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1)}{\displaystyle\prod_{i = 1}^{r_a}p_i^{\alpha_i - 1}(p_i - 1)} = \displaystyle(\prod_{i = 1}^{r_a}p_i^{\beta_i - \alpha_i}) \cdot \displaystyle(\prod_{i = r_a + 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1))</tex>, а значит <math>\varphi(a)\,|\, \varphi(b)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Для любого натурального числа <math>n</math> выполнено равенство <math>\displaystyle n = \sum_{d | n} \varphi(d)</math><br />
<br />
|proof = Данную теорему можно доказать "напролом", пользуясь формулой для <math>\varphi(d)</math>, а можно более элегантно:<br />
<br />
Рассмотрим <math>n</math> дробей <math>\frac{1}{n}, \frac{2}{n}, \dots , \frac{n}{n}</math>. Каждую дробь представим в виде несократимой дроби <math>\frac{p}{q}</math>.<br />
Заметим, что множество значений <math>q</math> {{---}} это множество делителей числа <math>n</math>. Так как дробь <math>\frac{p}{q}</math> несократима, то <math>p</math> и <math>q</math> взаимно-просты. Зная, что <math>p \leq q</math>, легко понять, что всего дробей со знаменателем <math>q</math> ровно <math>\varphi(q)</math>. Так как, все <math>n</math> дробей мы представили в несократимом виде, где знаменатель является делителем <math>n</math>, то <math>\displaystyle \sum_{d | n} \varphi(d) = n</math>, так как всего дробей <math>n</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
:<br />
<br />
{{Теорема<br />
|about = Обобщённая мультипликативность<br />
<br />
|statement = Пусть <math>n</math> и <math>m</math> {{---}} любые два натуральных числа, а <math>d = (n,\ m)</math>, тогда:<br />
: <math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n)\cdot\frac{d}{\varphi(d)}</math><br />
<br />
|proof = <br />
<br />
Пусть <math>(m,\,n)=d,</math> тогда <math>m = m'd, \; n = n'd,</math> причем в общем случае <math>(m',\,d) \neq 1</math> и <math>(n',\,d) \neq 1.</math> Поэтому можно записать:<br />
:<math>d = d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}},</math><br />
:<math>m' = d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r},</math><br />
:<math>n' = d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}.</math><br />
Здесь первые <math>k</math> делителей <math>d</math> являются также делителями <math>m',</math> а последние <math>K-k</math> делителей <math>d</math> являются делителями <math>n'.</math> Распишем:<br />
:<math>\varphi(mn)= \varphi(d^2 \cdot m'n')<br />
= \varphi((d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}})^2 \cdot d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r} \cdot d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}).</math><br />
В силу мультипликативности функции Эйлера, а также с учётом формулы<br />
:<math>\varphi(p^n) = p^n(1-\frac{1}{p}),</math><br />
где <math>p</math> — простое, получаем:<br />
:<math><br />
\begin{align}<br />
\varphi(mn)<br />
<br />
&= d_1^{\alpha_1+\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_k^{\alpha_k+\delta_k}\left(1-\frac{1}{d_k}\right) \cdot p_1^{\beta_1}\left(1-\frac{1}{p_1}\right) \cdot\ldots\cdot p_r^{\beta_r}\left(1-\frac{1}{p_r}\right) \cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\delta_{K}}\left(1-\frac{1}{d_{K}}\right)\times \\<br />
<br />
&\; \times \; d_{k+1}^{\gamma_{k+1}+\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\gamma_{K}+\delta_{K}}\left(1-\frac{1}{d_{K}}\right) \cdot q_1^{\varepsilon_1}\left(1-\frac{1}{q_1}\right) \cdot\ldots\cdot q_s^{\varepsilon_s}\left(1-\frac{1}{q_s}\right) \cdot d_1^{\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right)\times \\<br />
<br />
&\; \times \; \frac{1}{\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot \left(1-\frac{1}{d_K}\right)}<br />
\end{align}<br />
</math><br />
В первой строке записано <math>\varphi(m),</math> во второй — <math>\varphi(n),</math> а третью можно представить, как <math>\frac{d}{\varphi(d)}.</math> Поэтому:<br />
:<math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n) \cdot \frac{d}{\varphi(d)}</math><br />
<br />
}}<br />
<br />
== Применение теоремы Эйлера в других задачах ==<br />
<br />
==== Задача об ожерельях ====<br />
<br />
{{Задача<br />
|definition=<br />
Требуется посчитать количество ожерелий из <tex>n</tex> бусинок, каждая из которых может быть покрашена в один из <tex> k </tex> цветов. При сравнении двух ожерелий их можно поворачивать, но не переворачивать (т.е. разрешается сделать циклический сдвиг).}}<br />
<br />
В ходе решения задачи мы приходим к формуле <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{i = 1}^{n} k^{\mathrm{gcd}(i,n)}</tex><br />
<br />
Мы можем улучшить эту формулу, если рассмотрим выражение <math>\mathrm{gcd}(i,n)</math>. Пусть <math>\mathrm{gcd}(i,n) = q</math>, тогда числа <math>i</math> и <math>n</math> оба делятся на <math>q</math> и больше не имеют общих делителей. Тогда <math>\mathrm{gcd}(\frac{i}{q},\frac{n}{q}) = 1</math>. Таких натуральных <math>i \in [1 ; n]</math> и имеющих <math>\mathrm{gcd}(i,n) = q</math> ровно <tex>\varphi\left(\dfrac{n}{q}\right)</tex>.<br />
<br />
Пользуясь функцией Эйлера, мы можем привести формулу к финальному виду <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{q|n}\varphi\left(\dfrac{n}{q}\right)k^q</tex>.<br />
<br />
== Алгоритм ==<br />
Используя доказанные выше свойства функции, получим алгоритм нахождения <math>\varphi(n)</math> через факторизацию числа, работающий за <math>O(\sqrt{n})</math>. <br />
<br />
'''function''' phi (n):<br />
result = n <br />
i = 2<br />
<br />
'''while''' (i*i <= n):<br />
'''if''' n % i == 0:<br />
'''while''' n % i == 0:<br />
n /= i<br />
result -= result / i<br />
i++<br />
'''if''' (n > 1):<br />
result -= result/n<br />
'''return''' result<br />
<br />
== См. также ==<br />
* [[Задача об ожерельях]]<br />
<br />
== Ссылки ==<br />
* [https://ru.wikipedia.org/wiki/Функция_Эйлера Wikipedia {{---}} Функция Эйлера]<br />
* [https://e-maxx.ru/algo/euler_function Алгоритм нахождения функции Эйлера]<br />
* [https://wikichi.ru/wiki/Divisor_function Функция <math>\sigma</math>]</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=75630Обсуждение участника:MetaMockery2020-12-25T21:53:05Z<p>MetaMockery: /* Различные свойства функции Эйлера */</p>
<hr />
<div>== Функция Эйлера ==<br />
<br />
{{Определение<br />
|definition=<br />
''Функция Эйлера'' <tex>\varphi (n) </tex> {{---}} определяется как количество натуральных чисел, не превосходящих <tex>n</tex> и взаимно простых с <tex>n</tex>.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Функция <tex>f : \mathbb{N} \to \mathbb{Z} </tex> называется ''мультипликативной'', если <tex>f(mn) = f(m)f(n)</tex> для любых взаимно простых <tex>m, n</tex>.<br />
}}<br />
<br />
{{Теорема<br />
|about = Мультипликативность функции Эйлера<br />
|statement = Для любых взаимно простых чисел <tex>m, n</tex> <br />
: <math>\varphi(mn)=\varphi(m)\varphi(n)</math><br />
|proof =<br />
Запишем <math>n \cdot m</math> натуральных чисел, не превосходящих <math>n \cdot m</math>, в виде прямоугольной таблицы с <math>n</math> столбцами и <math>m</math> строками, располагая первые <math>n</math> чисел в первой строке, вторые <math>n</math> чисел во второй и т.д. <br />
<br />
Поскольку <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>. <br />
<br />
В данном доказательстве мы испольуем тот факт, что число <math>s</math> взаимно просто с натуральным <math>k</math> тогда и только тогда, когда остаток деления <math>s</math> на <math>k</math> тоже взаимно прост с <math>k</math>.<br />
<br />
Теперь приступим невосредственно к доказательству. Число находящееся в <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> столбцов.<br />
<br />
Перед тем как продолжить доказательство, давайте рассмотрим небольшое утверждение. Пусть нам даны <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>, причем каждый остаток получается ровно из одного из членов прогрессии.<br />
<br />
Воспользуемся данным утверждением, подставив разность арифметиечской прогресии <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>, что и требовалось доказать.<br />
<br />
<br />
}}<br />
<br />
== Функции <tex>\sigma(n)</tex>, <tex>\tau(n)</tex> и <tex>\varphi(n)</tex>, их мультипликативность и значения ==<br />
<br />
Каноническое разложение числа <tex>\displaystyle n = \prod_{i=1}^{r}p_i^{s_i} </tex><br />
<br />
==== Функция <tex>\sigma(n)</tex> ====<br />
<br />
Функция <tex>\sigma : \mathbb{N} \to \mathbb{N} </tex> определяется как сумма делителей натурального числа <tex>n</tex>:<br />
<center><tex>\displaystyle\sigma(n) = \sum_{d | n}d </tex></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\sigma(p) = p + 1</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\sigma(p^s) = \sum_{k=0}^{s}p^k = \frac{p^{s + 1} - 1}{p - 1} </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \sigma (n) = \prod_{i = 1}^{r}{\frac{p_{i}^{s_i+1}-1} {p_{i}-1}} </tex></center><br />
<br />
<br />
==== Функция <tex>\tau(n)</tex> ====<br />
<br />
Функция <tex>\tau: \mathbb{N} \to \mathbb{N} </tex> определяется как число положительных делителей натурального числа <tex>n</tex>: <br />
<center><tex>\displaystyle\tau(n) = \sum_{d | n}1 </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно-просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\tau(n)</tex> мультипликативна:<br />
<center><math>\tau(mn)=\tau(m)\tau(n)</math></math></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\tau(p) = 2</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\tau(p^s) = s + 1 </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \tau(n) = \prod_{i = 1}^{r}(s_i + 1) </tex></center><br />
<br />
==== Функция <tex>\varphi(n)</tex> ====<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\varphi(p) = p - 1</tex>. На некоторую степень <math>p</math> формулу можно обобщить:<br />
<center><tex>\displaystyle\varphi(p^s) = p^s - p^{s - 1} </tex></center><br />
Обосновывается следующим образом: Все не взаимно-простые с <math>p^s</math> числа в диапазоне от 1 до <math>p^s</math>, очевидно, кратны <math>p</math>. Всего таких чисел <math>p^{s - 1}</math>.<br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i}(1 - \frac{1}{p_i}) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex></center><br />
<br />
== Малая теорема Ферма и теорема Эйлера ==<br />
<br />
{{Теорема<br />
|about= Теорема Эйлера<br />
<br />
|statement = Если <math>n</math> и <math>a</math> - взаимно-простые целые числа, то <math>a^{\varphi(n)} \equiv 1 \ (mod \ n)</math><br />
<br />
|proof =<br />
Число <math>\overline{x}</math> называется вычетом по модулю <math>n</math>, если <math>\overline{x} \equiv x \ (mod \ n)</math>. Вычет <math>\overline{x}</math> называется обратимым вычетом, если существует вычет <math>\overline{y}</math>, что <math>\overline{x}\overline{y} \equiv 1 \ (mod \ n)</math>. Заметим, что вычет <math>\overline{x}</math> обратим тогда и только тогда, когда <math>\overline{x}</math> и <math>n</math> взаимно-просты. В таком случае, у числа <math>n</math> существует всего <math>\varphi(n)</math> обратимых вычетов. Пусть <math>\mathbb{Z}_{n}^{*}</math> - множество всех обратимых вычетов по модулю <math>n</math>.<br />
<br />
Рассмотрим вычеты по модулю <math>n</math>. Так как <math>n</math> и <math>a</math> взаимно-просты, то вычет <math>\overline{a}</math> обратим. Пусть <math>\overline{b_1}, \overline{b_2}, \dots , \overline{b_{\varphi(n)}}</math> - все обратимые вычеты по модулю <math>n</math>. Тогда вычет <math>\overline{b} = \overline{b_1}\overline{b_2}\dots\overline{b_{\varphi(n)}}</math>, равный произведению всех обратимых вычетов, тоже обратим. Заметим, что отображение <math>\mathbb{Z}_{n}^{*} \to \mathbb{Z}_{n}^{*}</math>, заданное формулой <math>\overline{x} \mapsto \overline{a}\cdot\overline{x}</math> является биекцией. В таком случае в выражении <math> \overline{a}^{\varphi(n)}\overline{b} = (\overline{a} \overline{b_1}) \dots (\overline{a} \overline{b_{\varphi(n)}}) </math>, в правой части стоит произведение всех обратимых вычетов, но взятое в другом порядке. Тогда <math>\overline{a}^{\varphi(n)}\overline{b} = \overline{b}</math>. Умножая обе части на вычет, обратный к <math>\overline{b}</math>, получим, что <math>\overline{a}^{\varphi(n)} \equiv 1 \ (mod \ n) </math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
Следствием теоремы Эйлера является малая теорема Ферма. У нее также есть доказательство без использования более общей теоремы Эйлера, однако его мы приводить не будем.<br />
<br />
<br />
{{Теорема<br />
|about = Малая теорема Ферма<br />
<br />
|statement = Если целое число <math>a</math> и простое число <math>p</math> - взаимно-просты, то <math>a^{p - 1} \equiv 1 \ (mod \ p)</math><br />
<br />
|proof = Так как <math>p</math> - простое, то <math>\varphi(p) = p - 1</math>. Воспользуемся теоремой Эйлера, тогда <math>a^{\varphi(p)} = a^{p - 1} \equiv 1 \ (mod \ p)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
== Различные свойства функции Эйлера ==<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Если для каких-то натуральных чисел <math>a</math> и <math>b</math> верно, что <math>a\,|\,b</math>, тогда верно и <math>\varphi(a)\,|\, \varphi(b)</math><br />
<br />
|proof = <br />
Воспользуемся формулой для <tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i - 1}(p_i - 1) </tex>.<br />
<br />
:<math>a = p_1^{\alpha_1} \cdot\ldots\cdot p_{r_a}^{\alpha_{r_a}},</math><br />
:<math>b = p_1^{\beta_1} \cdot\ldots\cdot p_{r_b}^{\beta_{r_b}}</math><br />
<br />
При этом, так как <math>a\,|\,b</math>, то <math>r_a \leq r_b</math>, а также <math>\forall i \in [1\, ;\, r_a] \ \alpha_i \leq \beta_i</math><br />
<br />
<math></math><br />
<br />
Значит <tex>\displaystyle\frac{\varphi(b)}{\varphi(a)}</tex><tex>\displaystyle = \frac{\displaystyle\prod_{i = 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1)}{\displaystyle\prod_{i = 1}^{r_a}p_i^{\alpha_i - 1}(p_i - 1)} = \displaystyle(\prod_{i = 1}^{r_a}p_i^{\beta_i - \alpha_i}) \cdot \displaystyle(\prod_{i = r_a + 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1))</tex>, а значит <math>\varphi(a)\,|\, \varphi(b)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Для любого натурального числа <math>n</math> выполнено равенство <math>\displaystyle n = \sum_{d | n} \varphi(d)</math><br />
<br />
|proof = Данную теорему можно доказать "напролом", пользуясь формулой для <math>\varphi(d)</math>, а можно более элегантно:<br />
<br />
Рассмотрим <math>n</math> дробей <math>\frac{1}{n}, \frac{2}{n}, \dots , \frac{n}{n}</math>. Каждую дробь представим в виде несократимой дроби <math>\frac{p}{q}</math>.<br />
Заметим, что множество значений <math>q</math> {{---}} это множество делителей числа <math>n</math>. Так как дробь <math>\frac{p}{q}</math> несократима, то <math>p</math> и <math>q</math> взаимно-просты. Зная, что <math>p \leq q</math>, легко понять, что всего дробей со знаменателем <math>q</math> ровно <math>\varphi(q)</math>. Так как, все <math>n</math> дробей мы представили в несократимом виде, где знаменатель является делителем <math>n</math>, то <math>\displaystyle \sum_{d | n} \varphi(d) = n</math>, так как всего дробей <math>n</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
:<br />
<br />
{{Теорема<br />
|about = Обобщённая мультипликативность<br />
<br />
|statement = Пусть <math>n</math> и <math>m</math> {{---}} любые два натуральных числа, а <math>d = (n,\ m)</math>, тогда:<br />
: <math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n)\cdot\frac{d}{\varphi(d)}</math><br />
<br />
|proof = <br />
<br />
Пусть <math>(m,\,n)=d,</math> тогда <math>m = m'd, \; n = n'd,</math> причем в общем случае <math>(m',\,d) \neq 1</math> и <math>(n',\,d) \neq 1.</math> Поэтому можно записать:<br />
:<math>d = d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}},</math><br />
:<math>m' = d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r},</math><br />
:<math>n' = d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}.</math><br />
Здесь первые <math>k</math> делителей <math>d</math> являются также делителями <math>m',</math> а последние <math>K-k</math> делителей <math>d</math> являются делителями <math>n'.</math> Распишем:<br />
:<math>\varphi(mn)= \varphi(d^2 \cdot m'n')<br />
= \varphi((d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}})^2 \cdot d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r} \cdot d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}).</math><br />
В силу мультипликативности функции Эйлера, а также с учётом формулы<br />
:<math>\varphi(p^n) = p^n(1-\frac{1}{p}),</math><br />
где <math>p</math> — простое, получаем:<br />
:<math><br />
\begin{align}<br />
\varphi(mn)<br />
<br />
&= d_1^{\alpha_1+\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_k^{\alpha_k+\delta_k}\left(1-\frac{1}{d_k}\right) \cdot p_1^{\beta_1}\left(1-\frac{1}{p_1}\right) \cdot\ldots\cdot p_r^{\beta_r}\left(1-\frac{1}{p_r}\right) \cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\delta_{K}}\left(1-\frac{1}{d_{K}}\right)\times \\<br />
<br />
&\; \times \; d_{k+1}^{\gamma_{k+1}+\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\gamma_{K}+\delta_{K}}\left(1-\frac{1}{d_{K}}\right) \cdot q_1^{\varepsilon_1}\left(1-\frac{1}{q_1}\right) \cdot\ldots\cdot q_s^{\varepsilon_s}\left(1-\frac{1}{q_s}\right) \cdot d_1^{\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right)\times \\<br />
<br />
&\; \times \; \frac{1}{\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot \left(1-\frac{1}{d_K}\right)}<br />
\end{align}<br />
</math><br />
В первой строке записано <math>\varphi(m),</math> во второй — <math>\varphi(n),</math> а третью можно представить, как <math>\frac{d}{\varphi(d)}.</math> Поэтому:<br />
:<math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n) \cdot \frac{d}{\varphi(d)}</math><br />
<br />
}}<br />
<br />
== Применение теоремы Эйлера в других задачах ==<br />
<br />
==== Задача об ожерельях ====<br />
<br />
{{Задача<br />
|definition=<br />
Требуется посчитать количество ожерелий из <tex>n</tex> бусинок, каждая из которых может быть покрашена в один из <tex> k </tex> цветов. При сравнении двух ожерелий их можно поворачивать, но не переворачивать (т.е. разрешается сделать циклический сдвиг).}}<br />
<br />
В ходе решения задачи мы приходим к формуле <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{i = 1}^{n} k^{\mathrm{gcd}(i,n)}</tex><br />
<br />
Мы можем улучшить эту формулу, если рассмотрим выражение <math>\mathrm{gcd}(i,n)</math>. Пусть <math>\mathrm{gcd}(i,n) = q</math>, тогда числа <math>i</math> и <math>n</math> оба делятся на <math>q</math> и больше не имеют общих делителей. Тогда <math>\mathrm{gcd}(\frac{i}{q},\frac{n}{q}) = 1</math>. Таких натуральных <math>i \in [1 ; n]</math> и имеющих <math>\mathrm{gcd}(i,n) = q</math> ровно <tex>\varphi\left(\dfrac{n}{q}\right)</tex>.<br />
<br />
Пользуясь функцией Эйлера, мы можем привести формулу к финальному виду <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{q|n}\varphi\left(\dfrac{n}{q}\right)k^q</tex>.<br />
<br />
== Алгоритм ==<br />
Используя доказанные выше свойства функции, получим алгоритм нахождения <math>\varphi(n)</math> через факторизацию числа, работающий за <math>O(\sqrt{n})</math>. <br />
<br />
'''function''' phi (n):<br />
result = n <br />
i = 2<br />
<br />
'''while''' (i*i <= n):<br />
'''if''' n % i == 0:<br />
'''while''' n % i == 0:<br />
n /= i<br />
result -= result / i<br />
i++<br />
'''if''' (n > 1):<br />
result -= result/n<br />
'''return''' result<br />
<br />
== См. также ==<br />
* [[Задача об ожерельях]]<br />
<br />
== Ссылки ==<br />
* [https://ru.wikipedia.org/wiki/Функция_Эйлера Wikipedia {{---}} Функция Эйлера]<br />
* [https://e-maxx.ru/algo/euler_function Алгоритм нахождения функции Эйлера]<br />
* [https://wikichi.ru/wiki/Divisor_function Функция <math>\sigma</math>]</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=75629Обсуждение участника:MetaMockery2020-12-25T21:52:37Z<p>MetaMockery: /* Различные свойства функции Эйлера */</p>
<hr />
<div>== Функция Эйлера ==<br />
<br />
{{Определение<br />
|definition=<br />
''Функция Эйлера'' <tex>\varphi (n) </tex> {{---}} определяется как количество натуральных чисел, не превосходящих <tex>n</tex> и взаимно простых с <tex>n</tex>.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Функция <tex>f : \mathbb{N} \to \mathbb{Z} </tex> называется ''мультипликативной'', если <tex>f(mn) = f(m)f(n)</tex> для любых взаимно простых <tex>m, n</tex>.<br />
}}<br />
<br />
{{Теорема<br />
|about = Мультипликативность функции Эйлера<br />
|statement = Для любых взаимно простых чисел <tex>m, n</tex> <br />
: <math>\varphi(mn)=\varphi(m)\varphi(n)</math><br />
|proof =<br />
Запишем <math>n \cdot m</math> натуральных чисел, не превосходящих <math>n \cdot m</math>, в виде прямоугольной таблицы с <math>n</math> столбцами и <math>m</math> строками, располагая первые <math>n</math> чисел в первой строке, вторые <math>n</math> чисел во второй и т.д. <br />
<br />
Поскольку <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>. <br />
<br />
В данном доказательстве мы испольуем тот факт, что число <math>s</math> взаимно просто с натуральным <math>k</math> тогда и только тогда, когда остаток деления <math>s</math> на <math>k</math> тоже взаимно прост с <math>k</math>.<br />
<br />
Теперь приступим невосредственно к доказательству. Число находящееся в <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> столбцов.<br />
<br />
Перед тем как продолжить доказательство, давайте рассмотрим небольшое утверждение. Пусть нам даны <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>, причем каждый остаток получается ровно из одного из членов прогрессии.<br />
<br />
Воспользуемся данным утверждением, подставив разность арифметиечской прогресии <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>, что и требовалось доказать.<br />
<br />
<br />
}}<br />
<br />
== Функции <tex>\sigma(n)</tex>, <tex>\tau(n)</tex> и <tex>\varphi(n)</tex>, их мультипликативность и значения ==<br />
<br />
Каноническое разложение числа <tex>\displaystyle n = \prod_{i=1}^{r}p_i^{s_i} </tex><br />
<br />
==== Функция <tex>\sigma(n)</tex> ====<br />
<br />
Функция <tex>\sigma : \mathbb{N} \to \mathbb{N} </tex> определяется как сумма делителей натурального числа <tex>n</tex>:<br />
<center><tex>\displaystyle\sigma(n) = \sum_{d | n}d </tex></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\sigma(p) = p + 1</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\sigma(p^s) = \sum_{k=0}^{s}p^k = \frac{p^{s + 1} - 1}{p - 1} </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \sigma (n) = \prod_{i = 1}^{r}{\frac{p_{i}^{s_i+1}-1} {p_{i}-1}} </tex></center><br />
<br />
<br />
==== Функция <tex>\tau(n)</tex> ====<br />
<br />
Функция <tex>\tau: \mathbb{N} \to \mathbb{N} </tex> определяется как число положительных делителей натурального числа <tex>n</tex>: <br />
<center><tex>\displaystyle\tau(n) = \sum_{d | n}1 </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно-просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\tau(n)</tex> мультипликативна:<br />
<center><math>\tau(mn)=\tau(m)\tau(n)</math></math></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\tau(p) = 2</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\tau(p^s) = s + 1 </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \tau(n) = \prod_{i = 1}^{r}(s_i + 1) </tex></center><br />
<br />
==== Функция <tex>\varphi(n)</tex> ====<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\varphi(p) = p - 1</tex>. На некоторую степень <math>p</math> формулу можно обобщить:<br />
<center><tex>\displaystyle\varphi(p^s) = p^s - p^{s - 1} </tex></center><br />
Обосновывается следующим образом: Все не взаимно-простые с <math>p^s</math> числа в диапазоне от 1 до <math>p^s</math>, очевидно, кратны <math>p</math>. Всего таких чисел <math>p^{s - 1}</math>.<br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i}(1 - \frac{1}{p_i}) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex></center><br />
<br />
== Малая теорема Ферма и теорема Эйлера ==<br />
<br />
{{Теорема<br />
|about= Теорема Эйлера<br />
<br />
|statement = Если <math>n</math> и <math>a</math> - взаимно-простые целые числа, то <math>a^{\varphi(n)} \equiv 1 \ (mod \ n)</math><br />
<br />
|proof =<br />
Число <math>\overline{x}</math> называется вычетом по модулю <math>n</math>, если <math>\overline{x} \equiv x \ (mod \ n)</math>. Вычет <math>\overline{x}</math> называется обратимым вычетом, если существует вычет <math>\overline{y}</math>, что <math>\overline{x}\overline{y} \equiv 1 \ (mod \ n)</math>. Заметим, что вычет <math>\overline{x}</math> обратим тогда и только тогда, когда <math>\overline{x}</math> и <math>n</math> взаимно-просты. В таком случае, у числа <math>n</math> существует всего <math>\varphi(n)</math> обратимых вычетов. Пусть <math>\mathbb{Z}_{n}^{*}</math> - множество всех обратимых вычетов по модулю <math>n</math>.<br />
<br />
Рассмотрим вычеты по модулю <math>n</math>. Так как <math>n</math> и <math>a</math> взаимно-просты, то вычет <math>\overline{a}</math> обратим. Пусть <math>\overline{b_1}, \overline{b_2}, \dots , \overline{b_{\varphi(n)}}</math> - все обратимые вычеты по модулю <math>n</math>. Тогда вычет <math>\overline{b} = \overline{b_1}\overline{b_2}\dots\overline{b_{\varphi(n)}}</math>, равный произведению всех обратимых вычетов, тоже обратим. Заметим, что отображение <math>\mathbb{Z}_{n}^{*} \to \mathbb{Z}_{n}^{*}</math>, заданное формулой <math>\overline{x} \mapsto \overline{a}\cdot\overline{x}</math> является биекцией. В таком случае в выражении <math> \overline{a}^{\varphi(n)}\overline{b} = (\overline{a} \overline{b_1}) \dots (\overline{a} \overline{b_{\varphi(n)}}) </math>, в правой части стоит произведение всех обратимых вычетов, но взятое в другом порядке. Тогда <math>\overline{a}^{\varphi(n)}\overline{b} = \overline{b}</math>. Умножая обе части на вычет, обратный к <math>\overline{b}</math>, получим, что <math>\overline{a}^{\varphi(n)} \equiv 1 \ (mod \ n) </math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
Следствием теоремы Эйлера является малая теорема Ферма. У нее также есть доказательство без использования более общей теоремы Эйлера, однако его мы приводить не будем.<br />
<br />
<br />
{{Теорема<br />
|about = Малая теорема Ферма<br />
<br />
|statement = Если целое число <math>a</math> и простое число <math>p</math> - взаимно-просты, то <math>a^{p - 1} \equiv 1 \ (mod \ p)</math><br />
<br />
|proof = Так как <math>p</math> - простое, то <math>\varphi(p) = p - 1</math>. Воспользуемся теоремой Эйлера, тогда <math>a^{\varphi(p)} = a^{p - 1} \equiv 1 \ (mod \ p)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
== Различные свойства функции Эйлера ==<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Если для каких-то натуральных чисел <math>a</math> и <math>b</math> верно, что <math>a\,|\,b</math>, тогда верно и <math>\varphi(a)\,|\, \varphi(b)</math><br />
<br />
|proof = <br />
Воспользуемся формулой для <tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i - 1}(p_i - 1) </tex>.<br />
<br />
:<math>a = p_1^{\alpha_1} \cdot\ldots\cdot p_{r_a}^{\alpha_{r_a}},</math><br />
:<math>b = p_1^{\beta_1} \cdot\ldots\cdot p_{r_b}^{\beta_{r_b}}</math><br />
<br />
При этом, так как <math>a\,|\,b</math>, то <math>r_a \leq r_b</math>, а также <math>\forall i \in [1\, ;\, r_a] \ \alpha_i \leq \beta_i</math><br />
<br />
<math></math><br />
<br />
Значит <tex>\displaystyle\frac{\varphi(b)}{\varphi(a)}</tex><tex>\displaystyle = \frac{\displaystyle\prod_{i = 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1)}{\displaystyle\prod_{i = 1}^{r_a}p_i^{\alpha_i - 1}(p_i - 1)} = \displaystyle(\prod_{i = 1}^{r_a}p_i^{\beta_i - \alpha_i}) \cdot \displaystyle(\prod_{i = r_a + 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1))</tex>, а значит <math>\varphi(a)\,|\, \varphi(b)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Для любого натурального числа <math>n</math> выполнено равенство <math>\displaystyle n = \sum_{d | n} \varphi(d)</math><br />
<br />
|proof = Данную теорему можно доказать "напролом", пользуясь формулой для <math>\varphi(d)</math>, а можно более элегантно:<br />
<br />
Рассмотрим <math>n</math> дробей <math>\frac{1}{n}, \frac{2}{n}, \dots , \frac{n}{n}</math>. Каждую дробь представим в виде несократимой дроби <math>\frac{p}{q}</math>.<br />
Заметим, что множество значений <math>q</math> {{---}} это множество делителей числа <math>n</math>. Так как дробь <math>\frac{p}{q}</math> несократима, то <math>p</math> и <math>q</math> взаимно-просты. Зная, что <math>p \leq q</math>, легко понять, что всего дробей со знаменателем <math>q</math> ровно <math>\varphi(q)</math>. Так как, все <math>n</math> дробей мы представили в несократимом виде, где знаменатель является делителем <math>n</math>, то <math>\displaystyle \sum_{d | n} \varphi(d) = n</math>, так как всего дробей <math>n</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
:<br />
<br />
{{Теорема<br />
|about = Обобщённая мультипликативность<br />
<br />
|statement = Пусть <math>n</math> и <math>m</math> {{---}} любые два натуральных числа, а <math>d = (n,\ m)</math>, тогда:<br />
: <math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n)\cdot\frac{d}{\varphi(d)},</math><br />
<br />
|proof = <br />
<br />
Пусть <math>(m,\,n)=d,</math> тогда <math>m = m'd, \; n = n'd,</math> причем в общем случае <math>(m',\,d) \neq 1</math> и <math>(n',\,d) \neq 1.</math> Поэтому можно записать:<br />
:<math>d = d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}},</math><br />
:<math>m' = d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r},</math><br />
:<math>n' = d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}.</math><br />
Здесь первые <math>k</math> делителей <math>d</math> являются также делителями <math>m',</math> а последние <math>K-k</math> делителей <math>d</math> являются делителями <math>n'.</math> Распишем:<br />
:<math>\varphi(mn)= \varphi(d^2 \cdot m'n')<br />
= \varphi((d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}})^2 \cdot d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r} \cdot d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}).</math><br />
В силу мультипликативности функции Эйлера, а также с учётом формулы<br />
:<math>\varphi(p^n) = p^n(1-\frac{1}{p}),</math><br />
где <math>p</math> — простое, получаем:<br />
:<math><br />
\begin{align}<br />
\varphi(mn)<br />
<br />
&= d_1^{\alpha_1+\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_k^{\alpha_k+\delta_k}\left(1-\frac{1}{d_k}\right) \cdot p_1^{\beta_1}\left(1-\frac{1}{p_1}\right) \cdot\ldots\cdot p_r^{\beta_r}\left(1-\frac{1}{p_r}\right) \cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\delta_{K}}\left(1-\frac{1}{d_{K}}\right)\times \\<br />
<br />
&\; \times \; d_{k+1}^{\gamma_{k+1}+\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\gamma_{K}+\delta_{K}}\left(1-\frac{1}{d_{K}}\right) \cdot q_1^{\varepsilon_1}\left(1-\frac{1}{q_1}\right) \cdot\ldots\cdot q_s^{\varepsilon_s}\left(1-\frac{1}{q_s}\right) \cdot d_1^{\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right)\times \\<br />
<br />
&\; \times \; \frac{1}{\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot \left(1-\frac{1}{d_K}\right)}<br />
\end{align}<br />
</math><br />
В первой строке записано <math>\varphi(m),</math> во второй — <math>\varphi(n),</math> а третью можно представить, как <math>\frac{d}{\varphi(d)}.</math> Поэтому:<br />
:<math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n) \cdot \frac{d}{\varphi(d)}</math><br />
<br />
}}<br />
<br />
== Применение теоремы Эйлера в других задачах ==<br />
<br />
==== Задача об ожерельях ====<br />
<br />
{{Задача<br />
|definition=<br />
Требуется посчитать количество ожерелий из <tex>n</tex> бусинок, каждая из которых может быть покрашена в один из <tex> k </tex> цветов. При сравнении двух ожерелий их можно поворачивать, но не переворачивать (т.е. разрешается сделать циклический сдвиг).}}<br />
<br />
В ходе решения задачи мы приходим к формуле <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{i = 1}^{n} k^{\mathrm{gcd}(i,n)}</tex><br />
<br />
Мы можем улучшить эту формулу, если рассмотрим выражение <math>\mathrm{gcd}(i,n)</math>. Пусть <math>\mathrm{gcd}(i,n) = q</math>, тогда числа <math>i</math> и <math>n</math> оба делятся на <math>q</math> и больше не имеют общих делителей. Тогда <math>\mathrm{gcd}(\frac{i}{q},\frac{n}{q}) = 1</math>. Таких натуральных <math>i \in [1 ; n]</math> и имеющих <math>\mathrm{gcd}(i,n) = q</math> ровно <tex>\varphi\left(\dfrac{n}{q}\right)</tex>.<br />
<br />
Пользуясь функцией Эйлера, мы можем привести формулу к финальному виду <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{q|n}\varphi\left(\dfrac{n}{q}\right)k^q</tex>.<br />
<br />
== Алгоритм ==<br />
Используя доказанные выше свойства функции, получим алгоритм нахождения <math>\varphi(n)</math> через факторизацию числа, работающий за <math>O(\sqrt{n})</math>. <br />
<br />
'''function''' phi (n):<br />
result = n <br />
i = 2<br />
<br />
'''while''' (i*i <= n):<br />
'''if''' n % i == 0:<br />
'''while''' n % i == 0:<br />
n /= i<br />
result -= result / i<br />
i++<br />
'''if''' (n > 1):<br />
result -= result/n<br />
'''return''' result<br />
<br />
== См. также ==<br />
* [[Задача об ожерельях]]<br />
<br />
== Ссылки ==<br />
* [https://ru.wikipedia.org/wiki/Функция_Эйлера Wikipedia {{---}} Функция Эйлера]<br />
* [https://e-maxx.ru/algo/euler_function Алгоритм нахождения функции Эйлера]<br />
* [https://wikichi.ru/wiki/Divisor_function Функция <math>\sigma</math>]</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=75628Обсуждение участника:MetaMockery2020-12-25T21:51:51Z<p>MetaMockery: /* Функции \sigma(n), \tau(n) и \varphi(n), их мультипликативность и значения */</p>
<hr />
<div>== Функция Эйлера ==<br />
<br />
{{Определение<br />
|definition=<br />
''Функция Эйлера'' <tex>\varphi (n) </tex> {{---}} определяется как количество натуральных чисел, не превосходящих <tex>n</tex> и взаимно простых с <tex>n</tex>.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Функция <tex>f : \mathbb{N} \to \mathbb{Z} </tex> называется ''мультипликативной'', если <tex>f(mn) = f(m)f(n)</tex> для любых взаимно простых <tex>m, n</tex>.<br />
}}<br />
<br />
{{Теорема<br />
|about = Мультипликативность функции Эйлера<br />
|statement = Для любых взаимно простых чисел <tex>m, n</tex> <br />
: <math>\varphi(mn)=\varphi(m)\varphi(n)</math><br />
|proof =<br />
Запишем <math>n \cdot m</math> натуральных чисел, не превосходящих <math>n \cdot m</math>, в виде прямоугольной таблицы с <math>n</math> столбцами и <math>m</math> строками, располагая первые <math>n</math> чисел в первой строке, вторые <math>n</math> чисел во второй и т.д. <br />
<br />
Поскольку <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>. <br />
<br />
В данном доказательстве мы испольуем тот факт, что число <math>s</math> взаимно просто с натуральным <math>k</math> тогда и только тогда, когда остаток деления <math>s</math> на <math>k</math> тоже взаимно прост с <math>k</math>.<br />
<br />
Теперь приступим невосредственно к доказательству. Число находящееся в <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> столбцов.<br />
<br />
Перед тем как продолжить доказательство, давайте рассмотрим небольшое утверждение. Пусть нам даны <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>, причем каждый остаток получается ровно из одного из членов прогрессии.<br />
<br />
Воспользуемся данным утверждением, подставив разность арифметиечской прогресии <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>, что и требовалось доказать.<br />
<br />
<br />
}}<br />
<br />
== Функции <tex>\sigma(n)</tex>, <tex>\tau(n)</tex> и <tex>\varphi(n)</tex>, их мультипликативность и значения ==<br />
<br />
Каноническое разложение числа <tex>\displaystyle n = \prod_{i=1}^{r}p_i^{s_i} </tex><br />
<br />
==== Функция <tex>\sigma(n)</tex> ====<br />
<br />
Функция <tex>\sigma : \mathbb{N} \to \mathbb{N} </tex> определяется как сумма делителей натурального числа <tex>n</tex>:<br />
<center><tex>\displaystyle\sigma(n) = \sum_{d | n}d </tex></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\sigma(p) = p + 1</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\sigma(p^s) = \sum_{k=0}^{s}p^k = \frac{p^{s + 1} - 1}{p - 1} </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \sigma (n) = \prod_{i = 1}^{r}{\frac{p_{i}^{s_i+1}-1} {p_{i}-1}} </tex></center><br />
<br />
<br />
==== Функция <tex>\tau(n)</tex> ====<br />
<br />
Функция <tex>\tau: \mathbb{N} \to \mathbb{N} </tex> определяется как число положительных делителей натурального числа <tex>n</tex>: <br />
<center><tex>\displaystyle\tau(n) = \sum_{d | n}1 </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно-просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\tau(n)</tex> мультипликативна:<br />
<center><math>\tau(mn)=\tau(m)\tau(n)</math></math></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\tau(p) = 2</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\tau(p^s) = s + 1 </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \tau(n) = \prod_{i = 1}^{r}(s_i + 1) </tex></center><br />
<br />
==== Функция <tex>\varphi(n)</tex> ====<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\varphi(p) = p - 1</tex>. На некоторую степень <math>p</math> формулу можно обобщить:<br />
<center><tex>\displaystyle\varphi(p^s) = p^s - p^{s - 1} </tex></center><br />
Обосновывается следующим образом: Все не взаимно-простые с <math>p^s</math> числа в диапазоне от 1 до <math>p^s</math>, очевидно, кратны <math>p</math>. Всего таких чисел <math>p^{s - 1}</math>.<br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i}(1 - \frac{1}{p_i}) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex></center><br />
<br />
== Малая теорема Ферма и теорема Эйлера ==<br />
<br />
{{Теорема<br />
|about= Теорема Эйлера<br />
<br />
|statement = Если <math>n</math> и <math>a</math> - взаимно-простые целые числа, то <math>a^{\varphi(n)} \equiv 1 \ (mod \ n)</math><br />
<br />
|proof =<br />
Число <math>\overline{x}</math> называется вычетом по модулю <math>n</math>, если <math>\overline{x} \equiv x \ (mod \ n)</math>. Вычет <math>\overline{x}</math> называется обратимым вычетом, если существует вычет <math>\overline{y}</math>, что <math>\overline{x}\overline{y} \equiv 1 \ (mod \ n)</math>. Заметим, что вычет <math>\overline{x}</math> обратим тогда и только тогда, когда <math>\overline{x}</math> и <math>n</math> взаимно-просты. В таком случае, у числа <math>n</math> существует всего <math>\varphi(n)</math> обратимых вычетов. Пусть <math>\mathbb{Z}_{n}^{*}</math> - множество всех обратимых вычетов по модулю <math>n</math>.<br />
<br />
Рассмотрим вычеты по модулю <math>n</math>. Так как <math>n</math> и <math>a</math> взаимно-просты, то вычет <math>\overline{a}</math> обратим. Пусть <math>\overline{b_1}, \overline{b_2}, \dots , \overline{b_{\varphi(n)}}</math> - все обратимые вычеты по модулю <math>n</math>. Тогда вычет <math>\overline{b} = \overline{b_1}\overline{b_2}\dots\overline{b_{\varphi(n)}}</math>, равный произведению всех обратимых вычетов, тоже обратим. Заметим, что отображение <math>\mathbb{Z}_{n}^{*} \to \mathbb{Z}_{n}^{*}</math>, заданное формулой <math>\overline{x} \mapsto \overline{a}\cdot\overline{x}</math> является биекцией. В таком случае в выражении <math> \overline{a}^{\varphi(n)}\overline{b} = (\overline{a} \overline{b_1}) \dots (\overline{a} \overline{b_{\varphi(n)}}) </math>, в правой части стоит произведение всех обратимых вычетов, но взятое в другом порядке. Тогда <math>\overline{a}^{\varphi(n)}\overline{b} = \overline{b}</math>. Умножая обе части на вычет, обратный к <math>\overline{b}</math>, получим, что <math>\overline{a}^{\varphi(n)} \equiv 1 \ (mod \ n) </math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
Следствием теоремы Эйлера является малая теорема Ферма. У нее также есть доказательство без использования более общей теоремы Эйлера, однако его мы приводить не будем.<br />
<br />
<br />
{{Теорема<br />
|about = Малая теорема Ферма<br />
<br />
|statement = Если целое число <math>a</math> и простое число <math>p</math> - взаимно-просты, то <math>a^{p - 1} \equiv 1 \ (mod \ p)</math><br />
<br />
|proof = Так как <math>p</math> - простое, то <math>\varphi(p) = p - 1</math>. Воспользуемся теоремой Эйлера, тогда <math>a^{\varphi(p)} = a^{p - 1} \equiv 1 \ (mod \ p)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
== Различные свойства функции Эйлера ==<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Если для каких-то натуральных чисел <math>a</math> и <math>b</math> верно, что <math>a\,|\,b</math>, тогда верно и <math>\varphi(a)\,|\, \varphi(b)</math><br />
<br />
|proof = <br />
Воспользуемся формулой для <tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i - 1}(p_i - 1) </tex>.<br />
<br />
:<math>a = p_1^{\alpha_1} \cdot\ldots\cdot p_{r_a}^{\alpha_{r_a}},</math><br />
:<math>b = p_1^{\beta_1} \cdot\ldots\cdot p_{r_b}^{\beta_{r_b}}</math><br />
<br />
При этом, так как <math>a\,|\,b</math>, то <math>r_a \leq r_b</math>, а также <math>\forall i \in [1\, ;\, r_a] \ \alpha_i \leq \beta_i</math><br />
<br />
<math></math><br />
<br />
Значит <tex>\displaystyle\frac{\varphi(b)}{\varphi(a)}</tex><tex>\displaystyle = \frac{\displaystyle\prod_{i = 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1)}{\displaystyle\prod_{i = 1}^{r_a}p_i^{\alpha_i - 1}(p_i - 1)} = \displaystyle(\prod_{i = 1}^{r_a}p_i^{\beta_i - \alpha_i}) \cdot \displaystyle(\prod_{i = r_a + 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1))</tex>, а значит <math>\varphi(a)\,|\, \varphi(b)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Для любого натурального числа <math>n</math> выполнено равенство <math>\displaystyle n = \sum_{d | n} \varphi(d)</math><br />
<br />
|proof = Данную теорему можно доказать "напролом", пользуясь формулой для <math>\varphi(d)</math>, а можно более элегантно:<br />
<br />
Рассмотрим <math>n</math> дробей <math>\frac{1}{n}, \frac{2}{n}, \dots , \frac{n}{n}</math>. Каждую дробь представим в виде несократимой дроби <math>\frac{p}{q}</math>.<br />
Заметим, что множество значений <math>q</math> {{---}} это множество делителей числа <math>n</math>. Так как дробь <math>\frac{p}{q}</math> несократима, то <math>p</math> и <math>q</math> взаимно-просты. Зная, что <math>p \leq q</math>, легко понять, что всего дробей со знаменателем <math>q</math> ровно <math>\varphi(q)</math>. Так как, все <math>n</math> дробей мы представили в несократимом виде, где знаменатель является делителем <math>n</math>, то <math>\displaystyle \sum_{d | n} \varphi(d) = n</math>, так как всего дробей <math>n</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
:<br />
<br />
{{Теорема<br />
|about = Обобщённая мультипликативность<br />
<br />
|statement = Пусть <math>n</math> и <math>m</math> {{---}} любые два натуральных числа, а <math>d = (n,\ m)</math>, тогда:<br />
: <math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n)\cdot\frac{d}{\varphi(d)},</math><br />
<br />
|proof = <br />
<br />
Пусть <math>(m,\,n)=d,</math> тогда <math>m = m'd, \; n = n'd,</math> причем в общем случае <math>(m',\,d) \neq 1</math> и <math>(n',\,d) \neq 1.</math> Поэтому можно записать:<br />
:<math>d = d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}},</math><br />
:<math>m' = d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r},</math><br />
:<math>n' = d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}.</math><br />
Здесь первые <math>k</math> делителей <math>d</math> являются также делителями <math>m',</math> а последние <math>K-k</math> делителей <math>d</math> являются делителями <math>n'.</math> Распишем:<br />
:<math>\varphi(mn)= \varphi(d^2 \cdot m'n')<br />
= \varphi((d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}})^2 \cdot d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r} \cdot d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}).</math><br />
В силу мультипликативности функции Эйлера, а также с учётом формулы<br />
:<math>\varphi(p^n) = p^n(1-\frac{1}{p}),</math><br />
где <math>p</math> — простое, получаем:<br />
:<math><br />
\begin{align}<br />
\varphi(mn)<br />
<br />
&= d_1^{\alpha_1+\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_k^{\alpha_k+\delta_k}\left(1-\frac{1}{d_k}\right) \cdot p_1^{\beta_1}\left(1-\frac{1}{p_1}\right) \cdot\ldots\cdot p_r^{\beta_r}\left(1-\frac{1}{p_r}\right) \cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\delta_{K}}\left(1-\frac{1}{d_{K}}\right)\times \\<br />
<br />
&\; \times \; d_{k+1}^{\gamma_{k+1}+\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\gamma_{K}+\delta_{K}}\left(1-\frac{1}{d_{K}}\right) \cdot q_1^{\varepsilon_1}\left(1-\frac{1}{q_1}\right) \cdot\ldots\cdot q_s^{\varepsilon_s}\left(1-\frac{1}{q_s}\right) \cdot d_1^{\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right)\times \\<br />
<br />
&\; \times \; \frac{1}{\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot \left(1-\frac{1}{d_K}\right)}.<br />
\end{align}<br />
</math><br />
В первой строке записано <math>\varphi(m),</math> во второй — <math>\varphi(n),</math> а третью можно представить, как <math>\frac{d}{\varphi(d)}.</math> Поэтому:<br />
:<math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n) \cdot \frac{d}{\varphi(d)}.</math><br />
<br />
}}<br />
<br />
== Применение теоремы Эйлера в других задачах ==<br />
<br />
==== Задача об ожерельях ====<br />
<br />
{{Задача<br />
|definition=<br />
Требуется посчитать количество ожерелий из <tex>n</tex> бусинок, каждая из которых может быть покрашена в один из <tex> k </tex> цветов. При сравнении двух ожерелий их можно поворачивать, но не переворачивать (т.е. разрешается сделать циклический сдвиг).}}<br />
<br />
В ходе решения задачи мы приходим к формуле <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{i = 1}^{n} k^{\mathrm{gcd}(i,n)}</tex><br />
<br />
Мы можем улучшить эту формулу, если рассмотрим выражение <math>\mathrm{gcd}(i,n)</math>. Пусть <math>\mathrm{gcd}(i,n) = q</math>, тогда числа <math>i</math> и <math>n</math> оба делятся на <math>q</math> и больше не имеют общих делителей. Тогда <math>\mathrm{gcd}(\frac{i}{q},\frac{n}{q}) = 1</math>. Таких натуральных <math>i \in [1 ; n]</math> и имеющих <math>\mathrm{gcd}(i,n) = q</math> ровно <tex>\varphi\left(\dfrac{n}{q}\right)</tex>.<br />
<br />
Пользуясь функцией Эйлера, мы можем привести формулу к финальному виду <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{q|n}\varphi\left(\dfrac{n}{q}\right)k^q</tex>.<br />
<br />
== Алгоритм ==<br />
Используя доказанные выше свойства функции, получим алгоритм нахождения <math>\varphi(n)</math> через факторизацию числа, работающий за <math>O(\sqrt{n})</math>. <br />
<br />
'''function''' phi (n):<br />
result = n <br />
i = 2<br />
<br />
'''while''' (i*i <= n):<br />
'''if''' n % i == 0:<br />
'''while''' n % i == 0:<br />
n /= i<br />
result -= result / i<br />
i++<br />
'''if''' (n > 1):<br />
result -= result/n<br />
'''return''' result<br />
<br />
== См. также ==<br />
* [[Задача об ожерельях]]<br />
<br />
== Ссылки ==<br />
* [https://ru.wikipedia.org/wiki/Функция_Эйлера Wikipedia {{---}} Функция Эйлера]<br />
* [https://e-maxx.ru/algo/euler_function Алгоритм нахождения функции Эйлера]<br />
* [https://wikichi.ru/wiki/Divisor_function Функция <math>\sigma</math>]</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=75627Обсуждение участника:MetaMockery2020-12-25T21:51:26Z<p>MetaMockery: /* Функция \tau(n) */</p>
<hr />
<div>== Функция Эйлера ==<br />
<br />
{{Определение<br />
|definition=<br />
''Функция Эйлера'' <tex>\varphi (n) </tex> {{---}} определяется как количество натуральных чисел, не превосходящих <tex>n</tex> и взаимно простых с <tex>n</tex>.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Функция <tex>f : \mathbb{N} \to \mathbb{Z} </tex> называется ''мультипликативной'', если <tex>f(mn) = f(m)f(n)</tex> для любых взаимно простых <tex>m, n</tex>.<br />
}}<br />
<br />
{{Теорема<br />
|about = Мультипликативность функции Эйлера<br />
|statement = Для любых взаимно простых чисел <tex>m, n</tex> <br />
: <math>\varphi(mn)=\varphi(m)\varphi(n)</math><br />
|proof =<br />
Запишем <math>n \cdot m</math> натуральных чисел, не превосходящих <math>n \cdot m</math>, в виде прямоугольной таблицы с <math>n</math> столбцами и <math>m</math> строками, располагая первые <math>n</math> чисел в первой строке, вторые <math>n</math> чисел во второй и т.д. <br />
<br />
Поскольку <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>. <br />
<br />
В данном доказательстве мы испольуем тот факт, что число <math>s</math> взаимно просто с натуральным <math>k</math> тогда и только тогда, когда остаток деления <math>s</math> на <math>k</math> тоже взаимно прост с <math>k</math>.<br />
<br />
Теперь приступим невосредственно к доказательству. Число находящееся в <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> столбцов.<br />
<br />
Перед тем как продолжить доказательство, давайте рассмотрим небольшое утверждение. Пусть нам даны <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>, причем каждый остаток получается ровно из одного из членов прогрессии.<br />
<br />
Воспользуемся данным утверждением, подставив разность арифметиечской прогресии <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>, что и требовалось доказать.<br />
<br />
<br />
}}<br />
<br />
== Функции <tex>\sigma(n)</tex>, <tex>\tau(n)</tex> и <tex>\varphi(n)</tex>, их мультипликативность и значения ==<br />
<br />
Каноническое разложение числа <tex>\displaystyle n = \prod_{i=1}^{r}p_i^{s_i} </tex><br />
<br />
==== Функция <tex>\sigma(n)</tex> ====<br />
<br />
Функция <tex>\sigma : \mathbb{N} \to \mathbb{N} </tex> определяется как сумма делителей натурального числа <tex>n</tex>:<br />
<center><tex>\displaystyle\sigma(n) = \sum_{d | n}d </tex></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\sigma(p) = p + 1</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\sigma(p^s) = \sum_{k=0}^{s}p^k = \frac{p^{s + 1} - 1}{p - 1} </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \sigma (n) = \prod_{i = 1}^{r}{\frac{p_{i}^{s_i+1}-1} {p_{i}-1}}. </tex></center><br />
<br />
<br />
==== Функция <tex>\tau(n)</tex> ====<br />
<br />
Функция <tex>\tau: \mathbb{N} \to \mathbb{N} </tex> определяется как число положительных делителей натурального числа <tex>n</tex>: <br />
<center><tex>\displaystyle\tau(n) = \sum_{d | n}1 </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно-просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\tau(n)</tex> мультипликативна:<br />
<center><math>\tau(mn)=\tau(m)\tau(n)</math></math></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\tau(p) = 2</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\tau(p^s) = s + 1 </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \tau(n) = \prod_{i = 1}^{r}(s_i + 1). </tex></center><br />
<br />
==== Функция <tex>\varphi(n)</tex> ====<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\varphi(p) = p - 1</tex>. На некоторую степень <math>p</math> формулу можно обобщить:<br />
<center><tex>\displaystyle\varphi(p^s) = p^s - p^{s - 1} </tex></center><br />
Обосновывается следующим образом: Все не взаимно-простые с <math>p^s</math> числа в диапазоне от 1 до <math>p^s</math>, очевидно, кратны <math>p</math>. Всего таких чисел <math>p^{s - 1}</math>.<br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i}(1 - \frac{1}{p_i}) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex></center><br />
<br />
== Малая теорема Ферма и теорема Эйлера ==<br />
<br />
{{Теорема<br />
|about= Теорема Эйлера<br />
<br />
|statement = Если <math>n</math> и <math>a</math> - взаимно-простые целые числа, то <math>a^{\varphi(n)} \equiv 1 \ (mod \ n)</math><br />
<br />
|proof =<br />
Число <math>\overline{x}</math> называется вычетом по модулю <math>n</math>, если <math>\overline{x} \equiv x \ (mod \ n)</math>. Вычет <math>\overline{x}</math> называется обратимым вычетом, если существует вычет <math>\overline{y}</math>, что <math>\overline{x}\overline{y} \equiv 1 \ (mod \ n)</math>. Заметим, что вычет <math>\overline{x}</math> обратим тогда и только тогда, когда <math>\overline{x}</math> и <math>n</math> взаимно-просты. В таком случае, у числа <math>n</math> существует всего <math>\varphi(n)</math> обратимых вычетов. Пусть <math>\mathbb{Z}_{n}^{*}</math> - множество всех обратимых вычетов по модулю <math>n</math>.<br />
<br />
Рассмотрим вычеты по модулю <math>n</math>. Так как <math>n</math> и <math>a</math> взаимно-просты, то вычет <math>\overline{a}</math> обратим. Пусть <math>\overline{b_1}, \overline{b_2}, \dots , \overline{b_{\varphi(n)}}</math> - все обратимые вычеты по модулю <math>n</math>. Тогда вычет <math>\overline{b} = \overline{b_1}\overline{b_2}\dots\overline{b_{\varphi(n)}}</math>, равный произведению всех обратимых вычетов, тоже обратим. Заметим, что отображение <math>\mathbb{Z}_{n}^{*} \to \mathbb{Z}_{n}^{*}</math>, заданное формулой <math>\overline{x} \mapsto \overline{a}\cdot\overline{x}</math> является биекцией. В таком случае в выражении <math> \overline{a}^{\varphi(n)}\overline{b} = (\overline{a} \overline{b_1}) \dots (\overline{a} \overline{b_{\varphi(n)}}) </math>, в правой части стоит произведение всех обратимых вычетов, но взятое в другом порядке. Тогда <math>\overline{a}^{\varphi(n)}\overline{b} = \overline{b}</math>. Умножая обе части на вычет, обратный к <math>\overline{b}</math>, получим, что <math>\overline{a}^{\varphi(n)} \equiv 1 \ (mod \ n) </math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
Следствием теоремы Эйлера является малая теорема Ферма. У нее также есть доказательство без использования более общей теоремы Эйлера, однако его мы приводить не будем.<br />
<br />
<br />
{{Теорема<br />
|about = Малая теорема Ферма<br />
<br />
|statement = Если целое число <math>a</math> и простое число <math>p</math> - взаимно-просты, то <math>a^{p - 1} \equiv 1 \ (mod \ p)</math><br />
<br />
|proof = Так как <math>p</math> - простое, то <math>\varphi(p) = p - 1</math>. Воспользуемся теоремой Эйлера, тогда <math>a^{\varphi(p)} = a^{p - 1} \equiv 1 \ (mod \ p)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
== Различные свойства функции Эйлера ==<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Если для каких-то натуральных чисел <math>a</math> и <math>b</math> верно, что <math>a\,|\,b</math>, тогда верно и <math>\varphi(a)\,|\, \varphi(b)</math><br />
<br />
|proof = <br />
Воспользуемся формулой для <tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i - 1}(p_i - 1) </tex>.<br />
<br />
:<math>a = p_1^{\alpha_1} \cdot\ldots\cdot p_{r_a}^{\alpha_{r_a}},</math><br />
:<math>b = p_1^{\beta_1} \cdot\ldots\cdot p_{r_b}^{\beta_{r_b}}</math><br />
<br />
При этом, так как <math>a\,|\,b</math>, то <math>r_a \leq r_b</math>, а также <math>\forall i \in [1\, ;\, r_a] \ \alpha_i \leq \beta_i</math><br />
<br />
<math></math><br />
<br />
Значит <tex>\displaystyle\frac{\varphi(b)}{\varphi(a)}</tex><tex>\displaystyle = \frac{\displaystyle\prod_{i = 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1)}{\displaystyle\prod_{i = 1}^{r_a}p_i^{\alpha_i - 1}(p_i - 1)} = \displaystyle(\prod_{i = 1}^{r_a}p_i^{\beta_i - \alpha_i}) \cdot \displaystyle(\prod_{i = r_a + 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1))</tex>, а значит <math>\varphi(a)\,|\, \varphi(b)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Для любого натурального числа <math>n</math> выполнено равенство <math>\displaystyle n = \sum_{d | n} \varphi(d)</math><br />
<br />
|proof = Данную теорему можно доказать "напролом", пользуясь формулой для <math>\varphi(d)</math>, а можно более элегантно:<br />
<br />
Рассмотрим <math>n</math> дробей <math>\frac{1}{n}, \frac{2}{n}, \dots , \frac{n}{n}</math>. Каждую дробь представим в виде несократимой дроби <math>\frac{p}{q}</math>.<br />
Заметим, что множество значений <math>q</math> {{---}} это множество делителей числа <math>n</math>. Так как дробь <math>\frac{p}{q}</math> несократима, то <math>p</math> и <math>q</math> взаимно-просты. Зная, что <math>p \leq q</math>, легко понять, что всего дробей со знаменателем <math>q</math> ровно <math>\varphi(q)</math>. Так как, все <math>n</math> дробей мы представили в несократимом виде, где знаменатель является делителем <math>n</math>, то <math>\displaystyle \sum_{d | n} \varphi(d) = n</math>, так как всего дробей <math>n</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
:<br />
<br />
{{Теорема<br />
|about = Обобщённая мультипликативность<br />
<br />
|statement = Пусть <math>n</math> и <math>m</math> {{---}} любые два натуральных числа, а <math>d = (n,\ m)</math>, тогда:<br />
: <math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n)\cdot\frac{d}{\varphi(d)},</math><br />
<br />
|proof = <br />
<br />
Пусть <math>(m,\,n)=d,</math> тогда <math>m = m'd, \; n = n'd,</math> причем в общем случае <math>(m',\,d) \neq 1</math> и <math>(n',\,d) \neq 1.</math> Поэтому можно записать:<br />
:<math>d = d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}},</math><br />
:<math>m' = d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r},</math><br />
:<math>n' = d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}.</math><br />
Здесь первые <math>k</math> делителей <math>d</math> являются также делителями <math>m',</math> а последние <math>K-k</math> делителей <math>d</math> являются делителями <math>n'.</math> Распишем:<br />
:<math>\varphi(mn)= \varphi(d^2 \cdot m'n')<br />
= \varphi((d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}})^2 \cdot d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r} \cdot d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}).</math><br />
В силу мультипликативности функции Эйлера, а также с учётом формулы<br />
:<math>\varphi(p^n) = p^n(1-\frac{1}{p}),</math><br />
где <math>p</math> — простое, получаем:<br />
:<math><br />
\begin{align}<br />
\varphi(mn)<br />
<br />
&= d_1^{\alpha_1+\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_k^{\alpha_k+\delta_k}\left(1-\frac{1}{d_k}\right) \cdot p_1^{\beta_1}\left(1-\frac{1}{p_1}\right) \cdot\ldots\cdot p_r^{\beta_r}\left(1-\frac{1}{p_r}\right) \cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\delta_{K}}\left(1-\frac{1}{d_{K}}\right)\times \\<br />
<br />
&\; \times \; d_{k+1}^{\gamma_{k+1}+\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\gamma_{K}+\delta_{K}}\left(1-\frac{1}{d_{K}}\right) \cdot q_1^{\varepsilon_1}\left(1-\frac{1}{q_1}\right) \cdot\ldots\cdot q_s^{\varepsilon_s}\left(1-\frac{1}{q_s}\right) \cdot d_1^{\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right)\times \\<br />
<br />
&\; \times \; \frac{1}{\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot \left(1-\frac{1}{d_K}\right)}.<br />
\end{align}<br />
</math><br />
В первой строке записано <math>\varphi(m),</math> во второй — <math>\varphi(n),</math> а третью можно представить, как <math>\frac{d}{\varphi(d)}.</math> Поэтому:<br />
:<math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n) \cdot \frac{d}{\varphi(d)}.</math><br />
<br />
}}<br />
<br />
== Применение теоремы Эйлера в других задачах ==<br />
<br />
==== Задача об ожерельях ====<br />
<br />
{{Задача<br />
|definition=<br />
Требуется посчитать количество ожерелий из <tex>n</tex> бусинок, каждая из которых может быть покрашена в один из <tex> k </tex> цветов. При сравнении двух ожерелий их можно поворачивать, но не переворачивать (т.е. разрешается сделать циклический сдвиг).}}<br />
<br />
В ходе решения задачи мы приходим к формуле <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{i = 1}^{n} k^{\mathrm{gcd}(i,n)}</tex><br />
<br />
Мы можем улучшить эту формулу, если рассмотрим выражение <math>\mathrm{gcd}(i,n)</math>. Пусть <math>\mathrm{gcd}(i,n) = q</math>, тогда числа <math>i</math> и <math>n</math> оба делятся на <math>q</math> и больше не имеют общих делителей. Тогда <math>\mathrm{gcd}(\frac{i}{q},\frac{n}{q}) = 1</math>. Таких натуральных <math>i \in [1 ; n]</math> и имеющих <math>\mathrm{gcd}(i,n) = q</math> ровно <tex>\varphi\left(\dfrac{n}{q}\right)</tex>.<br />
<br />
Пользуясь функцией Эйлера, мы можем привести формулу к финальному виду <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{q|n}\varphi\left(\dfrac{n}{q}\right)k^q</tex>.<br />
<br />
== Алгоритм ==<br />
Используя доказанные выше свойства функции, получим алгоритм нахождения <math>\varphi(n)</math> через факторизацию числа, работающий за <math>O(\sqrt{n})</math>. <br />
<br />
'''function''' phi (n):<br />
result = n <br />
i = 2<br />
<br />
'''while''' (i*i <= n):<br />
'''if''' n % i == 0:<br />
'''while''' n % i == 0:<br />
n /= i<br />
result -= result / i<br />
i++<br />
'''if''' (n > 1):<br />
result -= result/n<br />
'''return''' result<br />
<br />
== См. также ==<br />
* [[Задача об ожерельях]]<br />
<br />
== Ссылки ==<br />
* [https://ru.wikipedia.org/wiki/Функция_Эйлера Wikipedia {{---}} Функция Эйлера]<br />
* [https://e-maxx.ru/algo/euler_function Алгоритм нахождения функции Эйлера]<br />
* [https://wikichi.ru/wiki/Divisor_function Функция <math>\sigma</math>]</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=75626Обсуждение участника:MetaMockery2020-12-25T21:50:55Z<p>MetaMockery: /* Функция \tau(n) */</p>
<hr />
<div>== Функция Эйлера ==<br />
<br />
{{Определение<br />
|definition=<br />
''Функция Эйлера'' <tex>\varphi (n) </tex> {{---}} определяется как количество натуральных чисел, не превосходящих <tex>n</tex> и взаимно простых с <tex>n</tex>.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Функция <tex>f : \mathbb{N} \to \mathbb{Z} </tex> называется ''мультипликативной'', если <tex>f(mn) = f(m)f(n)</tex> для любых взаимно простых <tex>m, n</tex>.<br />
}}<br />
<br />
{{Теорема<br />
|about = Мультипликативность функции Эйлера<br />
|statement = Для любых взаимно простых чисел <tex>m, n</tex> <br />
: <math>\varphi(mn)=\varphi(m)\varphi(n)</math><br />
|proof =<br />
Запишем <math>n \cdot m</math> натуральных чисел, не превосходящих <math>n \cdot m</math>, в виде прямоугольной таблицы с <math>n</math> столбцами и <math>m</math> строками, располагая первые <math>n</math> чисел в первой строке, вторые <math>n</math> чисел во второй и т.д. <br />
<br />
Поскольку <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>. <br />
<br />
В данном доказательстве мы испольуем тот факт, что число <math>s</math> взаимно просто с натуральным <math>k</math> тогда и только тогда, когда остаток деления <math>s</math> на <math>k</math> тоже взаимно прост с <math>k</math>.<br />
<br />
Теперь приступим невосредственно к доказательству. Число находящееся в <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> столбцов.<br />
<br />
Перед тем как продолжить доказательство, давайте рассмотрим небольшое утверждение. Пусть нам даны <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>, причем каждый остаток получается ровно из одного из членов прогрессии.<br />
<br />
Воспользуемся данным утверждением, подставив разность арифметиечской прогресии <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>, что и требовалось доказать.<br />
<br />
<br />
}}<br />
<br />
== Функции <tex>\sigma(n)</tex>, <tex>\tau(n)</tex> и <tex>\varphi(n)</tex>, их мультипликативность и значения ==<br />
<br />
Каноническое разложение числа <tex>\displaystyle n = \prod_{i=1}^{r}p_i^{s_i} </tex><br />
<br />
==== Функция <tex>\sigma(n)</tex> ====<br />
<br />
Функция <tex>\sigma : \mathbb{N} \to \mathbb{N} </tex> определяется как сумма делителей натурального числа <tex>n</tex>:<br />
<center><tex>\displaystyle\sigma(n) = \sum_{d | n}d </tex></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\sigma(p) = p + 1</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\sigma(p^s) = \sum_{k=0}^{s}p^k = \frac{p^{s + 1} - 1}{p - 1} </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \sigma (n) = \prod_{i = 1}^{r}{\frac{p_{i}^{s_i+1}-1} {p_{i}-1}}. </tex></center><br />
<br />
<br />
==== Функция <tex>\tau(n)</tex> ====<br />
<br />
Функция <tex>\tau: \mathbb{N} \to \mathbb{N} </tex> определяется как число положительных делителей натурального числа <tex>n</tex>: <br />
<center><tex>\displaystyle\tau(n) = \sum_{d | n}1 </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно-просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\tau(n)</tex> мультипликативна:<br />
<center><math>\tau(mn)=\tau(m)\tau(n).</math>, при <math>(n, m) = 1</math></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\tau(p) = 2</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\tau(p^s) = s + 1 </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \tau(n) = \prod_{i = 1}^{r}(s_i + 1). </tex></center><br />
<br />
==== Функция <tex>\varphi(n)</tex> ====<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\varphi(p) = p - 1</tex>. На некоторую степень <math>p</math> формулу можно обобщить:<br />
<center><tex>\displaystyle\varphi(p^s) = p^s - p^{s - 1} </tex></center><br />
Обосновывается следующим образом: Все не взаимно-простые с <math>p^s</math> числа в диапазоне от 1 до <math>p^s</math>, очевидно, кратны <math>p</math>. Всего таких чисел <math>p^{s - 1}</math>.<br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i}(1 - \frac{1}{p_i}) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex></center><br />
<br />
== Малая теорема Ферма и теорема Эйлера ==<br />
<br />
{{Теорема<br />
|about= Теорема Эйлера<br />
<br />
|statement = Если <math>n</math> и <math>a</math> - взаимно-простые целые числа, то <math>a^{\varphi(n)} \equiv 1 \ (mod \ n)</math><br />
<br />
|proof =<br />
Число <math>\overline{x}</math> называется вычетом по модулю <math>n</math>, если <math>\overline{x} \equiv x \ (mod \ n)</math>. Вычет <math>\overline{x}</math> называется обратимым вычетом, если существует вычет <math>\overline{y}</math>, что <math>\overline{x}\overline{y} \equiv 1 \ (mod \ n)</math>. Заметим, что вычет <math>\overline{x}</math> обратим тогда и только тогда, когда <math>\overline{x}</math> и <math>n</math> взаимно-просты. В таком случае, у числа <math>n</math> существует всего <math>\varphi(n)</math> обратимых вычетов. Пусть <math>\mathbb{Z}_{n}^{*}</math> - множество всех обратимых вычетов по модулю <math>n</math>.<br />
<br />
Рассмотрим вычеты по модулю <math>n</math>. Так как <math>n</math> и <math>a</math> взаимно-просты, то вычет <math>\overline{a}</math> обратим. Пусть <math>\overline{b_1}, \overline{b_2}, \dots , \overline{b_{\varphi(n)}}</math> - все обратимые вычеты по модулю <math>n</math>. Тогда вычет <math>\overline{b} = \overline{b_1}\overline{b_2}\dots\overline{b_{\varphi(n)}}</math>, равный произведению всех обратимых вычетов, тоже обратим. Заметим, что отображение <math>\mathbb{Z}_{n}^{*} \to \mathbb{Z}_{n}^{*}</math>, заданное формулой <math>\overline{x} \mapsto \overline{a}\cdot\overline{x}</math> является биекцией. В таком случае в выражении <math> \overline{a}^{\varphi(n)}\overline{b} = (\overline{a} \overline{b_1}) \dots (\overline{a} \overline{b_{\varphi(n)}}) </math>, в правой части стоит произведение всех обратимых вычетов, но взятое в другом порядке. Тогда <math>\overline{a}^{\varphi(n)}\overline{b} = \overline{b}</math>. Умножая обе части на вычет, обратный к <math>\overline{b}</math>, получим, что <math>\overline{a}^{\varphi(n)} \equiv 1 \ (mod \ n) </math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
Следствием теоремы Эйлера является малая теорема Ферма. У нее также есть доказательство без использования более общей теоремы Эйлера, однако его мы приводить не будем.<br />
<br />
<br />
{{Теорема<br />
|about = Малая теорема Ферма<br />
<br />
|statement = Если целое число <math>a</math> и простое число <math>p</math> - взаимно-просты, то <math>a^{p - 1} \equiv 1 \ (mod \ p)</math><br />
<br />
|proof = Так как <math>p</math> - простое, то <math>\varphi(p) = p - 1</math>. Воспользуемся теоремой Эйлера, тогда <math>a^{\varphi(p)} = a^{p - 1} \equiv 1 \ (mod \ p)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
== Различные свойства функции Эйлера ==<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Если для каких-то натуральных чисел <math>a</math> и <math>b</math> верно, что <math>a\,|\,b</math>, тогда верно и <math>\varphi(a)\,|\, \varphi(b)</math><br />
<br />
|proof = <br />
Воспользуемся формулой для <tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i - 1}(p_i - 1) </tex>.<br />
<br />
:<math>a = p_1^{\alpha_1} \cdot\ldots\cdot p_{r_a}^{\alpha_{r_a}},</math><br />
:<math>b = p_1^{\beta_1} \cdot\ldots\cdot p_{r_b}^{\beta_{r_b}}</math><br />
<br />
При этом, так как <math>a\,|\,b</math>, то <math>r_a \leq r_b</math>, а также <math>\forall i \in [1\, ;\, r_a] \ \alpha_i \leq \beta_i</math><br />
<br />
<math></math><br />
<br />
Значит <tex>\displaystyle\frac{\varphi(b)}{\varphi(a)}</tex><tex>\displaystyle = \frac{\displaystyle\prod_{i = 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1)}{\displaystyle\prod_{i = 1}^{r_a}p_i^{\alpha_i - 1}(p_i - 1)} = \displaystyle(\prod_{i = 1}^{r_a}p_i^{\beta_i - \alpha_i}) \cdot \displaystyle(\prod_{i = r_a + 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1))</tex>, а значит <math>\varphi(a)\,|\, \varphi(b)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Для любого натурального числа <math>n</math> выполнено равенство <math>\displaystyle n = \sum_{d | n} \varphi(d)</math><br />
<br />
|proof = Данную теорему можно доказать "напролом", пользуясь формулой для <math>\varphi(d)</math>, а можно более элегантно:<br />
<br />
Рассмотрим <math>n</math> дробей <math>\frac{1}{n}, \frac{2}{n}, \dots , \frac{n}{n}</math>. Каждую дробь представим в виде несократимой дроби <math>\frac{p}{q}</math>.<br />
Заметим, что множество значений <math>q</math> {{---}} это множество делителей числа <math>n</math>. Так как дробь <math>\frac{p}{q}</math> несократима, то <math>p</math> и <math>q</math> взаимно-просты. Зная, что <math>p \leq q</math>, легко понять, что всего дробей со знаменателем <math>q</math> ровно <math>\varphi(q)</math>. Так как, все <math>n</math> дробей мы представили в несократимом виде, где знаменатель является делителем <math>n</math>, то <math>\displaystyle \sum_{d | n} \varphi(d) = n</math>, так как всего дробей <math>n</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
:<br />
<br />
{{Теорема<br />
|about = Обобщённая мультипликативность<br />
<br />
|statement = Пусть <math>n</math> и <math>m</math> {{---}} любые два натуральных числа, а <math>d = (n,\ m)</math>, тогда:<br />
: <math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n)\cdot\frac{d}{\varphi(d)},</math><br />
<br />
|proof = <br />
<br />
Пусть <math>(m,\,n)=d,</math> тогда <math>m = m'd, \; n = n'd,</math> причем в общем случае <math>(m',\,d) \neq 1</math> и <math>(n',\,d) \neq 1.</math> Поэтому можно записать:<br />
:<math>d = d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}},</math><br />
:<math>m' = d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r},</math><br />
:<math>n' = d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}.</math><br />
Здесь первые <math>k</math> делителей <math>d</math> являются также делителями <math>m',</math> а последние <math>K-k</math> делителей <math>d</math> являются делителями <math>n'.</math> Распишем:<br />
:<math>\varphi(mn)= \varphi(d^2 \cdot m'n')<br />
= \varphi((d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}})^2 \cdot d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r} \cdot d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}).</math><br />
В силу мультипликативности функции Эйлера, а также с учётом формулы<br />
:<math>\varphi(p^n) = p^n(1-\frac{1}{p}),</math><br />
где <math>p</math> — простое, получаем:<br />
:<math><br />
\begin{align}<br />
\varphi(mn)<br />
<br />
&= d_1^{\alpha_1+\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_k^{\alpha_k+\delta_k}\left(1-\frac{1}{d_k}\right) \cdot p_1^{\beta_1}\left(1-\frac{1}{p_1}\right) \cdot\ldots\cdot p_r^{\beta_r}\left(1-\frac{1}{p_r}\right) \cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\delta_{K}}\left(1-\frac{1}{d_{K}}\right)\times \\<br />
<br />
&\; \times \; d_{k+1}^{\gamma_{k+1}+\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\gamma_{K}+\delta_{K}}\left(1-\frac{1}{d_{K}}\right) \cdot q_1^{\varepsilon_1}\left(1-\frac{1}{q_1}\right) \cdot\ldots\cdot q_s^{\varepsilon_s}\left(1-\frac{1}{q_s}\right) \cdot d_1^{\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right)\times \\<br />
<br />
&\; \times \; \frac{1}{\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot \left(1-\frac{1}{d_K}\right)}.<br />
\end{align}<br />
</math><br />
В первой строке записано <math>\varphi(m),</math> во второй — <math>\varphi(n),</math> а третью можно представить, как <math>\frac{d}{\varphi(d)}.</math> Поэтому:<br />
:<math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n) \cdot \frac{d}{\varphi(d)}.</math><br />
<br />
}}<br />
<br />
== Применение теоремы Эйлера в других задачах ==<br />
<br />
==== Задача об ожерельях ====<br />
<br />
{{Задача<br />
|definition=<br />
Требуется посчитать количество ожерелий из <tex>n</tex> бусинок, каждая из которых может быть покрашена в один из <tex> k </tex> цветов. При сравнении двух ожерелий их можно поворачивать, но не переворачивать (т.е. разрешается сделать циклический сдвиг).}}<br />
<br />
В ходе решения задачи мы приходим к формуле <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{i = 1}^{n} k^{\mathrm{gcd}(i,n)}</tex><br />
<br />
Мы можем улучшить эту формулу, если рассмотрим выражение <math>\mathrm{gcd}(i,n)</math>. Пусть <math>\mathrm{gcd}(i,n) = q</math>, тогда числа <math>i</math> и <math>n</math> оба делятся на <math>q</math> и больше не имеют общих делителей. Тогда <math>\mathrm{gcd}(\frac{i}{q},\frac{n}{q}) = 1</math>. Таких натуральных <math>i \in [1 ; n]</math> и имеющих <math>\mathrm{gcd}(i,n) = q</math> ровно <tex>\varphi\left(\dfrac{n}{q}\right)</tex>.<br />
<br />
Пользуясь функцией Эйлера, мы можем привести формулу к финальному виду <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{q|n}\varphi\left(\dfrac{n}{q}\right)k^q</tex>.<br />
<br />
== Алгоритм ==<br />
Используя доказанные выше свойства функции, получим алгоритм нахождения <math>\varphi(n)</math> через факторизацию числа, работающий за <math>O(\sqrt{n})</math>. <br />
<br />
'''function''' phi (n):<br />
result = n <br />
i = 2<br />
<br />
'''while''' (i*i <= n):<br />
'''if''' n % i == 0:<br />
'''while''' n % i == 0:<br />
n /= i<br />
result -= result / i<br />
i++<br />
'''if''' (n > 1):<br />
result -= result/n<br />
'''return''' result<br />
<br />
== См. также ==<br />
* [[Задача об ожерельях]]<br />
<br />
== Ссылки ==<br />
* [https://ru.wikipedia.org/wiki/Функция_Эйлера Wikipedia {{---}} Функция Эйлера]<br />
* [https://e-maxx.ru/algo/euler_function Алгоритм нахождения функции Эйлера]<br />
* [https://wikichi.ru/wiki/Divisor_function Функция <math>\sigma</math>]</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=75625Обсуждение участника:MetaMockery2020-12-25T21:47:59Z<p>MetaMockery: /* Функция Эйлера */</p>
<hr />
<div>== Функция Эйлера ==<br />
<br />
{{Определение<br />
|definition=<br />
''Функция Эйлера'' <tex>\varphi (n) </tex> {{---}} определяется как количество натуральных чисел, не превосходящих <tex>n</tex> и взаимно простых с <tex>n</tex>.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Функция <tex>f : \mathbb{N} \to \mathbb{Z} </tex> называется ''мультипликативной'', если <tex>f(mn) = f(m)f(n)</tex> для любых взаимно простых <tex>m, n</tex>.<br />
}}<br />
<br />
{{Теорема<br />
|about = Мультипликативность функции Эйлера<br />
|statement = Для любых взаимно простых чисел <tex>m, n</tex> <br />
: <math>\varphi(mn)=\varphi(m)\varphi(n)</math><br />
|proof =<br />
Запишем <math>n \cdot m</math> натуральных чисел, не превосходящих <math>n \cdot m</math>, в виде прямоугольной таблицы с <math>n</math> столбцами и <math>m</math> строками, располагая первые <math>n</math> чисел в первой строке, вторые <math>n</math> чисел во второй и т.д. <br />
<br />
Поскольку <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>. <br />
<br />
В данном доказательстве мы испольуем тот факт, что число <math>s</math> взаимно просто с натуральным <math>k</math> тогда и только тогда, когда остаток деления <math>s</math> на <math>k</math> тоже взаимно прост с <math>k</math>.<br />
<br />
Теперь приступим невосредственно к доказательству. Число находящееся в <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> столбцов.<br />
<br />
Перед тем как продолжить доказательство, давайте рассмотрим небольшое утверждение. Пусть нам даны <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>, причем каждый остаток получается ровно из одного из членов прогрессии.<br />
<br />
Воспользуемся данным утверждением, подставив разность арифметиечской прогресии <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>, что и требовалось доказать.<br />
<br />
<br />
}}<br />
<br />
== Функции <tex>\sigma(n)</tex>, <tex>\tau(n)</tex> и <tex>\varphi(n)</tex>, их мультипликативность и значения ==<br />
<br />
Каноническое разложение числа <tex>\displaystyle n = \prod_{i=1}^{r}p_i^{s_i} </tex><br />
<br />
==== Функция <tex>\sigma(n)</tex> ====<br />
<br />
Функция <tex>\sigma : \mathbb{N} \to \mathbb{N} </tex> определяется как сумма делителей натурального числа <tex>n</tex>:<br />
<center><tex>\displaystyle\sigma(n) = \sum_{d | n}d </tex></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\sigma(p) = p + 1</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\sigma(p^s) = \sum_{k=0}^{s}p^k = \frac{p^{s + 1} - 1}{p - 1} </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \sigma (n) = \prod_{i = 1}^{r}{\frac{p_{i}^{s_i+1}-1} {p_{i}-1}}. </tex></center><br />
<br />
<br />
==== Функция <tex>\tau(n)</tex> ====<br />
<br />
Функция <tex>\tau: \mathbb{N} \to \mathbb{N} </tex> определяется как число положительных делителей натурального числа <tex>n</tex>: <br />
<center><tex>\displaystyle\tau(n) = \sum_{d | n}1 </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно-просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\tau(n)</tex> мультипликативна:<br />
<center><math>\tau(mn)=\tau(m)\tau(n).</math></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\tau(p) = 2</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\tau(p^s) = s + 1 </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \tau(n) = \prod_{i = 1}^{r}(s_i + 1). </tex></center><br />
<br />
<br />
==== Функция <tex>\varphi(n)</tex> ====<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\varphi(p) = p - 1</tex>. На некоторую степень <math>p</math> формулу можно обобщить:<br />
<center><tex>\displaystyle\varphi(p^s) = p^s - p^{s - 1} </tex></center><br />
Обосновывается следующим образом: Все не взаимно-простые с <math>p^s</math> числа в диапазоне от 1 до <math>p^s</math>, очевидно, кратны <math>p</math>. Всего таких чисел <math>p^{s - 1}</math>.<br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i}(1 - \frac{1}{p_i}) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex></center><br />
<br />
== Малая теорема Ферма и теорема Эйлера ==<br />
<br />
{{Теорема<br />
|about= Теорема Эйлера<br />
<br />
|statement = Если <math>n</math> и <math>a</math> - взаимно-простые целые числа, то <math>a^{\varphi(n)} \equiv 1 \ (mod \ n)</math><br />
<br />
|proof =<br />
Число <math>\overline{x}</math> называется вычетом по модулю <math>n</math>, если <math>\overline{x} \equiv x \ (mod \ n)</math>. Вычет <math>\overline{x}</math> называется обратимым вычетом, если существует вычет <math>\overline{y}</math>, что <math>\overline{x}\overline{y} \equiv 1 \ (mod \ n)</math>. Заметим, что вычет <math>\overline{x}</math> обратим тогда и только тогда, когда <math>\overline{x}</math> и <math>n</math> взаимно-просты. В таком случае, у числа <math>n</math> существует всего <math>\varphi(n)</math> обратимых вычетов. Пусть <math>\mathbb{Z}_{n}^{*}</math> - множество всех обратимых вычетов по модулю <math>n</math>.<br />
<br />
Рассмотрим вычеты по модулю <math>n</math>. Так как <math>n</math> и <math>a</math> взаимно-просты, то вычет <math>\overline{a}</math> обратим. Пусть <math>\overline{b_1}, \overline{b_2}, \dots , \overline{b_{\varphi(n)}}</math> - все обратимые вычеты по модулю <math>n</math>. Тогда вычет <math>\overline{b} = \overline{b_1}\overline{b_2}\dots\overline{b_{\varphi(n)}}</math>, равный произведению всех обратимых вычетов, тоже обратим. Заметим, что отображение <math>\mathbb{Z}_{n}^{*} \to \mathbb{Z}_{n}^{*}</math>, заданное формулой <math>\overline{x} \mapsto \overline{a}\cdot\overline{x}</math> является биекцией. В таком случае в выражении <math> \overline{a}^{\varphi(n)}\overline{b} = (\overline{a} \overline{b_1}) \dots (\overline{a} \overline{b_{\varphi(n)}}) </math>, в правой части стоит произведение всех обратимых вычетов, но взятое в другом порядке. Тогда <math>\overline{a}^{\varphi(n)}\overline{b} = \overline{b}</math>. Умножая обе части на вычет, обратный к <math>\overline{b}</math>, получим, что <math>\overline{a}^{\varphi(n)} \equiv 1 \ (mod \ n) </math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
Следствием теоремы Эйлера является малая теорема Ферма. У нее также есть доказательство без использования более общей теоремы Эйлера, однако его мы приводить не будем.<br />
<br />
<br />
{{Теорема<br />
|about = Малая теорема Ферма<br />
<br />
|statement = Если целое число <math>a</math> и простое число <math>p</math> - взаимно-просты, то <math>a^{p - 1} \equiv 1 \ (mod \ p)</math><br />
<br />
|proof = Так как <math>p</math> - простое, то <math>\varphi(p) = p - 1</math>. Воспользуемся теоремой Эйлера, тогда <math>a^{\varphi(p)} = a^{p - 1} \equiv 1 \ (mod \ p)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
== Различные свойства функции Эйлера ==<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Если для каких-то натуральных чисел <math>a</math> и <math>b</math> верно, что <math>a\,|\,b</math>, тогда верно и <math>\varphi(a)\,|\, \varphi(b)</math><br />
<br />
|proof = <br />
Воспользуемся формулой для <tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i - 1}(p_i - 1) </tex>.<br />
<br />
:<math>a = p_1^{\alpha_1} \cdot\ldots\cdot p_{r_a}^{\alpha_{r_a}},</math><br />
:<math>b = p_1^{\beta_1} \cdot\ldots\cdot p_{r_b}^{\beta_{r_b}}</math><br />
<br />
При этом, так как <math>a\,|\,b</math>, то <math>r_a \leq r_b</math>, а также <math>\forall i \in [1\, ;\, r_a] \ \alpha_i \leq \beta_i</math><br />
<br />
<math></math><br />
<br />
Значит <tex>\displaystyle\frac{\varphi(b)}{\varphi(a)}</tex><tex>\displaystyle = \frac{\displaystyle\prod_{i = 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1)}{\displaystyle\prod_{i = 1}^{r_a}p_i^{\alpha_i - 1}(p_i - 1)} = \displaystyle(\prod_{i = 1}^{r_a}p_i^{\beta_i - \alpha_i}) \cdot \displaystyle(\prod_{i = r_a + 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1))</tex>, а значит <math>\varphi(a)\,|\, \varphi(b)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Для любого натурального числа <math>n</math> выполнено равенство <math>\displaystyle n = \sum_{d | n} \varphi(d)</math><br />
<br />
|proof = Данную теорему можно доказать "напролом", пользуясь формулой для <math>\varphi(d)</math>, а можно более элегантно:<br />
<br />
Рассмотрим <math>n</math> дробей <math>\frac{1}{n}, \frac{2}{n}, \dots , \frac{n}{n}</math>. Каждую дробь представим в виде несократимой дроби <math>\frac{p}{q}</math>.<br />
Заметим, что множество значений <math>q</math> {{---}} это множество делителей числа <math>n</math>. Так как дробь <math>\frac{p}{q}</math> несократима, то <math>p</math> и <math>q</math> взаимно-просты. Зная, что <math>p \leq q</math>, легко понять, что всего дробей со знаменателем <math>q</math> ровно <math>\varphi(q)</math>. Так как, все <math>n</math> дробей мы представили в несократимом виде, где знаменатель является делителем <math>n</math>, то <math>\displaystyle \sum_{d | n} \varphi(d) = n</math>, так как всего дробей <math>n</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
:<br />
<br />
{{Теорема<br />
|about = Обобщённая мультипликативность<br />
<br />
|statement = Пусть <math>n</math> и <math>m</math> {{---}} любые два натуральных числа, а <math>d = (n,\ m)</math>, тогда:<br />
: <math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n)\cdot\frac{d}{\varphi(d)},</math><br />
<br />
|proof = <br />
<br />
Пусть <math>(m,\,n)=d,</math> тогда <math>m = m'd, \; n = n'd,</math> причем в общем случае <math>(m',\,d) \neq 1</math> и <math>(n',\,d) \neq 1.</math> Поэтому можно записать:<br />
:<math>d = d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}},</math><br />
:<math>m' = d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r},</math><br />
:<math>n' = d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}.</math><br />
Здесь первые <math>k</math> делителей <math>d</math> являются также делителями <math>m',</math> а последние <math>K-k</math> делителей <math>d</math> являются делителями <math>n'.</math> Распишем:<br />
:<math>\varphi(mn)= \varphi(d^2 \cdot m'n')<br />
= \varphi((d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}})^2 \cdot d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r} \cdot d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}).</math><br />
В силу мультипликативности функции Эйлера, а также с учётом формулы<br />
:<math>\varphi(p^n) = p^n(1-\frac{1}{p}),</math><br />
где <math>p</math> — простое, получаем:<br />
:<math><br />
\begin{align}<br />
\varphi(mn)<br />
<br />
&= d_1^{\alpha_1+\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_k^{\alpha_k+\delta_k}\left(1-\frac{1}{d_k}\right) \cdot p_1^{\beta_1}\left(1-\frac{1}{p_1}\right) \cdot\ldots\cdot p_r^{\beta_r}\left(1-\frac{1}{p_r}\right) \cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\delta_{K}}\left(1-\frac{1}{d_{K}}\right)\times \\<br />
<br />
&\; \times \; d_{k+1}^{\gamma_{k+1}+\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\gamma_{K}+\delta_{K}}\left(1-\frac{1}{d_{K}}\right) \cdot q_1^{\varepsilon_1}\left(1-\frac{1}{q_1}\right) \cdot\ldots\cdot q_s^{\varepsilon_s}\left(1-\frac{1}{q_s}\right) \cdot d_1^{\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right)\times \\<br />
<br />
&\; \times \; \frac{1}{\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot \left(1-\frac{1}{d_K}\right)}.<br />
\end{align}<br />
</math><br />
В первой строке записано <math>\varphi(m),</math> во второй — <math>\varphi(n),</math> а третью можно представить, как <math>\frac{d}{\varphi(d)}.</math> Поэтому:<br />
:<math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n) \cdot \frac{d}{\varphi(d)}.</math><br />
<br />
}}<br />
<br />
== Применение теоремы Эйлера в других задачах ==<br />
<br />
==== Задача об ожерельях ====<br />
<br />
{{Задача<br />
|definition=<br />
Требуется посчитать количество ожерелий из <tex>n</tex> бусинок, каждая из которых может быть покрашена в один из <tex> k </tex> цветов. При сравнении двух ожерелий их можно поворачивать, но не переворачивать (т.е. разрешается сделать циклический сдвиг).}}<br />
<br />
В ходе решения задачи мы приходим к формуле <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{i = 1}^{n} k^{\mathrm{gcd}(i,n)}</tex><br />
<br />
Мы можем улучшить эту формулу, если рассмотрим выражение <math>\mathrm{gcd}(i,n)</math>. Пусть <math>\mathrm{gcd}(i,n) = q</math>, тогда числа <math>i</math> и <math>n</math> оба делятся на <math>q</math> и больше не имеют общих делителей. Тогда <math>\mathrm{gcd}(\frac{i}{q},\frac{n}{q}) = 1</math>. Таких натуральных <math>i \in [1 ; n]</math> и имеющих <math>\mathrm{gcd}(i,n) = q</math> ровно <tex>\varphi\left(\dfrac{n}{q}\right)</tex>.<br />
<br />
Пользуясь функцией Эйлера, мы можем привести формулу к финальному виду <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{q|n}\varphi\left(\dfrac{n}{q}\right)k^q</tex>.<br />
<br />
== Алгоритм ==<br />
Используя доказанные выше свойства функции, получим алгоритм нахождения <math>\varphi(n)</math> через факторизацию числа, работающий за <math>O(\sqrt{n})</math>. <br />
<br />
'''function''' phi (n):<br />
result = n <br />
i = 2<br />
<br />
'''while''' (i*i <= n):<br />
'''if''' n % i == 0:<br />
'''while''' n % i == 0:<br />
n /= i<br />
result -= result / i<br />
i++<br />
'''if''' (n > 1):<br />
result -= result/n<br />
'''return''' result<br />
<br />
== См. также ==<br />
* [[Задача об ожерельях]]<br />
<br />
== Ссылки ==<br />
* [https://ru.wikipedia.org/wiki/Функция_Эйлера Wikipedia {{---}} Функция Эйлера]<br />
* [https://e-maxx.ru/algo/euler_function Алгоритм нахождения функции Эйлера]<br />
* [https://wikichi.ru/wiki/Divisor_function Функция <math>\sigma</math>]</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=75623Обсуждение участника:MetaMockery2020-12-25T21:35:53Z<p>MetaMockery: /* Функция Эйлера */</p>
<hr />
<div>== Функция Эйлера ==<br />
<br />
{{Определение<br />
|definition=<br />
''Функция Эйлера'' <tex>\varphi (n) </tex> {{---}} определяется как количество натуральных чисел, не превосходящих <tex>n</tex> и взаимно простых с <tex>n</tex>.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Функция <tex>f : \mathbb{N} \to \mathbb{Z} </tex> называется ''мультипликативной'', если <tex>f(mn) = f(m)f(n)</tex> для любых взаимно простых <tex>m, n</tex>.<br />
}}<br />
<br />
{{Теорема<br />
|about = Мультипликативность функции Эйлера<br />
|statement = Для любых взаимно простых чисел <tex>m, n</tex> <br />
: <math>\varphi(mn)=\varphi(m)\varphi(n)</math><br />
|proof =<br />
Запишем <math>n \cdot m</math> натуральных чисел, не превосходящих <math>n \cdot m</math>, в виде прямоугольной таблицы с <math>n</math> столбцами и <math>m</math> строками, располагая первые <math>n</math> чисел в первой строке, вторые <math>n</math> чисел во второй и т.д. <br />
<br />
Поскольку <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>. <br />
<br />
В данном доказательстве мы используя тот факт, что число <math>s</math> взаимно просто с натуральным <math>k</math> тогда и только тогда, когда остаток деления <math>s</math> на <math>k</math> тоже взаимно прост с <math>k</math>.<br />
<br />
Теперь приступим невосредственно к доказательству. Число находящееся в <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>\varphi(m)</math> строк.<br />
<br />
Следовательно всего чисел, взаимно простых и с <math>n</math> и с <math>m</math> равно <math>\varphi(m)\varphi(n)</math>, что и требовалось доказать.<br />
}}<br />
<br />
== Функции <tex>\sigma(n)</tex>, <tex>\tau(n)</tex> и <tex>\varphi(n)</tex>, их мультипликативность и значения ==<br />
<br />
Каноническое разложение числа <tex>\displaystyle n = \prod_{i=1}^{r}p_i^{s_i} </tex><br />
<br />
==== Функция <tex>\sigma(n)</tex> ====<br />
<br />
Функция <tex>\sigma : \mathbb{N} \to \mathbb{N} </tex> определяется как сумма делителей натурального числа <tex>n</tex>:<br />
<center><tex>\displaystyle\sigma(n) = \sum_{d | n}d </tex></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\sigma(p) = p + 1</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\sigma(p^s) = \sum_{k=0}^{s}p^k = \frac{p^{s + 1} - 1}{p - 1} </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \sigma (n) = \prod_{i = 1}^{r}{\frac{p_{i}^{s_i+1}-1} {p_{i}-1}}. </tex></center><br />
<br />
<br />
==== Функция <tex>\tau(n)</tex> ====<br />
<br />
Функция <tex>\tau: \mathbb{N} \to \mathbb{N} </tex> определяется как число положительных делителей натурального числа <tex>n</tex>: <br />
<center><tex>\displaystyle\tau(n) = \sum_{d | n}1 </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно-просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\tau(n)</tex> мультипликативна:<br />
<center><math>\tau(mn)=\tau(m)\tau(n).</math></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\tau(p) = 2</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\tau(p^s) = s + 1 </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \tau(n) = \prod_{i = 1}^{r}(s_i + 1). </tex></center><br />
<br />
<br />
==== Функция <tex>\varphi(n)</tex> ====<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\varphi(p) = p - 1</tex>. На некоторую степень <math>p</math> формулу можно обобщить:<br />
<center><tex>\displaystyle\varphi(p^s) = p^s - p^{s - 1} </tex></center><br />
Обосновывается следующим образом: Все не взаимно-простые с <math>p^s</math> числа в диапазоне от 1 до <math>p^s</math>, очевидно, кратны <math>p</math>. Всего таких чисел <math>p^{s - 1}</math>.<br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i}(1 - \frac{1}{p_i}) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex></center><br />
<br />
== Малая теорема Ферма и теорема Эйлера ==<br />
<br />
{{Теорема<br />
|about= Теорема Эйлера<br />
<br />
|statement = Если <math>n</math> и <math>a</math> - взаимно-простые целые числа, то <math>a^{\varphi(n)} \equiv 1 \ (mod \ n)</math><br />
<br />
|proof =<br />
Число <math>\overline{x}</math> называется вычетом по модулю <math>n</math>, если <math>\overline{x} \equiv x \ (mod \ n)</math>. Вычет <math>\overline{x}</math> называется обратимым вычетом, если существует вычет <math>\overline{y}</math>, что <math>\overline{x}\overline{y} \equiv 1 \ (mod \ n)</math>. Заметим, что вычет <math>\overline{x}</math> обратим тогда и только тогда, когда <math>\overline{x}</math> и <math>n</math> взаимно-просты. В таком случае, у числа <math>n</math> существует всего <math>\varphi(n)</math> обратимых вычетов. Пусть <math>\mathbb{Z}_{n}^{*}</math> - множество всех обратимых вычетов по модулю <math>n</math>.<br />
<br />
Рассмотрим вычеты по модулю <math>n</math>. Так как <math>n</math> и <math>a</math> взаимно-просты, то вычет <math>\overline{a}</math> обратим. Пусть <math>\overline{b_1}, \overline{b_2}, \dots , \overline{b_{\varphi(n)}}</math> - все обратимые вычеты по модулю <math>n</math>. Тогда вычет <math>\overline{b} = \overline{b_1}\overline{b_2}\dots\overline{b_{\varphi(n)}}</math>, равный произведению всех обратимых вычетов, тоже обратим. Заметим, что отображение <math>\mathbb{Z}_{n}^{*} \to \mathbb{Z}_{n}^{*}</math>, заданное формулой <math>\overline{x} \mapsto \overline{a}\cdot\overline{x}</math> является биекцией. В таком случае в выражении <math> \overline{a}^{\varphi(n)}\overline{b} = (\overline{a} \overline{b_1}) \dots (\overline{a} \overline{b_{\varphi(n)}}) </math>, в правой части стоит произведение всех обратимых вычетов, но взятое в другом порядке. Тогда <math>\overline{a}^{\varphi(n)}\overline{b} = \overline{b}</math>. Умножая обе части на вычет, обратный к <math>\overline{b}</math>, получим, что <math>\overline{a}^{\varphi(n)} \equiv 1 \ (mod \ n) </math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
Следствием теоремы Эйлера является малая теорема Ферма. У нее также есть доказательство без использования более общей теоремы Эйлера, однако его мы приводить не будем.<br />
<br />
<br />
{{Теорема<br />
|about = Малая теорема Ферма<br />
<br />
|statement = Если целое число <math>a</math> и простое число <math>p</math> - взаимно-просты, то <math>a^{p - 1} \equiv 1 \ (mod \ p)</math><br />
<br />
|proof = Так как <math>p</math> - простое, то <math>\varphi(p) = p - 1</math>. Воспользуемся теоремой Эйлера, тогда <math>a^{\varphi(p)} = a^{p - 1} \equiv 1 \ (mod \ p)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
== Различные свойства функции Эйлера ==<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Если для каких-то натуральных чисел <math>a</math> и <math>b</math> верно, что <math>a\,|\,b</math>, тогда верно и <math>\varphi(a)\,|\, \varphi(b)</math><br />
<br />
|proof = <br />
Воспользуемся формулой для <tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i - 1}(p_i - 1) </tex>.<br />
<br />
:<math>a = p_1^{\alpha_1} \cdot\ldots\cdot p_{r_a}^{\alpha_{r_a}},</math><br />
:<math>b = p_1^{\beta_1} \cdot\ldots\cdot p_{r_b}^{\beta_{r_b}}</math><br />
<br />
При этом, так как <math>a\,|\,b</math>, то <math>r_a \leq r_b</math>, а также <math>\forall i \in [1\, ;\, r_a] \ \alpha_i \leq \beta_i</math><br />
<br />
<math></math><br />
<br />
Значит <tex>\displaystyle\frac{\varphi(b)}{\varphi(a)}</tex><tex>\displaystyle = \frac{\displaystyle\prod_{i = 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1)}{\displaystyle\prod_{i = 1}^{r_a}p_i^{\alpha_i - 1}(p_i - 1)} = \displaystyle(\prod_{i = 1}^{r_a}p_i^{\beta_i - \alpha_i}) \cdot \displaystyle(\prod_{i = r_a + 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1))</tex>, а значит <math>\varphi(a)\,|\, \varphi(b)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Для любого натурального числа <math>n</math> выполнено равенство <math>\displaystyle n = \sum_{d | n} \varphi(d)</math><br />
<br />
|proof = Данную теорему можно доказать "напролом", пользуясь формулой для <math>\varphi(d)</math>, а можно более элегантно:<br />
<br />
Рассмотрим <math>n</math> дробей <math>\frac{1}{n}, \frac{2}{n}, \dots , \frac{n}{n}</math>. Каждую дробь представим в виде несократимой дроби <math>\frac{p}{q}</math>.<br />
Заметим, что множество значений <math>q</math> {{---}} это множество делителей числа <math>n</math>. Так как дробь <math>\frac{p}{q}</math> несократима, то <math>p</math> и <math>q</math> взаимно-просты. Зная, что <math>p \leq q</math>, легко понять, что всего дробей со знаменателем <math>q</math> ровно <math>\varphi(q)</math>. Так как, все <math>n</math> дробей мы представили в несократимом виде, где знаменатель является делителем <math>n</math>, то <math>\displaystyle \sum_{d | n} \varphi(d) = n</math>, так как всего дробей <math>n</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
:<br />
<br />
{{Теорема<br />
|about = Обобщённая мультипликативность<br />
<br />
|statement = Пусть <math>n</math> и <math>m</math> {{---}} любые два натуральных числа, а <math>d = (n,\ m)</math>, тогда:<br />
: <math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n)\cdot\frac{d}{\varphi(d)},</math><br />
<br />
|proof = <br />
<br />
Пусть <math>(m,\,n)=d,</math> тогда <math>m = m'd, \; n = n'd,</math> причем в общем случае <math>(m',\,d) \neq 1</math> и <math>(n',\,d) \neq 1.</math> Поэтому можно записать:<br />
:<math>d = d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}},</math><br />
:<math>m' = d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r},</math><br />
:<math>n' = d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}.</math><br />
Здесь первые <math>k</math> делителей <math>d</math> являются также делителями <math>m',</math> а последние <math>K-k</math> делителей <math>d</math> являются делителями <math>n'.</math> Распишем:<br />
:<math>\varphi(mn)= \varphi(d^2 \cdot m'n')<br />
= \varphi((d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}})^2 \cdot d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r} \cdot d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}).</math><br />
В силу мультипликативности функции Эйлера, а также с учётом формулы<br />
:<math>\varphi(p^n) = p^n(1-\frac{1}{p}),</math><br />
где <math>p</math> — простое, получаем:<br />
:<math><br />
\begin{align}<br />
\varphi(mn)<br />
<br />
&= d_1^{\alpha_1+\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_k^{\alpha_k+\delta_k}\left(1-\frac{1}{d_k}\right) \cdot p_1^{\beta_1}\left(1-\frac{1}{p_1}\right) \cdot\ldots\cdot p_r^{\beta_r}\left(1-\frac{1}{p_r}\right) \cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\delta_{K}}\left(1-\frac{1}{d_{K}}\right)\times \\<br />
<br />
&\; \times \; d_{k+1}^{\gamma_{k+1}+\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\gamma_{K}+\delta_{K}}\left(1-\frac{1}{d_{K}}\right) \cdot q_1^{\varepsilon_1}\left(1-\frac{1}{q_1}\right) \cdot\ldots\cdot q_s^{\varepsilon_s}\left(1-\frac{1}{q_s}\right) \cdot d_1^{\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right)\times \\<br />
<br />
&\; \times \; \frac{1}{\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot \left(1-\frac{1}{d_K}\right)}.<br />
\end{align}<br />
</math><br />
В первой строке записано <math>\varphi(m),</math> во второй — <math>\varphi(n),</math> а третью можно представить, как <math>\frac{d}{\varphi(d)}.</math> Поэтому:<br />
:<math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n) \cdot \frac{d}{\varphi(d)}.</math><br />
<br />
}}<br />
<br />
== Применение теоремы Эйлера в других задачах ==<br />
<br />
==== Задача об ожерельях ====<br />
<br />
{{Задача<br />
|definition=<br />
Требуется посчитать количество ожерелий из <tex>n</tex> бусинок, каждая из которых может быть покрашена в один из <tex> k </tex> цветов. При сравнении двух ожерелий их можно поворачивать, но не переворачивать (т.е. разрешается сделать циклический сдвиг).}}<br />
<br />
В ходе решения задачи мы приходим к формуле <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{i = 1}^{n} k^{\mathrm{gcd}(i,n)}</tex><br />
<br />
Мы можем улучшить эту формулу, если рассмотрим выражение <math>\mathrm{gcd}(i,n)</math>. Пусть <math>\mathrm{gcd}(i,n) = q</math>, тогда числа <math>i</math> и <math>n</math> оба делятся на <math>q</math> и больше не имеют общих делителей. Тогда <math>\mathrm{gcd}(\frac{i}{q},\frac{n}{q}) = 1</math>. Таких натуральных <math>i \in [1 ; n]</math> и имеющих <math>\mathrm{gcd}(i,n) = q</math> ровно <tex>\varphi\left(\dfrac{n}{q}\right)</tex>.<br />
<br />
Пользуясь функцией Эйлера, мы можем привести формулу к финальному виду <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{q|n}\varphi\left(\dfrac{n}{q}\right)k^q</tex>.<br />
<br />
== Алгоритм ==<br />
Используя доказанные выше свойства функции, получим алгоритм нахождения <math>\varphi(n)</math> через факторизацию числа, работающий за <math>O(\sqrt{n})</math>. <br />
<br />
'''function''' phi (n):<br />
result = n <br />
i = 2<br />
<br />
'''while''' (i*i <= n):<br />
'''if''' n % i == 0:<br />
'''while''' n % i == 0:<br />
n /= i<br />
result -= result / i<br />
i++<br />
'''if''' (n > 1):<br />
result -= result/n<br />
'''return''' result<br />
<br />
== См. также ==<br />
* [[Задача об ожерельях]]<br />
<br />
== Ссылки ==<br />
* [https://ru.wikipedia.org/wiki/Функция_Эйлера Wikipedia {{---}} Функция Эйлера]<br />
* [https://e-maxx.ru/algo/euler_function Алгоритм нахождения функции Эйлера]<br />
* [https://wikichi.ru/wiki/Divisor_function Функция <math>\sigma</math>]</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=75622Обсуждение участника:MetaMockery2020-12-25T21:35:03Z<p>MetaMockery: /* Функция Эйлера */</p>
<hr />
<div>== Функция Эйлера ==<br />
<br />
{{Определение<br />
|definition=<br />
''Функция Эйлера'' <tex>\varphi (n) </tex> {{---}} определяется как количество натуральных чисел, не превосходящих <tex>n</tex> и взаимно простых с <tex>n</tex>.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Функция <tex>f : \mathbb{N} \to \mathbb{Z} </tex> называется ''мультипликативной'', если <tex>f(mn) = f(m)f(n)</tex> для любых взаимно простых <tex>m, n</tex>.<br />
}}<br />
<br />
{{Теорема<br />
|about = Мультипликативность функции Эйлера<br />
|statement = Для любых взаимно простых чисел <tex>m, n</tex> <br />
: <math>\varphi(mn)=\varphi(m)\varphi(n)</math><br />
|proof =<br />
Запишем <math>n \cdot m</math> натуральных чисел, не превосходящих <math>n \cdot m</math>, в виде прямоугольной таблицы с <math>n</math> столбцами и <math>m</math> строками, располагая первые <math>n</math> чисел в первой строке, вторые <math>n</math> чисел во второй и т.д. <br />
<br />
Поскольку <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>. <br />
<br />
В данном доказательстве мы используя тот факт, что число <math>s</math> взаимно просто с натуральным <math>k</math> тогда и только тогда, когда остаток деления <math>s</math> на <math>k</math> тоже взаимно прост с <math>k</math>.<br />
<br />
Теперь приступим невосредственно к доказательству. Число находящееся в <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>\varphi(m)</math> строк.<br />
<br />
Следовательно всего чисел, взаимно простых и с <math>n</math> и с <math>m</math> равно <math>\varphi(m)\varphi(n)</math>, что и требовалось доказать.<br />
}}<br />
<br />
== Функции <tex>\sigma(n)</tex>, <tex>\tau(n)</tex> и <tex>\varphi(n)</tex>, их мультипликативность и значения ==<br />
<br />
Каноническое разложение числа <tex>\displaystyle n = \prod_{i=1}^{r}p_i^{s_i} </tex><br />
<br />
==== Функция <tex>\sigma(n)</tex> ====<br />
<br />
Функция <tex>\sigma : \mathbb{N} \to \mathbb{N} </tex> определяется как сумма делителей натурального числа <tex>n</tex>:<br />
<center><tex>\displaystyle\sigma(n) = \sum_{d | n}d </tex></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\sigma(p) = p + 1</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\sigma(p^s) = \sum_{k=0}^{s}p^k = \frac{p^{s + 1} - 1}{p - 1} </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \sigma (n) = \prod_{i = 1}^{r}{\frac{p_{i}^{s_i+1}-1} {p_{i}-1}}. </tex></center><br />
<br />
<br />
==== Функция <tex>\tau(n)</tex> ====<br />
<br />
Функция <tex>\tau: \mathbb{N} \to \mathbb{N} </tex> определяется как число положительных делителей натурального числа <tex>n</tex>: <br />
<center><tex>\displaystyle\tau(n) = \sum_{d | n}1 </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно-просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\tau(n)</tex> мультипликативна:<br />
<center><math>\tau(mn)=\tau(m)\tau(n).</math></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\tau(p) = 2</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\tau(p^s) = s + 1 </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \tau(n) = \prod_{i = 1}^{r}(s_i + 1). </tex></center><br />
<br />
<br />
==== Функция <tex>\varphi(n)</tex> ====<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\varphi(p) = p - 1</tex>. На некоторую степень <math>p</math> формулу можно обобщить:<br />
<center><tex>\displaystyle\varphi(p^s) = p^s - p^{s - 1} </tex></center><br />
Обосновывается следующим образом: Все не взаимно-простые с <math>p^s</math> числа в диапазоне от 1 до <math>p^s</math>, очевидно, кратны <math>p</math>. Всего таких чисел <math>p^{s - 1}</math>.<br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i}(1 - \frac{1}{p_i}) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex></center><br />
<br />
== Малая теорема Ферма и теорема Эйлера ==<br />
<br />
{{Теорема<br />
|about= Теорема Эйлера<br />
<br />
|statement = Если <math>n</math> и <math>a</math> - взаимно-простые целые числа, то <math>a^{\varphi(n)} \equiv 1 \ (mod \ n)</math><br />
<br />
|proof =<br />
Число <math>\overline{x}</math> называется вычетом по модулю <math>n</math>, если <math>\overline{x} \equiv x \ (mod \ n)</math>. Вычет <math>\overline{x}</math> называется обратимым вычетом, если существует вычет <math>\overline{y}</math>, что <math>\overline{x}\overline{y} \equiv 1 \ (mod \ n)</math>. Заметим, что вычет <math>\overline{x}</math> обратим тогда и только тогда, когда <math>\overline{x}</math> и <math>n</math> взаимно-просты. В таком случае, у числа <math>n</math> существует всего <math>\varphi(n)</math> обратимых вычетов. Пусть <math>\mathbb{Z}_{n}^{*}</math> - множество всех обратимых вычетов по модулю <math>n</math>.<br />
<br />
Рассмотрим вычеты по модулю <math>n</math>. Так как <math>n</math> и <math>a</math> взаимно-просты, то вычет <math>\overline{a}</math> обратим. Пусть <math>\overline{b_1}, \overline{b_2}, \dots , \overline{b_{\varphi(n)}}</math> - все обратимые вычеты по модулю <math>n</math>. Тогда вычет <math>\overline{b} = \overline{b_1}\overline{b_2}\dots\overline{b_{\varphi(n)}}</math>, равный произведению всех обратимых вычетов, тоже обратим. Заметим, что отображение <math>\mathbb{Z}_{n}^{*} \to \mathbb{Z}_{n}^{*}</math>, заданное формулой <math>\overline{x} \mapsto \overline{a}\cdot\overline{x}</math> является биекцией. В таком случае в выражении <math> \overline{a}^{\varphi(n)}\overline{b} = (\overline{a} \overline{b_1}) \dots (\overline{a} \overline{b_{\varphi(n)}}) </math>, в правой части стоит произведение всех обратимых вычетов, но взятое в другом порядке. Тогда <math>\overline{a}^{\varphi(n)}\overline{b} = \overline{b}</math>. Умножая обе части на вычет, обратный к <math>\overline{b}</math>, получим, что <math>\overline{a}^{\varphi(n)} \equiv 1 \ (mod \ n) </math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
Следствием теоремы Эйлера является малая теорема Ферма. У нее также есть доказательство без использования более общей теоремы Эйлера, однако его мы приводить не будем.<br />
<br />
<br />
{{Теорема<br />
|about = Малая теорема Ферма<br />
<br />
|statement = Если целое число <math>a</math> и простое число <math>p</math> - взаимно-просты, то <math>a^{p - 1} \equiv 1 \ (mod \ p)</math><br />
<br />
|proof = Так как <math>p</math> - простое, то <math>\varphi(p) = p - 1</math>. Воспользуемся теоремой Эйлера, тогда <math>a^{\varphi(p)} = a^{p - 1} \equiv 1 \ (mod \ p)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
== Различные свойства функции Эйлера ==<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Если для каких-то натуральных чисел <math>a</math> и <math>b</math> верно, что <math>a\,|\,b</math>, тогда верно и <math>\varphi(a)\,|\, \varphi(b)</math><br />
<br />
|proof = <br />
Воспользуемся формулой для <tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i - 1}(p_i - 1) </tex>.<br />
<br />
:<math>a = p_1^{\alpha_1} \cdot\ldots\cdot p_{r_a}^{\alpha_{r_a}},</math><br />
:<math>b = p_1^{\beta_1} \cdot\ldots\cdot p_{r_b}^{\beta_{r_b}}</math><br />
<br />
При этом, так как <math>a\,|\,b</math>, то <math>r_a \leq r_b</math>, а также <math>\forall i \in [1\, ;\, r_a] \ \alpha_i \leq \beta_i</math><br />
<br />
<math></math><br />
<br />
Значит <tex>\displaystyle\frac{\varphi(b)}{\varphi(a)}</tex><tex>\displaystyle = \frac{\displaystyle\prod_{i = 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1)}{\displaystyle\prod_{i = 1}^{r_a}p_i^{\alpha_i - 1}(p_i - 1)} = \displaystyle(\prod_{i = 1}^{r_a}p_i^{\beta_i - \alpha_i}) \cdot \displaystyle(\prod_{i = r_a + 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1))</tex>, а значит <math>\varphi(a)\,|\, \varphi(b)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Для любого натурального числа <math>n</math> выполнено равенство <math>\displaystyle n = \sum_{d | n} \varphi(d)</math><br />
<br />
|proof = Данную теорему можно доказать "напролом", пользуясь формулой для <math>\varphi(d)</math>, а можно более элегантно:<br />
<br />
Рассмотрим <math>n</math> дробей <math>\frac{1}{n}, \frac{2}{n}, \dots , \frac{n}{n}</math>. Каждую дробь представим в виде несократимой дроби <math>\frac{p}{q}</math>.<br />
Заметим, что множество значений <math>q</math> {{---}} это множество делителей числа <math>n</math>. Так как дробь <math>\frac{p}{q}</math> несократима, то <math>p</math> и <math>q</math> взаимно-просты. Зная, что <math>p \leq q</math>, легко понять, что всего дробей со знаменателем <math>q</math> ровно <math>\varphi(q)</math>. Так как, все <math>n</math> дробей мы представили в несократимом виде, где знаменатель является делителем <math>n</math>, то <math>\displaystyle \sum_{d | n} \varphi(d) = n</math>, так как всего дробей <math>n</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
:<br />
<br />
{{Теорема<br />
|about = Обобщённая мультипликативность<br />
<br />
|statement = Пусть <math>n</math> и <math>m</math> {{---}} любые два натуральных числа, а <math>d = (n,\ m)</math>, тогда:<br />
: <math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n)\cdot\frac{d}{\varphi(d)},</math><br />
<br />
|proof = <br />
<br />
Пусть <math>(m,\,n)=d,</math> тогда <math>m = m'd, \; n = n'd,</math> причем в общем случае <math>(m',\,d) \neq 1</math> и <math>(n',\,d) \neq 1.</math> Поэтому можно записать:<br />
:<math>d = d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}},</math><br />
:<math>m' = d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r},</math><br />
:<math>n' = d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}.</math><br />
Здесь первые <math>k</math> делителей <math>d</math> являются также делителями <math>m',</math> а последние <math>K-k</math> делителей <math>d</math> являются делителями <math>n'.</math> Распишем:<br />
:<math>\varphi(mn)= \varphi(d^2 \cdot m'n')<br />
= \varphi((d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}})^2 \cdot d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r} \cdot d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}).</math><br />
В силу мультипликативности функции Эйлера, а также с учётом формулы<br />
:<math>\varphi(p^n) = p^n(1-\frac{1}{p}),</math><br />
где <math>p</math> — простое, получаем:<br />
:<math><br />
\begin{align}<br />
\varphi(mn)<br />
<br />
&= d_1^{\alpha_1+\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_k^{\alpha_k+\delta_k}\left(1-\frac{1}{d_k}\right) \cdot p_1^{\beta_1}\left(1-\frac{1}{p_1}\right) \cdot\ldots\cdot p_r^{\beta_r}\left(1-\frac{1}{p_r}\right) \cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\delta_{K}}\left(1-\frac{1}{d_{K}}\right)\times \\<br />
<br />
&\; \times \; d_{k+1}^{\gamma_{k+1}+\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\gamma_{K}+\delta_{K}}\left(1-\frac{1}{d_{K}}\right) \cdot q_1^{\varepsilon_1}\left(1-\frac{1}{q_1}\right) \cdot\ldots\cdot q_s^{\varepsilon_s}\left(1-\frac{1}{q_s}\right) \cdot d_1^{\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right)\times \\<br />
<br />
&\; \times \; \frac{1}{\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot \left(1-\frac{1}{d_K}\right)}.<br />
\end{align}<br />
</math><br />
В первой строке записано <math>\varphi(m),</math> во второй — <math>\varphi(n),</math> а третью можно представить, как <math>\frac{d}{\varphi(d)}.</math> Поэтому:<br />
:<math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n) \cdot \frac{d}{\varphi(d)}.</math><br />
<br />
}}<br />
<br />
== Применение теоремы Эйлера в других задачах ==<br />
<br />
==== Задача об ожерельях ====<br />
<br />
{{Задача<br />
|definition=<br />
Требуется посчитать количество ожерелий из <tex>n</tex> бусинок, каждая из которых может быть покрашена в один из <tex> k </tex> цветов. При сравнении двух ожерелий их можно поворачивать, но не переворачивать (т.е. разрешается сделать циклический сдвиг).}}<br />
<br />
В ходе решения задачи мы приходим к формуле <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{i = 1}^{n} k^{\mathrm{gcd}(i,n)}</tex><br />
<br />
Мы можем улучшить эту формулу, если рассмотрим выражение <math>\mathrm{gcd}(i,n)</math>. Пусть <math>\mathrm{gcd}(i,n) = q</math>, тогда числа <math>i</math> и <math>n</math> оба делятся на <math>q</math> и больше не имеют общих делителей. Тогда <math>\mathrm{gcd}(\frac{i}{q},\frac{n}{q}) = 1</math>. Таких натуральных <math>i \in [1 ; n]</math> и имеющих <math>\mathrm{gcd}(i,n) = q</math> ровно <tex>\varphi\left(\dfrac{n}{q}\right)</tex>.<br />
<br />
Пользуясь функцией Эйлера, мы можем привести формулу к финальному виду <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{q|n}\varphi\left(\dfrac{n}{q}\right)k^q</tex>.<br />
<br />
== Алгоритм ==<br />
Используя доказанные выше свойства функции, получим алгоритм нахождения <math>\varphi(n)</math> через факторизацию числа, работающий за <math>O(\sqrt{n})</math>. <br />
<br />
'''function''' phi (n):<br />
result = n <br />
i = 2<br />
<br />
'''while''' (i*i <= n):<br />
'''if''' n % i == 0:<br />
'''while''' n % i == 0:<br />
n /= i<br />
result -= result / i<br />
i++<br />
'''if''' (n > 1):<br />
result -= result/n<br />
'''return''' result<br />
<br />
== См. также ==<br />
* [[Задача об ожерельях]]<br />
<br />
== Ссылки ==<br />
* [https://ru.wikipedia.org/wiki/Функция_Эйлера Wikipedia {{---}} Функция Эйлера]<br />
* [https://e-maxx.ru/algo/euler_function Алгоритм нахождения функции Эйлера]<br />
* [https://wikichi.ru/wiki/Divisor_function Функция <math>\sigma</math>]</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=75621Обсуждение участника:MetaMockery2020-12-25T21:03:29Z<p>MetaMockery: /* Функция Эйлера */</p>
<hr />
<div>== Функция Эйлера ==<br />
<br />
{{Определение<br />
|definition=<br />
''Функция Эйлера'' <tex>\varphi (n) </tex> {{---}} определяется как количество натуральных чисел, не превосходящих <tex>n</tex> и взаимно простых с <tex>n</tex>.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Функция <tex>f : \mathbb{N} \to \mathbb{Z} </tex> называется ''мультипликативной'', если <tex>f(mn) = f(m)f(n)</tex> для любых взаимно простых <tex>m, n</tex>.<br />
}}<br />
<br />
{{Теорема<br />
|about = Мультипликативность функции Эйлера<br />
|statement = Для любых взаимно простых чисел <tex>m, n</tex> <br />
: <math>\varphi(mn)=\varphi(m)\varphi(n)</math><br />
|proof =<br />
Запишем <math>n \cdot m</math> натуральных чисел, не превосходящих <math>n \cdot m</math>, в виде прямоугольной таблицы с <math>n</math> столбцами и <math>m</math> строками, располагая первые <math>n</math> чисел в первой строке, вторые <math>n</math> чисел во второй и т.д.<br />
<br />
Поскольку <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>k</math> взаимно просто с <math>k</math>. Поэтому, числа в таблице, взаимно простые с <math>n</math>, заполняют ровно <math>\varphi(n)</math> столбцов таблицы.<br />
<br />
Давайте рассмотрим <math>m</math> последовательных членов арифметической прогрессии <math>a, a + d, \dots , a + (m - 1)d</math>. Тогда, если <math>GCD(d, m) = 1</math>, то остатки всех этих <math>m</math> чисел по модулю <math>m</math> разные, а значит образуют все множество остатков <math>\{0, \dots , m - 1\}</math>, причем каждый остаток получается ровно из одного из членов прогрессии.<br />
<br />
Подставив в данные рассуждения <math>d = n</math>, получим, что в каждом столбце таблицы имеется ровно <math>\varphi(m)</math> чисел, взаимно простых с <math>m</math>. Следовательно всего чисел, взаимно простых и с <math>n</math> и с <math>m</math> равно <math>\varphi(m)\varphi(n)</math>, что и требовалось доказать.<br />
}}<br />
<br />
== Функции <tex>\sigma(n)</tex>, <tex>\tau(n)</tex> и <tex>\varphi(n)</tex>, их мультипликативность и значения ==<br />
<br />
Каноническое разложение числа <tex>\displaystyle n = \prod_{i=1}^{r}p_i^{s_i} </tex><br />
<br />
==== Функция <tex>\sigma(n)</tex> ====<br />
<br />
Функция <tex>\sigma : \mathbb{N} \to \mathbb{N} </tex> определяется как сумма делителей натурального числа <tex>n</tex>:<br />
<center><tex>\displaystyle\sigma(n) = \sum_{d | n}d </tex></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\sigma(p) = p + 1</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\sigma(p^s) = \sum_{k=0}^{s}p^k = \frac{p^{s + 1} - 1}{p - 1} </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \sigma (n) = \prod_{i = 1}^{r}{\frac{p_{i}^{s_i+1}-1} {p_{i}-1}}. </tex></center><br />
<br />
<br />
==== Функция <tex>\tau(n)</tex> ====<br />
<br />
Функция <tex>\tau: \mathbb{N} \to \mathbb{N} </tex> определяется как число положительных делителей натурального числа <tex>n</tex>: <br />
<center><tex>\displaystyle\tau(n) = \sum_{d | n}1 </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно-просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\tau(n)</tex> мультипликативна:<br />
<center><math>\tau(mn)=\tau(m)\tau(n).</math></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\tau(p) = 2</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\tau(p^s) = s + 1 </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \tau(n) = \prod_{i = 1}^{r}(s_i + 1). </tex></center><br />
<br />
<br />
==== Функция <tex>\varphi(n)</tex> ====<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\varphi(p) = p - 1</tex>. На некоторую степень <math>p</math> формулу можно обобщить:<br />
<center><tex>\displaystyle\varphi(p^s) = p^s - p^{s - 1} </tex></center><br />
Обосновывается следующим образом: Все не взаимно-простые с <math>p^s</math> числа в диапазоне от 1 до <math>p^s</math>, очевидно, кратны <math>p</math>. Всего таких чисел <math>p^{s - 1}</math>.<br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i}(1 - \frac{1}{p_i}) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex></center><br />
<br />
== Малая теорема Ферма и теорема Эйлера ==<br />
<br />
{{Теорема<br />
|about= Теорема Эйлера<br />
<br />
|statement = Если <math>n</math> и <math>a</math> - взаимно-простые целые числа, то <math>a^{\varphi(n)} \equiv 1 \ (mod \ n)</math><br />
<br />
|proof =<br />
Число <math>\overline{x}</math> называется вычетом по модулю <math>n</math>, если <math>\overline{x} \equiv x \ (mod \ n)</math>. Вычет <math>\overline{x}</math> называется обратимым вычетом, если существует вычет <math>\overline{y}</math>, что <math>\overline{x}\overline{y} \equiv 1 \ (mod \ n)</math>. Заметим, что вычет <math>\overline{x}</math> обратим тогда и только тогда, когда <math>\overline{x}</math> и <math>n</math> взаимно-просты. В таком случае, у числа <math>n</math> существует всего <math>\varphi(n)</math> обратимых вычетов. Пусть <math>\mathbb{Z}_{n}^{*}</math> - множество всех обратимых вычетов по модулю <math>n</math>.<br />
<br />
Рассмотрим вычеты по модулю <math>n</math>. Так как <math>n</math> и <math>a</math> взаимно-просты, то вычет <math>\overline{a}</math> обратим. Пусть <math>\overline{b_1}, \overline{b_2}, \dots , \overline{b_{\varphi(n)}}</math> - все обратимые вычеты по модулю <math>n</math>. Тогда вычет <math>\overline{b} = \overline{b_1}\overline{b_2}\dots\overline{b_{\varphi(n)}}</math>, равный произведению всех обратимых вычетов, тоже обратим. Заметим, что отображение <math>\mathbb{Z}_{n}^{*} \to \mathbb{Z}_{n}^{*}</math>, заданное формулой <math>\overline{x} \mapsto \overline{a}\cdot\overline{x}</math> является биекцией. В таком случае в выражении <math> \overline{a}^{\varphi(n)}\overline{b} = (\overline{a} \overline{b_1}) \dots (\overline{a} \overline{b_{\varphi(n)}}) </math>, в правой части стоит произведение всех обратимых вычетов, но взятое в другом порядке. Тогда <math>\overline{a}^{\varphi(n)}\overline{b} = \overline{b}</math>. Умножая обе части на вычет, обратный к <math>\overline{b}</math>, получим, что <math>\overline{a}^{\varphi(n)} \equiv 1 \ (mod \ n) </math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
Следствием теоремы Эйлера является малая теорема Ферма. У нее также есть доказательство без использования более общей теоремы Эйлера, однако его мы приводить не будем.<br />
<br />
<br />
{{Теорема<br />
|about = Малая теорема Ферма<br />
<br />
|statement = Если целое число <math>a</math> и простое число <math>p</math> - взаимно-просты, то <math>a^{p - 1} \equiv 1 \ (mod \ p)</math><br />
<br />
|proof = Так как <math>p</math> - простое, то <math>\varphi(p) = p - 1</math>. Воспользуемся теоремой Эйлера, тогда <math>a^{\varphi(p)} = a^{p - 1} \equiv 1 \ (mod \ p)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
== Различные свойства функции Эйлера ==<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Если для каких-то натуральных чисел <math>a</math> и <math>b</math> верно, что <math>a\,|\,b</math>, тогда верно и <math>\varphi(a)\,|\, \varphi(b)</math><br />
<br />
|proof = <br />
Воспользуемся формулой для <tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i - 1}(p_i - 1) </tex>.<br />
<br />
:<math>a = p_1^{\alpha_1} \cdot\ldots\cdot p_{r_a}^{\alpha_{r_a}},</math><br />
:<math>b = p_1^{\beta_1} \cdot\ldots\cdot p_{r_b}^{\beta_{r_b}}</math><br />
<br />
При этом, так как <math>a\,|\,b</math>, то <math>r_a \leq r_b</math>, а также <math>\forall i \in [1\, ;\, r_a] \ \alpha_i \leq \beta_i</math><br />
<br />
<math></math><br />
<br />
Значит <tex>\displaystyle\frac{\varphi(b)}{\varphi(a)}</tex><tex>\displaystyle = \frac{\displaystyle\prod_{i = 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1)}{\displaystyle\prod_{i = 1}^{r_a}p_i^{\alpha_i - 1}(p_i - 1)} = \displaystyle(\prod_{i = 1}^{r_a}p_i^{\beta_i - \alpha_i}) \cdot \displaystyle(\prod_{i = r_a + 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1))</tex>, а значит <math>\varphi(a)\,|\, \varphi(b)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Для любого натурального числа <math>n</math> выполнено равенство <math>\displaystyle n = \sum_{d | n} \varphi(d)</math><br />
<br />
|proof = Данную теорему можно доказать "напролом", пользуясь формулой для <math>\varphi(d)</math>, а можно более элегантно:<br />
<br />
Рассмотрим <math>n</math> дробей <math>\frac{1}{n}, \frac{2}{n}, \dots , \frac{n}{n}</math>. Каждую дробь представим в виде несократимой дроби <math>\frac{p}{q}</math>.<br />
Заметим, что множество значений <math>q</math> {{---}} это множество делителей числа <math>n</math>. Так как дробь <math>\frac{p}{q}</math> несократима, то <math>p</math> и <math>q</math> взаимно-просты. Зная, что <math>p \leq q</math>, легко понять, что всего дробей со знаменателем <math>q</math> ровно <math>\varphi(q)</math>. Так как, все <math>n</math> дробей мы представили в несократимом виде, где знаменатель является делителем <math>n</math>, то <math>\displaystyle \sum_{d | n} \varphi(d) = n</math>, так как всего дробей <math>n</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
:<br />
<br />
{{Теорема<br />
|about = Обобщённая мультипликативность<br />
<br />
|statement = Пусть <math>n</math> и <math>m</math> {{---}} любые два натуральных числа, а <math>d = (n,\ m)</math>, тогда:<br />
: <math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n)\cdot\frac{d}{\varphi(d)},</math><br />
<br />
|proof = <br />
<br />
Пусть <math>(m,\,n)=d,</math> тогда <math>m = m'd, \; n = n'd,</math> причем в общем случае <math>(m',\,d) \neq 1</math> и <math>(n',\,d) \neq 1.</math> Поэтому можно записать:<br />
:<math>d = d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}},</math><br />
:<math>m' = d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r},</math><br />
:<math>n' = d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}.</math><br />
Здесь первые <math>k</math> делителей <math>d</math> являются также делителями <math>m',</math> а последние <math>K-k</math> делителей <math>d</math> являются делителями <math>n'.</math> Распишем:<br />
:<math>\varphi(mn)= \varphi(d^2 \cdot m'n')<br />
= \varphi((d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}})^2 \cdot d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r} \cdot d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}).</math><br />
В силу мультипликативности функции Эйлера, а также с учётом формулы<br />
:<math>\varphi(p^n) = p^n(1-\frac{1}{p}),</math><br />
где <math>p</math> — простое, получаем:<br />
:<math><br />
\begin{align}<br />
\varphi(mn)<br />
<br />
&= d_1^{\alpha_1+\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_k^{\alpha_k+\delta_k}\left(1-\frac{1}{d_k}\right) \cdot p_1^{\beta_1}\left(1-\frac{1}{p_1}\right) \cdot\ldots\cdot p_r^{\beta_r}\left(1-\frac{1}{p_r}\right) \cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\delta_{K}}\left(1-\frac{1}{d_{K}}\right)\times \\<br />
<br />
&\; \times \; d_{k+1}^{\gamma_{k+1}+\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\gamma_{K}+\delta_{K}}\left(1-\frac{1}{d_{K}}\right) \cdot q_1^{\varepsilon_1}\left(1-\frac{1}{q_1}\right) \cdot\ldots\cdot q_s^{\varepsilon_s}\left(1-\frac{1}{q_s}\right) \cdot d_1^{\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right)\times \\<br />
<br />
&\; \times \; \frac{1}{\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot \left(1-\frac{1}{d_K}\right)}.<br />
\end{align}<br />
</math><br />
В первой строке записано <math>\varphi(m),</math> во второй — <math>\varphi(n),</math> а третью можно представить, как <math>\frac{d}{\varphi(d)}.</math> Поэтому:<br />
:<math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n) \cdot \frac{d}{\varphi(d)}.</math><br />
<br />
}}<br />
<br />
== Применение теоремы Эйлера в других задачах ==<br />
<br />
==== Задача об ожерельях ====<br />
<br />
{{Задача<br />
|definition=<br />
Требуется посчитать количество ожерелий из <tex>n</tex> бусинок, каждая из которых может быть покрашена в один из <tex> k </tex> цветов. При сравнении двух ожерелий их можно поворачивать, но не переворачивать (т.е. разрешается сделать циклический сдвиг).}}<br />
<br />
В ходе решения задачи мы приходим к формуле <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{i = 1}^{n} k^{\mathrm{gcd}(i,n)}</tex><br />
<br />
Мы можем улучшить эту формулу, если рассмотрим выражение <math>\mathrm{gcd}(i,n)</math>. Пусть <math>\mathrm{gcd}(i,n) = q</math>, тогда числа <math>i</math> и <math>n</math> оба делятся на <math>q</math> и больше не имеют общих делителей. Тогда <math>\mathrm{gcd}(\frac{i}{q},\frac{n}{q}) = 1</math>. Таких натуральных <math>i \in [1 ; n]</math> и имеющих <math>\mathrm{gcd}(i,n) = q</math> ровно <tex>\varphi\left(\dfrac{n}{q}\right)</tex>.<br />
<br />
Пользуясь функцией Эйлера, мы можем привести формулу к финальному виду <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{q|n}\varphi\left(\dfrac{n}{q}\right)k^q</tex>.<br />
<br />
== Алгоритм ==<br />
Используя доказанные выше свойства функции, получим алгоритм нахождения <math>\varphi(n)</math> через факторизацию числа, работающий за <math>O(\sqrt{n})</math>. <br />
<br />
'''function''' phi (n):<br />
result = n <br />
i = 2<br />
<br />
'''while''' (i*i <= n):<br />
'''if''' n % i == 0:<br />
'''while''' n % i == 0:<br />
n /= i<br />
result -= result / i<br />
i++<br />
'''if''' (n > 1):<br />
result -= result/n<br />
'''return''' result<br />
<br />
== См. также ==<br />
* [[Задача об ожерельях]]<br />
<br />
== Ссылки ==<br />
* [https://ru.wikipedia.org/wiki/Функция_Эйлера Wikipedia {{---}} Функция Эйлера]<br />
* [https://e-maxx.ru/algo/euler_function Алгоритм нахождения функции Эйлера]<br />
* [https://wikichi.ru/wiki/Divisor_function Функция <math>\sigma</math>]</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=75620Обсуждение участника:MetaMockery2020-12-25T21:02:03Z<p>MetaMockery: /* Функция Эйлера */</p>
<hr />
<div>== Функция Эйлера ==<br />
<br />
{{Определение<br />
|definition=<br />
''Функция Эйлера'' <tex>\varphi (n) </tex> {{---}} определяется как количество натуральных чисел, не превосходящих <tex>n</tex> и взаимно-простых с <tex>n</tex>.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Функция <tex>f : \mathbb{N} \to \mathbb{Z} </tex> называется ''мультипликативной'', если <tex>f(mn) = f(m)f(n)</tex> для любых взаимно-простых <tex>m, n</tex>.<br />
}}<br />
<br />
{{Теорема<br />
|about = Мультипликативность функции Эйлера<br />
|statement = Для любых взаимно-простых чисел <tex>m, n</tex> <br />
: <math>\varphi(mn)=\varphi(m)\varphi(n)</math><br />
|proof =<br />
Запишем <math>n \cdot m</math> натуральных чисел, не превосходящих <math>n \cdot m</math>, в виде прямоугольной таблицы с <math>n</math> столбцами и <math>m</math> строками, располагая первые <math>n</math> чисел в первой строке, вторые <math>n</math> чисел во второй и т.д.<br />
<br />
Поскольку <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>k</math> взаимно-просто с <math>k</math>. Поэтому, числа в таблице, взаимно-простые с <math>n</math>, заполняют ровно <math>\varphi(n)</math> столбцов таблицы.<br />
<br />
Давайте рассмотрим <math>m</math> последовательных членов арифметической прогрессии <math>a, a + d, \dots , a + (m - 1)d</math>. Тогда, если <math>GCD(d, m) = 1</math>, то остатки всех этих <math>m</math> чисел по модулю <math>m</math> разные, а значит образуют все множество остатков <math>\{0, \dots , m - 1\}</math>, причем каждый остаток получается ровно из одного из членов прогрессии.<br />
<br />
Подставив в данные рассуждения <math>d = n</math>, получим, что в каждом столбце таблицы имеется ровно <math>\varphi(m)</math> чисел, взаимно-простых с <math>m</math>. Следовательно всего чисел, взаимно-простых и с <math>n</math> и с <math>m</math> равно <math>\varphi(m)\varphi(n)</math>, что и требовалось доказать.<br />
}}<br />
<br />
== Функции <tex>\sigma(n)</tex>, <tex>\tau(n)</tex> и <tex>\varphi(n)</tex>, их мультипликативность и значения ==<br />
<br />
Каноническое разложение числа <tex>\displaystyle n = \prod_{i=1}^{r}p_i^{s_i} </tex><br />
<br />
==== Функция <tex>\sigma(n)</tex> ====<br />
<br />
Функция <tex>\sigma : \mathbb{N} \to \mathbb{N} </tex> определяется как сумма делителей натурального числа <tex>n</tex>:<br />
<center><tex>\displaystyle\sigma(n) = \sum_{d | n}d </tex></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\sigma(p) = p + 1</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\sigma(p^s) = \sum_{k=0}^{s}p^k = \frac{p^{s + 1} - 1}{p - 1} </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \sigma (n) = \prod_{i = 1}^{r}{\frac{p_{i}^{s_i+1}-1} {p_{i}-1}}. </tex></center><br />
<br />
<br />
==== Функция <tex>\tau(n)</tex> ====<br />
<br />
Функция <tex>\tau: \mathbb{N} \to \mathbb{N} </tex> определяется как число положительных делителей натурального числа <tex>n</tex>: <br />
<center><tex>\displaystyle\tau(n) = \sum_{d | n}1 </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно-просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\tau(n)</tex> мультипликативна:<br />
<center><math>\tau(mn)=\tau(m)\tau(n).</math></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\tau(p) = 2</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\tau(p^s) = s + 1 </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \tau(n) = \prod_{i = 1}^{r}(s_i + 1). </tex></center><br />
<br />
<br />
==== Функция <tex>\varphi(n)</tex> ====<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\varphi(p) = p - 1</tex>. На некоторую степень <math>p</math> формулу можно обобщить:<br />
<center><tex>\displaystyle\varphi(p^s) = p^s - p^{s - 1} </tex></center><br />
Обосновывается следующим образом: Все не взаимно-простые с <math>p^s</math> числа в диапазоне от 1 до <math>p^s</math>, очевидно, кратны <math>p</math>. Всего таких чисел <math>p^{s - 1}</math>.<br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i}(1 - \frac{1}{p_i}) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex></center><br />
<br />
== Малая теорема Ферма и теорема Эйлера ==<br />
<br />
{{Теорема<br />
|about= Теорема Эйлера<br />
<br />
|statement = Если <math>n</math> и <math>a</math> - взаимно-простые целые числа, то <math>a^{\varphi(n)} \equiv 1 \ (mod \ n)</math><br />
<br />
|proof =<br />
Число <math>\overline{x}</math> называется вычетом по модулю <math>n</math>, если <math>\overline{x} \equiv x \ (mod \ n)</math>. Вычет <math>\overline{x}</math> называется обратимым вычетом, если существует вычет <math>\overline{y}</math>, что <math>\overline{x}\overline{y} \equiv 1 \ (mod \ n)</math>. Заметим, что вычет <math>\overline{x}</math> обратим тогда и только тогда, когда <math>\overline{x}</math> и <math>n</math> взаимно-просты. В таком случае, у числа <math>n</math> существует всего <math>\varphi(n)</math> обратимых вычетов. Пусть <math>\mathbb{Z}_{n}^{*}</math> - множество всех обратимых вычетов по модулю <math>n</math>.<br />
<br />
Рассмотрим вычеты по модулю <math>n</math>. Так как <math>n</math> и <math>a</math> взаимно-просты, то вычет <math>\overline{a}</math> обратим. Пусть <math>\overline{b_1}, \overline{b_2}, \dots , \overline{b_{\varphi(n)}}</math> - все обратимые вычеты по модулю <math>n</math>. Тогда вычет <math>\overline{b} = \overline{b_1}\overline{b_2}\dots\overline{b_{\varphi(n)}}</math>, равный произведению всех обратимых вычетов, тоже обратим. Заметим, что отображение <math>\mathbb{Z}_{n}^{*} \to \mathbb{Z}_{n}^{*}</math>, заданное формулой <math>\overline{x} \mapsto \overline{a}\cdot\overline{x}</math> является биекцией. В таком случае в выражении <math> \overline{a}^{\varphi(n)}\overline{b} = (\overline{a} \overline{b_1}) \dots (\overline{a} \overline{b_{\varphi(n)}}) </math>, в правой части стоит произведение всех обратимых вычетов, но взятое в другом порядке. Тогда <math>\overline{a}^{\varphi(n)}\overline{b} = \overline{b}</math>. Умножая обе части на вычет, обратный к <math>\overline{b}</math>, получим, что <math>\overline{a}^{\varphi(n)} \equiv 1 \ (mod \ n) </math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
Следствием теоремы Эйлера является малая теорема Ферма. У нее также есть доказательство без использования более общей теоремы Эйлера, однако его мы приводить не будем.<br />
<br />
<br />
{{Теорема<br />
|about = Малая теорема Ферма<br />
<br />
|statement = Если целое число <math>a</math> и простое число <math>p</math> - взаимно-просты, то <math>a^{p - 1} \equiv 1 \ (mod \ p)</math><br />
<br />
|proof = Так как <math>p</math> - простое, то <math>\varphi(p) = p - 1</math>. Воспользуемся теоремой Эйлера, тогда <math>a^{\varphi(p)} = a^{p - 1} \equiv 1 \ (mod \ p)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
== Различные свойства функции Эйлера ==<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Если для каких-то натуральных чисел <math>a</math> и <math>b</math> верно, что <math>a\,|\,b</math>, тогда верно и <math>\varphi(a)\,|\, \varphi(b)</math><br />
<br />
|proof = <br />
Воспользуемся формулой для <tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i - 1}(p_i - 1) </tex>.<br />
<br />
:<math>a = p_1^{\alpha_1} \cdot\ldots\cdot p_{r_a}^{\alpha_{r_a}},</math><br />
:<math>b = p_1^{\beta_1} \cdot\ldots\cdot p_{r_b}^{\beta_{r_b}}</math><br />
<br />
При этом, так как <math>a\,|\,b</math>, то <math>r_a \leq r_b</math>, а также <math>\forall i \in [1\, ;\, r_a] \ \alpha_i \leq \beta_i</math><br />
<br />
<math></math><br />
<br />
Значит <tex>\displaystyle\frac{\varphi(b)}{\varphi(a)}</tex><tex>\displaystyle = \frac{\displaystyle\prod_{i = 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1)}{\displaystyle\prod_{i = 1}^{r_a}p_i^{\alpha_i - 1}(p_i - 1)} = \displaystyle(\prod_{i = 1}^{r_a}p_i^{\beta_i - \alpha_i}) \cdot \displaystyle(\prod_{i = r_a + 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1))</tex>, а значит <math>\varphi(a)\,|\, \varphi(b)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Для любого натурального числа <math>n</math> выполнено равенство <math>\displaystyle n = \sum_{d | n} \varphi(d)</math><br />
<br />
|proof = Данную теорему можно доказать "напролом", пользуясь формулой для <math>\varphi(d)</math>, а можно более элегантно:<br />
<br />
Рассмотрим <math>n</math> дробей <math>\frac{1}{n}, \frac{2}{n}, \dots , \frac{n}{n}</math>. Каждую дробь представим в виде несократимой дроби <math>\frac{p}{q}</math>.<br />
Заметим, что множество значений <math>q</math> {{---}} это множество делителей числа <math>n</math>. Так как дробь <math>\frac{p}{q}</math> несократима, то <math>p</math> и <math>q</math> взаимно-просты. Зная, что <math>p \leq q</math>, легко понять, что всего дробей со знаменателем <math>q</math> ровно <math>\varphi(q)</math>. Так как, все <math>n</math> дробей мы представили в несократимом виде, где знаменатель является делителем <math>n</math>, то <math>\displaystyle \sum_{d | n} \varphi(d) = n</math>, так как всего дробей <math>n</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
:<br />
<br />
{{Теорема<br />
|about = Обобщённая мультипликативность<br />
<br />
|statement = Пусть <math>n</math> и <math>m</math> {{---}} любые два натуральных числа, а <math>d = (n,\ m)</math>, тогда:<br />
: <math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n)\cdot\frac{d}{\varphi(d)},</math><br />
<br />
|proof = <br />
<br />
Пусть <math>(m,\,n)=d,</math> тогда <math>m = m'd, \; n = n'd,</math> причем в общем случае <math>(m',\,d) \neq 1</math> и <math>(n',\,d) \neq 1.</math> Поэтому можно записать:<br />
:<math>d = d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}},</math><br />
:<math>m' = d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r},</math><br />
:<math>n' = d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}.</math><br />
Здесь первые <math>k</math> делителей <math>d</math> являются также делителями <math>m',</math> а последние <math>K-k</math> делителей <math>d</math> являются делителями <math>n'.</math> Распишем:<br />
:<math>\varphi(mn)= \varphi(d^2 \cdot m'n')<br />
= \varphi((d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}})^2 \cdot d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r} \cdot d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}).</math><br />
В силу мультипликативности функции Эйлера, а также с учётом формулы<br />
:<math>\varphi(p^n) = p^n(1-\frac{1}{p}),</math><br />
где <math>p</math> — простое, получаем:<br />
:<math><br />
\begin{align}<br />
\varphi(mn)<br />
<br />
&= d_1^{\alpha_1+\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_k^{\alpha_k+\delta_k}\left(1-\frac{1}{d_k}\right) \cdot p_1^{\beta_1}\left(1-\frac{1}{p_1}\right) \cdot\ldots\cdot p_r^{\beta_r}\left(1-\frac{1}{p_r}\right) \cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\delta_{K}}\left(1-\frac{1}{d_{K}}\right)\times \\<br />
<br />
&\; \times \; d_{k+1}^{\gamma_{k+1}+\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\gamma_{K}+\delta_{K}}\left(1-\frac{1}{d_{K}}\right) \cdot q_1^{\varepsilon_1}\left(1-\frac{1}{q_1}\right) \cdot\ldots\cdot q_s^{\varepsilon_s}\left(1-\frac{1}{q_s}\right) \cdot d_1^{\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right)\times \\<br />
<br />
&\; \times \; \frac{1}{\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot \left(1-\frac{1}{d_K}\right)}.<br />
\end{align}<br />
</math><br />
В первой строке записано <math>\varphi(m),</math> во второй — <math>\varphi(n),</math> а третью можно представить, как <math>\frac{d}{\varphi(d)}.</math> Поэтому:<br />
:<math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n) \cdot \frac{d}{\varphi(d)}.</math><br />
<br />
}}<br />
<br />
== Применение теоремы Эйлера в других задачах ==<br />
<br />
==== Задача об ожерельях ====<br />
<br />
{{Задача<br />
|definition=<br />
Требуется посчитать количество ожерелий из <tex>n</tex> бусинок, каждая из которых может быть покрашена в один из <tex> k </tex> цветов. При сравнении двух ожерелий их можно поворачивать, но не переворачивать (т.е. разрешается сделать циклический сдвиг).}}<br />
<br />
В ходе решения задачи мы приходим к формуле <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{i = 1}^{n} k^{\mathrm{gcd}(i,n)}</tex><br />
<br />
Мы можем улучшить эту формулу, если рассмотрим выражение <math>\mathrm{gcd}(i,n)</math>. Пусть <math>\mathrm{gcd}(i,n) = q</math>, тогда числа <math>i</math> и <math>n</math> оба делятся на <math>q</math> и больше не имеют общих делителей. Тогда <math>\mathrm{gcd}(\frac{i}{q},\frac{n}{q}) = 1</math>. Таких натуральных <math>i \in [1 ; n]</math> и имеющих <math>\mathrm{gcd}(i,n) = q</math> ровно <tex>\varphi\left(\dfrac{n}{q}\right)</tex>.<br />
<br />
Пользуясь функцией Эйлера, мы можем привести формулу к финальному виду <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{q|n}\varphi\left(\dfrac{n}{q}\right)k^q</tex>.<br />
<br />
== Алгоритм ==<br />
Используя доказанные выше свойства функции, получим алгоритм нахождения <math>\varphi(n)</math> через факторизацию числа, работающий за <math>O(\sqrt{n})</math>. <br />
<br />
'''function''' phi (n):<br />
result = n <br />
i = 2<br />
<br />
'''while''' (i*i <= n):<br />
'''if''' n % i == 0:<br />
'''while''' n % i == 0:<br />
n /= i<br />
result -= result / i<br />
i++<br />
'''if''' (n > 1):<br />
result -= result/n<br />
'''return''' result<br />
<br />
== См. также ==<br />
* [[Задача об ожерельях]]<br />
<br />
== Ссылки ==<br />
* [https://ru.wikipedia.org/wiki/Функция_Эйлера Wikipedia {{---}} Функция Эйлера]<br />
* [https://e-maxx.ru/algo/euler_function Алгоритм нахождения функции Эйлера]<br />
* [https://wikichi.ru/wiki/Divisor_function Функция <math>\sigma</math>]</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=75619Обсуждение участника:MetaMockery2020-12-25T20:48:40Z<p>MetaMockery: /* Функция Эйлера */</p>
<hr />
<div>== Функция Эйлера ==<br />
<br />
{{Определение<br />
|definition=<br />
''Функция Эйлера'' <tex>\varphi (n) </tex> {{---}} определяется как количество натуральных чисел, не превосходящих <tex>n</tex> и взаимно-простых с <tex>n</tex>.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Функция <tex>f : \mathbb{N} \to \mathbb{Z} </tex> называется ''мультипликативной'', если <tex>f(mn) = f(m)f(n)</tex> для любых взаимно-простых <tex>m, n</tex>.<br />
}}<br />
<br />
{{Теорема<br />
|about = Мультипликативность функции Эйлера<br />
|statement = Для любых взаимно-простых чисел <tex>m, n</tex> <br />
: <math>\varphi(mn)=\varphi(m)\varphi(n)</math><br />
|proof =<br />
Запишем <math>n \cdot m</math> натуральных чисел, не превосходящих <math>nm</math>, в виде прямоугольной таблицы с <math>n</math> столбцами и <math>m</math> строками, располагая первые <math>n</math> чисел в первой строке, вторые <math>n</math> чисел во второй и т.д.<br />
<br />
Поскольку <math>n</math> и <math>m</math> взаимно-просты, то целое <math>s</math> взаимно-просто с <math>nm</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>k</math> взаимно-просто с <math>k</math>. Поэтому, числа в таблице, взаимно-простые с <math>n</math>, заполняют ровно <math>\varphi(n)</math> столбцов таблицы.<br />
<br />
Давайте рассмотрим <math>m</math> последовательных членов арифметической прогрессии <math>a, a + d, \dots , a + (m - 1)d</math>. Тогда, если <math>GCD(d, m) = 1</math>, то остатки всех этих <math>m</math> чисел по модулю <math>m</math> разные, а значит образуют все множество остатков <math>\{0, \dots , m - 1\}</math>, причем каждый остаток получается ровно из одного из членов прогрессии.<br />
<br />
Подставив в данные рассуждения <math>d = n</math>, получим, что в каждом столбце таблицы имеется ровно <math>\varphi(m)</math> чисел, взаимно-простых с <math>m</math>. Следовательно всего чисел, взаимно-простых и с <math>n</math> и с <math>m</math> равно <math>\varphi(m)\varphi(n)</math>, что и требовалось доказать.<br />
}}<br />
<br />
== Функции <tex>\sigma(n)</tex>, <tex>\tau(n)</tex> и <tex>\varphi(n)</tex>, их мультипликативность и значения ==<br />
<br />
Каноническое разложение числа <tex>\displaystyle n = \prod_{i=1}^{r}p_i^{s_i} </tex><br />
<br />
==== Функция <tex>\sigma(n)</tex> ====<br />
<br />
Функция <tex>\sigma : \mathbb{N} \to \mathbb{N} </tex> определяется как сумма делителей натурального числа <tex>n</tex>:<br />
<center><tex>\displaystyle\sigma(n) = \sum_{d | n}d </tex></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\sigma(p) = p + 1</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\sigma(p^s) = \sum_{k=0}^{s}p^k = \frac{p^{s + 1} - 1}{p - 1} </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \sigma (n) = \prod_{i = 1}^{r}{\frac{p_{i}^{s_i+1}-1} {p_{i}-1}}. </tex></center><br />
<br />
<br />
==== Функция <tex>\tau(n)</tex> ====<br />
<br />
Функция <tex>\tau: \mathbb{N} \to \mathbb{N} </tex> определяется как число положительных делителей натурального числа <tex>n</tex>: <br />
<center><tex>\displaystyle\tau(n) = \sum_{d | n}1 </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно-просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\tau(n)</tex> мультипликативна:<br />
<center><math>\tau(mn)=\tau(m)\tau(n).</math></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\tau(p) = 2</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\tau(p^s) = s + 1 </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \tau(n) = \prod_{i = 1}^{r}(s_i + 1). </tex></center><br />
<br />
<br />
==== Функция <tex>\varphi(n)</tex> ====<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\varphi(p) = p - 1</tex>. На некоторую степень <math>p</math> формулу можно обобщить:<br />
<center><tex>\displaystyle\varphi(p^s) = p^s - p^{s - 1} </tex></center><br />
Обосновывается следующим образом: Все не взаимно-простые с <math>p^s</math> числа в диапазоне от 1 до <math>p^s</math>, очевидно, кратны <math>p</math>. Всего таких чисел <math>p^{s - 1}</math>.<br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i}(1 - \frac{1}{p_i}) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex></center><br />
<br />
== Малая теорема Ферма и теорема Эйлера ==<br />
<br />
{{Теорема<br />
|about= Теорема Эйлера<br />
<br />
|statement = Если <math>n</math> и <math>a</math> - взаимно-простые целые числа, то <math>a^{\varphi(n)} \equiv 1 \ (mod \ n)</math><br />
<br />
|proof =<br />
Число <math>\overline{x}</math> называется вычетом по модулю <math>n</math>, если <math>\overline{x} \equiv x \ (mod \ n)</math>. Вычет <math>\overline{x}</math> называется обратимым вычетом, если существует вычет <math>\overline{y}</math>, что <math>\overline{x}\overline{y} \equiv 1 \ (mod \ n)</math>. Заметим, что вычет <math>\overline{x}</math> обратим тогда и только тогда, когда <math>\overline{x}</math> и <math>n</math> взаимно-просты. В таком случае, у числа <math>n</math> существует всего <math>\varphi(n)</math> обратимых вычетов. Пусть <math>\mathbb{Z}_{n}^{*}</math> - множество всех обратимых вычетов по модулю <math>n</math>.<br />
<br />
Рассмотрим вычеты по модулю <math>n</math>. Так как <math>n</math> и <math>a</math> взаимно-просты, то вычет <math>\overline{a}</math> обратим. Пусть <math>\overline{b_1}, \overline{b_2}, \dots , \overline{b_{\varphi(n)}}</math> - все обратимые вычеты по модулю <math>n</math>. Тогда вычет <math>\overline{b} = \overline{b_1}\overline{b_2}\dots\overline{b_{\varphi(n)}}</math>, равный произведению всех обратимых вычетов, тоже обратим. Заметим, что отображение <math>\mathbb{Z}_{n}^{*} \to \mathbb{Z}_{n}^{*}</math>, заданное формулой <math>\overline{x} \mapsto \overline{a}\cdot\overline{x}</math> является биекцией. В таком случае в выражении <math> \overline{a}^{\varphi(n)}\overline{b} = (\overline{a} \overline{b_1}) \dots (\overline{a} \overline{b_{\varphi(n)}}) </math>, в правой части стоит произведение всех обратимых вычетов, но взятое в другом порядке. Тогда <math>\overline{a}^{\varphi(n)}\overline{b} = \overline{b}</math>. Умножая обе части на вычет, обратный к <math>\overline{b}</math>, получим, что <math>\overline{a}^{\varphi(n)} \equiv 1 \ (mod \ n) </math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
Следствием теоремы Эйлера является малая теорема Ферма. У нее также есть доказательство без использования более общей теоремы Эйлера, однако его мы приводить не будем.<br />
<br />
<br />
{{Теорема<br />
|about = Малая теорема Ферма<br />
<br />
|statement = Если целое число <math>a</math> и простое число <math>p</math> - взаимно-просты, то <math>a^{p - 1} \equiv 1 \ (mod \ p)</math><br />
<br />
|proof = Так как <math>p</math> - простое, то <math>\varphi(p) = p - 1</math>. Воспользуемся теоремой Эйлера, тогда <math>a^{\varphi(p)} = a^{p - 1} \equiv 1 \ (mod \ p)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
== Различные свойства функции Эйлера ==<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Если для каких-то натуральных чисел <math>a</math> и <math>b</math> верно, что <math>a\,|\,b</math>, тогда верно и <math>\varphi(a)\,|\, \varphi(b)</math><br />
<br />
|proof = <br />
Воспользуемся формулой для <tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i - 1}(p_i - 1) </tex>.<br />
<br />
:<math>a = p_1^{\alpha_1} \cdot\ldots\cdot p_{r_a}^{\alpha_{r_a}},</math><br />
:<math>b = p_1^{\beta_1} \cdot\ldots\cdot p_{r_b}^{\beta_{r_b}}</math><br />
<br />
При этом, так как <math>a\,|\,b</math>, то <math>r_a \leq r_b</math>, а также <math>\forall i \in [1\, ;\, r_a] \ \alpha_i \leq \beta_i</math><br />
<br />
<math></math><br />
<br />
Значит <tex>\displaystyle\frac{\varphi(b)}{\varphi(a)}</tex><tex>\displaystyle = \frac{\displaystyle\prod_{i = 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1)}{\displaystyle\prod_{i = 1}^{r_a}p_i^{\alpha_i - 1}(p_i - 1)} = \displaystyle(\prod_{i = 1}^{r_a}p_i^{\beta_i - \alpha_i}) \cdot \displaystyle(\prod_{i = r_a + 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1))</tex>, а значит <math>\varphi(a)\,|\, \varphi(b)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Для любого натурального числа <math>n</math> выполнено равенство <math>\displaystyle n = \sum_{d | n} \varphi(d)</math><br />
<br />
|proof = Данную теорему можно доказать "напролом", пользуясь формулой для <math>\varphi(d)</math>, а можно более элегантно:<br />
<br />
Рассмотрим <math>n</math> дробей <math>\frac{1}{n}, \frac{2}{n}, \dots , \frac{n}{n}</math>. Каждую дробь представим в виде несократимой дроби <math>\frac{p}{q}</math>.<br />
Заметим, что множество значений <math>q</math> {{---}} это множество делителей числа <math>n</math>. Так как дробь <math>\frac{p}{q}</math> несократима, то <math>p</math> и <math>q</math> взаимно-просты. Зная, что <math>p \leq q</math>, легко понять, что всего дробей со знаменателем <math>q</math> ровно <math>\varphi(q)</math>. Так как, все <math>n</math> дробей мы представили в несократимом виде, где знаменатель является делителем <math>n</math>, то <math>\displaystyle \sum_{d | n} \varphi(d) = n</math>, так как всего дробей <math>n</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
:<br />
<br />
{{Теорема<br />
|about = Обобщённая мультипликативность<br />
<br />
|statement = Пусть <math>n</math> и <math>m</math> {{---}} любые два натуральных числа, а <math>d = (n,\ m)</math>, тогда:<br />
: <math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n)\cdot\frac{d}{\varphi(d)},</math><br />
<br />
|proof = <br />
<br />
Пусть <math>(m,\,n)=d,</math> тогда <math>m = m'd, \; n = n'd,</math> причем в общем случае <math>(m',\,d) \neq 1</math> и <math>(n',\,d) \neq 1.</math> Поэтому можно записать:<br />
:<math>d = d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}},</math><br />
:<math>m' = d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r},</math><br />
:<math>n' = d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}.</math><br />
Здесь первые <math>k</math> делителей <math>d</math> являются также делителями <math>m',</math> а последние <math>K-k</math> делителей <math>d</math> являются делителями <math>n'.</math> Распишем:<br />
:<math>\varphi(mn)= \varphi(d^2 \cdot m'n')<br />
= \varphi((d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}})^2 \cdot d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r} \cdot d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}).</math><br />
В силу мультипликативности функции Эйлера, а также с учётом формулы<br />
:<math>\varphi(p^n) = p^n(1-\frac{1}{p}),</math><br />
где <math>p</math> — простое, получаем:<br />
:<math><br />
\begin{align}<br />
\varphi(mn)<br />
<br />
&= d_1^{\alpha_1+\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_k^{\alpha_k+\delta_k}\left(1-\frac{1}{d_k}\right) \cdot p_1^{\beta_1}\left(1-\frac{1}{p_1}\right) \cdot\ldots\cdot p_r^{\beta_r}\left(1-\frac{1}{p_r}\right) \cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\delta_{K}}\left(1-\frac{1}{d_{K}}\right)\times \\<br />
<br />
&\; \times \; d_{k+1}^{\gamma_{k+1}+\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\gamma_{K}+\delta_{K}}\left(1-\frac{1}{d_{K}}\right) \cdot q_1^{\varepsilon_1}\left(1-\frac{1}{q_1}\right) \cdot\ldots\cdot q_s^{\varepsilon_s}\left(1-\frac{1}{q_s}\right) \cdot d_1^{\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right)\times \\<br />
<br />
&\; \times \; \frac{1}{\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot \left(1-\frac{1}{d_K}\right)}.<br />
\end{align}<br />
</math><br />
В первой строке записано <math>\varphi(m),</math> во второй — <math>\varphi(n),</math> а третью можно представить, как <math>\frac{d}{\varphi(d)}.</math> Поэтому:<br />
:<math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n) \cdot \frac{d}{\varphi(d)}.</math><br />
<br />
}}<br />
<br />
== Применение теоремы Эйлера в других задачах ==<br />
<br />
==== Задача об ожерельях ====<br />
<br />
{{Задача<br />
|definition=<br />
Требуется посчитать количество ожерелий из <tex>n</tex> бусинок, каждая из которых может быть покрашена в один из <tex> k </tex> цветов. При сравнении двух ожерелий их можно поворачивать, но не переворачивать (т.е. разрешается сделать циклический сдвиг).}}<br />
<br />
В ходе решения задачи мы приходим к формуле <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{i = 1}^{n} k^{\mathrm{gcd}(i,n)}</tex><br />
<br />
Мы можем улучшить эту формулу, если рассмотрим выражение <math>\mathrm{gcd}(i,n)</math>. Пусть <math>\mathrm{gcd}(i,n) = q</math>, тогда числа <math>i</math> и <math>n</math> оба делятся на <math>q</math> и больше не имеют общих делителей. Тогда <math>\mathrm{gcd}(\frac{i}{q},\frac{n}{q}) = 1</math>. Таких натуральных <math>i \in [1 ; n]</math> и имеющих <math>\mathrm{gcd}(i,n) = q</math> ровно <tex>\varphi\left(\dfrac{n}{q}\right)</tex>.<br />
<br />
Пользуясь функцией Эйлера, мы можем привести формулу к финальному виду <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{q|n}\varphi\left(\dfrac{n}{q}\right)k^q</tex>.<br />
<br />
== Алгоритм ==<br />
Используя доказанные выше свойства функции, получим алгоритм нахождения <math>\varphi(n)</math> через факторизацию числа, работающий за <math>O(\sqrt{n})</math>. <br />
<br />
'''function''' phi (n):<br />
result = n <br />
i = 2<br />
<br />
'''while''' (i*i <= n):<br />
'''if''' n % i == 0:<br />
'''while''' n % i == 0:<br />
n /= i<br />
result -= result / i<br />
i++<br />
'''if''' (n > 1):<br />
result -= result/n<br />
'''return''' result<br />
<br />
== См. также ==<br />
* [[Задача об ожерельях]]<br />
<br />
== Ссылки ==<br />
* [https://ru.wikipedia.org/wiki/Функция_Эйлера Wikipedia {{---}} Функция Эйлера]<br />
* [https://e-maxx.ru/algo/euler_function Алгоритм нахождения функции Эйлера]<br />
* [https://wikichi.ru/wiki/Divisor_function Функция <math>\sigma</math>]</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=75618Обсуждение участника:MetaMockery2020-12-25T20:38:21Z<p>MetaMockery: /* Функция Эйлера */</p>
<hr />
<div>== Функция Эйлера ==<br />
<br />
{{Определение<br />
|definition=<br />
''Функция Эйлера'' <tex>\varphi (n) </tex> {{---}} определяется как количество натуральных чисел, не превосходящих <tex>n</tex> и взаимно-простых с <tex>n</tex>.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
Функция <tex>f : \mathbb{N} \to \mathbb{Z} </tex> называется ''мультипликативной'', если <tex>f(mn) = f(m)f(n)</tex> для любых взаимно-простых <tex>m, n</tex>.<br />
}}<br />
<br />
{{Теорема<br />
|about = Мультипликативность функции Эйлера<br />
|statement = Для любых взаимно-простых чисел <tex>m, n</tex> <br />
: <math>\varphi(mn)=\varphi(m)\varphi(n).</math><br />
|proof =<br />
Запишем <math>nm</math> натуральных чисел, не превосходящих <math>nm</math>, в виде прямоугольной таблицы с <math>n</math> столбцами и <math>m</math> строками, располагая первые <math>n</math> чисел в первой строке, вторые <math>n</math> чисел во второй и т.д.<br />
<br />
Поскольку <math>n</math> и <math>m</math> взаимно-просты, то целое <math>s</math> взаимно-просто с <math>nm</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>k</math> взаимно-просто с <math>k</math>. Поэтому, числа в таблице, взаимно-простые с <math>n</math>, заполняют ровно <math>\varphi(n)</math> столбцов таблицы.<br />
<br />
Давайте рассмотрим <math>m</math> последовательных членов арифметической прогрессии <math>a, a + d, \dots , a + (m - 1)d</math>. Тогда, если <math>GCD(d, m) = 1</math>, то остатки всех этих <math>m</math> чисел по модулю <math>m</math> разные, а значит образуют все множество остатков <math>\{0, \dots , m - 1\}</math>, причем каждый остаток получается ровно из одного из членов прогрессии.<br />
<br />
Подставив в данные рассуждения <math>d = n</math>, получим, что в каждом столбце таблицы имеется ровно <math>\varphi(m)</math> чисел, взаимно-простых с <math>m</math>. Следовательно всего чисел, взаимно-простых и с <math>n</math> и с <math>m</math> равно <math>\varphi(m)\varphi(n)</math>, что и требовалось доказать.<br />
}}<br />
<br />
== Функции <tex>\sigma(n)</tex>, <tex>\tau(n)</tex> и <tex>\varphi(n)</tex>, их мультипликативность и значения ==<br />
<br />
Каноническое разложение числа <tex>\displaystyle n = \prod_{i=1}^{r}p_i^{s_i} </tex><br />
<br />
==== Функция <tex>\sigma(n)</tex> ====<br />
<br />
Функция <tex>\sigma : \mathbb{N} \to \mathbb{N} </tex> определяется как сумма делителей натурального числа <tex>n</tex>:<br />
<center><tex>\displaystyle\sigma(n) = \sum_{d | n}d </tex></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\sigma(p) = p + 1</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\sigma(p^s) = \sum_{k=0}^{s}p^k = \frac{p^{s + 1} - 1}{p - 1} </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \sigma (n) = \prod_{i = 1}^{r}{\frac{p_{i}^{s_i+1}-1} {p_{i}-1}}. </tex></center><br />
<br />
<br />
==== Функция <tex>\tau(n)</tex> ====<br />
<br />
Функция <tex>\tau: \mathbb{N} \to \mathbb{N} </tex> определяется как число положительных делителей натурального числа <tex>n</tex>: <br />
<center><tex>\displaystyle\tau(n) = \sum_{d | n}1 </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно-просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\tau(n)</tex> мультипликативна:<br />
<center><math>\tau(mn)=\tau(m)\tau(n).</math></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\tau(p) = 2</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\tau(p^s) = s + 1 </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \tau(n) = \prod_{i = 1}^{r}(s_i + 1). </tex></center><br />
<br />
<br />
==== Функция <tex>\varphi(n)</tex> ====<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\varphi(p) = p - 1</tex>. На некоторую степень <math>p</math> формулу можно обобщить:<br />
<center><tex>\displaystyle\varphi(p^s) = p^s - p^{s - 1} </tex></center><br />
Обосновывается следующим образом: Все не взаимно-простые с <math>p^s</math> числа в диапазоне от 1 до <math>p^s</math>, очевидно, кратны <math>p</math>. Всего таких чисел <math>p^{s - 1}</math>.<br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i}(1 - \frac{1}{p_i}) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex></center><br />
<br />
== Малая теорема Ферма и теорема Эйлера ==<br />
<br />
{{Теорема<br />
|about= Теорема Эйлера<br />
<br />
|statement = Если <math>n</math> и <math>a</math> - взаимно-простые целые числа, то <math>a^{\varphi(n)} \equiv 1 \ (mod \ n)</math><br />
<br />
|proof =<br />
Число <math>\overline{x}</math> называется вычетом по модулю <math>n</math>, если <math>\overline{x} \equiv x \ (mod \ n)</math>. Вычет <math>\overline{x}</math> называется обратимым вычетом, если существует вычет <math>\overline{y}</math>, что <math>\overline{x}\overline{y} \equiv 1 \ (mod \ n)</math>. Заметим, что вычет <math>\overline{x}</math> обратим тогда и только тогда, когда <math>\overline{x}</math> и <math>n</math> взаимно-просты. В таком случае, у числа <math>n</math> существует всего <math>\varphi(n)</math> обратимых вычетов. Пусть <math>\mathbb{Z}_{n}^{*}</math> - множество всех обратимых вычетов по модулю <math>n</math>.<br />
<br />
Рассмотрим вычеты по модулю <math>n</math>. Так как <math>n</math> и <math>a</math> взаимно-просты, то вычет <math>\overline{a}</math> обратим. Пусть <math>\overline{b_1}, \overline{b_2}, \dots , \overline{b_{\varphi(n)}}</math> - все обратимые вычеты по модулю <math>n</math>. Тогда вычет <math>\overline{b} = \overline{b_1}\overline{b_2}\dots\overline{b_{\varphi(n)}}</math>, равный произведению всех обратимых вычетов, тоже обратим. Заметим, что отображение <math>\mathbb{Z}_{n}^{*} \to \mathbb{Z}_{n}^{*}</math>, заданное формулой <math>\overline{x} \mapsto \overline{a}\cdot\overline{x}</math> является биекцией. В таком случае в выражении <math> \overline{a}^{\varphi(n)}\overline{b} = (\overline{a} \overline{b_1}) \dots (\overline{a} \overline{b_{\varphi(n)}}) </math>, в правой части стоит произведение всех обратимых вычетов, но взятое в другом порядке. Тогда <math>\overline{a}^{\varphi(n)}\overline{b} = \overline{b}</math>. Умножая обе части на вычет, обратный к <math>\overline{b}</math>, получим, что <math>\overline{a}^{\varphi(n)} \equiv 1 \ (mod \ n) </math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
Следствием теоремы Эйлера является малая теорема Ферма. У нее также есть доказательство без использования более общей теоремы Эйлера, однако его мы приводить не будем.<br />
<br />
<br />
{{Теорема<br />
|about = Малая теорема Ферма<br />
<br />
|statement = Если целое число <math>a</math> и простое число <math>p</math> - взаимно-просты, то <math>a^{p - 1} \equiv 1 \ (mod \ p)</math><br />
<br />
|proof = Так как <math>p</math> - простое, то <math>\varphi(p) = p - 1</math>. Воспользуемся теоремой Эйлера, тогда <math>a^{\varphi(p)} = a^{p - 1} \equiv 1 \ (mod \ p)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
== Различные свойства функции Эйлера ==<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Если для каких-то натуральных чисел <math>a</math> и <math>b</math> верно, что <math>a\,|\,b</math>, тогда верно и <math>\varphi(a)\,|\, \varphi(b)</math><br />
<br />
|proof = <br />
Воспользуемся формулой для <tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i - 1}(p_i - 1) </tex>.<br />
<br />
:<math>a = p_1^{\alpha_1} \cdot\ldots\cdot p_{r_a}^{\alpha_{r_a}},</math><br />
:<math>b = p_1^{\beta_1} \cdot\ldots\cdot p_{r_b}^{\beta_{r_b}}</math><br />
<br />
При этом, так как <math>a\,|\,b</math>, то <math>r_a \leq r_b</math>, а также <math>\forall i \in [1\, ;\, r_a] \ \alpha_i \leq \beta_i</math><br />
<br />
<math></math><br />
<br />
Значит <tex>\displaystyle\frac{\varphi(b)}{\varphi(a)}</tex><tex>\displaystyle = \frac{\displaystyle\prod_{i = 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1)}{\displaystyle\prod_{i = 1}^{r_a}p_i^{\alpha_i - 1}(p_i - 1)} = \displaystyle(\prod_{i = 1}^{r_a}p_i^{\beta_i - \alpha_i}) \cdot \displaystyle(\prod_{i = r_a + 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1))</tex>, а значит <math>\varphi(a)\,|\, \varphi(b)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Для любого натурального числа <math>n</math> выполнено равенство <math>\displaystyle n = \sum_{d | n} \varphi(d)</math><br />
<br />
|proof = Данную теорему можно доказать "напролом", пользуясь формулой для <math>\varphi(d)</math>, а можно более элегантно:<br />
<br />
Рассмотрим <math>n</math> дробей <math>\frac{1}{n}, \frac{2}{n}, \dots , \frac{n}{n}</math>. Каждую дробь представим в виде несократимой дроби <math>\frac{p}{q}</math>.<br />
Заметим, что множество значений <math>q</math> {{---}} это множество делителей числа <math>n</math>. Так как дробь <math>\frac{p}{q}</math> несократима, то <math>p</math> и <math>q</math> взаимно-просты. Зная, что <math>p \leq q</math>, легко понять, что всего дробей со знаменателем <math>q</math> ровно <math>\varphi(q)</math>. Так как, все <math>n</math> дробей мы представили в несократимом виде, где знаменатель является делителем <math>n</math>, то <math>\displaystyle \sum_{d | n} \varphi(d) = n</math>, так как всего дробей <math>n</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
:<br />
<br />
{{Теорема<br />
|about = Обобщённая мультипликативность<br />
<br />
|statement = Пусть <math>n</math> и <math>m</math> {{---}} любые два натуральных числа, а <math>d = (n,\ m)</math>, тогда:<br />
: <math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n)\cdot\frac{d}{\varphi(d)},</math><br />
<br />
|proof = <br />
<br />
Пусть <math>(m,\,n)=d,</math> тогда <math>m = m'd, \; n = n'd,</math> причем в общем случае <math>(m',\,d) \neq 1</math> и <math>(n',\,d) \neq 1.</math> Поэтому можно записать:<br />
:<math>d = d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}},</math><br />
:<math>m' = d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r},</math><br />
:<math>n' = d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}.</math><br />
Здесь первые <math>k</math> делителей <math>d</math> являются также делителями <math>m',</math> а последние <math>K-k</math> делителей <math>d</math> являются делителями <math>n'.</math> Распишем:<br />
:<math>\varphi(mn)= \varphi(d^2 \cdot m'n')<br />
= \varphi((d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}})^2 \cdot d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r} \cdot d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}).</math><br />
В силу мультипликативности функции Эйлера, а также с учётом формулы<br />
:<math>\varphi(p^n) = p^n(1-\frac{1}{p}),</math><br />
где <math>p</math> — простое, получаем:<br />
:<math><br />
\begin{align}<br />
\varphi(mn)<br />
<br />
&= d_1^{\alpha_1+\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_k^{\alpha_k+\delta_k}\left(1-\frac{1}{d_k}\right) \cdot p_1^{\beta_1}\left(1-\frac{1}{p_1}\right) \cdot\ldots\cdot p_r^{\beta_r}\left(1-\frac{1}{p_r}\right) \cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\delta_{K}}\left(1-\frac{1}{d_{K}}\right)\times \\<br />
<br />
&\; \times \; d_{k+1}^{\gamma_{k+1}+\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\gamma_{K}+\delta_{K}}\left(1-\frac{1}{d_{K}}\right) \cdot q_1^{\varepsilon_1}\left(1-\frac{1}{q_1}\right) \cdot\ldots\cdot q_s^{\varepsilon_s}\left(1-\frac{1}{q_s}\right) \cdot d_1^{\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right)\times \\<br />
<br />
&\; \times \; \frac{1}{\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot \left(1-\frac{1}{d_K}\right)}.<br />
\end{align}<br />
</math><br />
В первой строке записано <math>\varphi(m),</math> во второй — <math>\varphi(n),</math> а третью можно представить, как <math>\frac{d}{\varphi(d)}.</math> Поэтому:<br />
:<math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n) \cdot \frac{d}{\varphi(d)}.</math><br />
<br />
}}<br />
<br />
== Применение теоремы Эйлера в других задачах ==<br />
<br />
==== Задача об ожерельях ====<br />
<br />
{{Задача<br />
|definition=<br />
Требуется посчитать количество ожерелий из <tex>n</tex> бусинок, каждая из которых может быть покрашена в один из <tex> k </tex> цветов. При сравнении двух ожерелий их можно поворачивать, но не переворачивать (т.е. разрешается сделать циклический сдвиг).}}<br />
<br />
В ходе решения задачи мы приходим к формуле <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{i = 1}^{n} k^{\mathrm{gcd}(i,n)}</tex><br />
<br />
Мы можем улучшить эту формулу, если рассмотрим выражение <math>\mathrm{gcd}(i,n)</math>. Пусть <math>\mathrm{gcd}(i,n) = q</math>, тогда числа <math>i</math> и <math>n</math> оба делятся на <math>q</math> и больше не имеют общих делителей. Тогда <math>\mathrm{gcd}(\frac{i}{q},\frac{n}{q}) = 1</math>. Таких натуральных <math>i \in [1 ; n]</math> и имеющих <math>\mathrm{gcd}(i,n) = q</math> ровно <tex>\varphi\left(\dfrac{n}{q}\right)</tex>.<br />
<br />
Пользуясь функцией Эйлера, мы можем привести формулу к финальному виду <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{q|n}\varphi\left(\dfrac{n}{q}\right)k^q</tex>.<br />
<br />
== Алгоритм ==<br />
Используя доказанные выше свойства функции, получим алгоритм нахождения <math>\varphi(n)</math> через факторизацию числа, работающий за <math>O(\sqrt{n})</math>. <br />
<br />
'''function''' phi (n):<br />
result = n <br />
i = 2<br />
<br />
'''while''' (i*i <= n):<br />
'''if''' n % i == 0:<br />
'''while''' n % i == 0:<br />
n /= i<br />
result -= result / i<br />
i++<br />
'''if''' (n > 1):<br />
result -= result/n<br />
'''return''' result<br />
<br />
== См. также ==<br />
* [[Задача об ожерельях]]<br />
<br />
== Ссылки ==<br />
* [https://ru.wikipedia.org/wiki/Функция_Эйлера Wikipedia {{---}} Функция Эйлера]<br />
* [https://e-maxx.ru/algo/euler_function Алгоритм нахождения функции Эйлера]<br />
* [https://wikichi.ru/wiki/Divisor_function Функция <math>\sigma</math>]</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=75616Обсуждение участника:MetaMockery2020-12-25T13:49:07Z<p>MetaMockery: /* Функции \sigma(n), \tau(n) и \varphi(n), их мультипликативность и значения */</p>
<hr />
<div>== Функция Эйлера ==<br />
<br />
{{Определение<br />
|definition=<br />
Функция <tex>f : \mathbb{N} \to \mathbb{Z} </tex> называется ''мультипликативной'', если <tex>f(mn) = f(m)f(n)</tex> для любых взаимно-простых <tex>m, n</tex>.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
''Функция Эйлера'' <tex>\varphi (n) </tex> {{---}} определяется как количество натуральных чисел, не превосходящих <tex>n</tex> и взаимно-простых с <tex>n</tex>.<br />
}}<br />
<br />
{{Теорема<br />
|about = Мультипликативность функции Эйлера<br />
|statement = Для любых взаимно-простых чисел <tex>m, n</tex> <br />
: <math>\varphi(mn)=\varphi(m)\varphi(n).</math><br />
|proof =<br />
Запишем <math>nm</math> натуральных чисел, не превосходящих <math>nm</math>, в виде прямоугольной таблицы с <math>n</math> столбцами и <math>m</math> строками, располагая первые <math>n</math> чисел в первой строке, вторые <math>n</math> чисел во второй и т.д.<br />
<br />
Поскольку <math>n</math> и <math>m</math> взаимно-просты, то целое <math>s</math> взаимно-просто с <math>nm</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>k</math> взаимно-просто с <math>k</math>. Поэтому, числа в таблице, взаимно-простые с <math>n</math>, заполняют ровно <math>\varphi(n)</math> столбцов таблицы.<br />
<br />
Давайте рассмотрим <math>m</math> последовательных членов арифметической прогрессии <math>a, a + d, \dots , a + (m - 1)d</math>. Тогда, если <math>GCD(d, m) = 1</math>, то остатки всех этих <math>m</math> чисел по модулю <math>m</math> разные, а значит образуют все множество остатков <math>\{0, \dots , m - 1\}</math>, причем каждый остаток получается ровно из одного из членов прогрессии.<br />
<br />
Подставив в данные рассуждения <math>d = n</math>, получим, что в каждом столбце таблицы имеется ровно <math>\varphi(m)</math> чисел, взаимно-простых с <math>m</math>. Следовательно всего чисел, взаимно-простых и с <math>n</math> и с <math>m</math> равно <math>\varphi(m)\varphi(n)</math>, что и требовалось доказать.<br />
}}<br />
<br />
== Функции <tex>\sigma(n)</tex>, <tex>\tau(n)</tex> и <tex>\varphi(n)</tex>, их мультипликативность и значения ==<br />
<br />
Каноническое разложение числа <tex>\displaystyle n = \prod_{i=1}^{r}p_i^{s_i} </tex><br />
<br />
==== Функция <tex>\sigma(n)</tex> ====<br />
<br />
Функция <tex>\sigma : \mathbb{N} \to \mathbb{N} </tex> определяется как сумма делителей натурального числа <tex>n</tex>:<br />
<center><tex>\displaystyle\sigma(n) = \sum_{d | n}d </tex></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\sigma(p) = p + 1</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\sigma(p^s) = \sum_{k=0}^{s}p^k = \frac{p^{s + 1} - 1}{p - 1} </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \sigma (n) = \prod_{i = 1}^{r}{\frac{p_{i}^{s_i+1}-1} {p_{i}-1}}. </tex></center><br />
<br />
<br />
==== Функция <tex>\tau(n)</tex> ====<br />
<br />
Функция <tex>\tau: \mathbb{N} \to \mathbb{N} </tex> определяется как число положительных делителей натурального числа <tex>n</tex>: <br />
<center><tex>\displaystyle\tau(n) = \sum_{d | n}1 </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно-просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\tau(n)</tex> мультипликативна:<br />
<center><math>\tau(mn)=\tau(m)\tau(n).</math></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\tau(p) = 2</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\tau(p^s) = s + 1 </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \tau(n) = \prod_{i = 1}^{r}(s_i + 1). </tex></center><br />
<br />
<br />
==== Функция <tex>\varphi(n)</tex> ====<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\varphi(p) = p - 1</tex>. На некоторую степень <math>p</math> формулу можно обобщить:<br />
<center><tex>\displaystyle\varphi(p^s) = p^s - p^{s - 1} </tex></center><br />
Обосновывается следующим образом: Все не взаимно-простые с <math>p^s</math> числа в диапазоне от 1 до <math>p^s</math>, очевидно, кратны <math>p</math>. Всего таких чисел <math>p^{s - 1}</math>.<br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i}(1 - \frac{1}{p_i}) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex></center><br />
<br />
== Малая теорема Ферма и теорема Эйлера ==<br />
<br />
{{Теорема<br />
|about= Теорема Эйлера<br />
<br />
|statement = Если <math>n</math> и <math>a</math> - взаимно-простые целые числа, то <math>a^{\varphi(n)} \equiv 1 \ (mod \ n)</math><br />
<br />
|proof =<br />
Число <math>\overline{x}</math> называется вычетом по модулю <math>n</math>, если <math>\overline{x} \equiv x \ (mod \ n)</math>. Вычет <math>\overline{x}</math> называется обратимым вычетом, если существует вычет <math>\overline{y}</math>, что <math>\overline{x}\overline{y} \equiv 1 \ (mod \ n)</math>. Заметим, что вычет <math>\overline{x}</math> обратим тогда и только тогда, когда <math>\overline{x}</math> и <math>n</math> взаимно-просты. В таком случае, у числа <math>n</math> существует всего <math>\varphi(n)</math> обратимых вычетов. Пусть <math>\mathbb{Z}_{n}^{*}</math> - множество всех обратимых вычетов по модулю <math>n</math>.<br />
<br />
Рассмотрим вычеты по модулю <math>n</math>. Так как <math>n</math> и <math>a</math> взаимно-просты, то вычет <math>\overline{a}</math> обратим. Пусть <math>\overline{b_1}, \overline{b_2}, \dots , \overline{b_{\varphi(n)}}</math> - все обратимые вычеты по модулю <math>n</math>. Тогда вычет <math>\overline{b} = \overline{b_1}\overline{b_2}\dots\overline{b_{\varphi(n)}}</math>, равный произведению всех обратимых вычетов, тоже обратим. Заметим, что отображение <math>\mathbb{Z}_{n}^{*} \to \mathbb{Z}_{n}^{*}</math>, заданное формулой <math>\overline{x} \mapsto \overline{a}\cdot\overline{x}</math> является биекцией. В таком случае в выражении <math> \overline{a}^{\varphi(n)}\overline{b} = (\overline{a} \overline{b_1}) \dots (\overline{a} \overline{b_{\varphi(n)}}) </math>, в правой части стоит произведение всех обратимых вычетов, но взятое в другом порядке. Тогда <math>\overline{a}^{\varphi(n)}\overline{b} = \overline{b}</math>. Умножая обе части на вычет, обратный к <math>\overline{b}</math>, получим, что <math>\overline{a}^{\varphi(n)} \equiv 1 \ (mod \ n) </math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
Следствием теоремы Эйлера является малая теорема Ферма. У нее также есть доказательство без использования более общей теоремы Эйлера, однако его мы приводить не будем.<br />
<br />
<br />
{{Теорема<br />
|about = Малая теорема Ферма<br />
<br />
|statement = Если целое число <math>a</math> и простое число <math>p</math> - взаимно-просты, то <math>a^{p - 1} \equiv 1 \ (mod \ p)</math><br />
<br />
|proof = Так как <math>p</math> - простое, то <math>\varphi(p) = p - 1</math>. Воспользуемся теоремой Эйлера, тогда <math>a^{\varphi(p)} = a^{p - 1} \equiv 1 \ (mod \ p)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
== Различные свойства функции Эйлера ==<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Если для каких-то натуральных чисел <math>a</math> и <math>b</math> верно, что <math>a\,|\,b</math>, тогда верно и <math>\varphi(a)\,|\, \varphi(b)</math><br />
<br />
|proof = <br />
Воспользуемся формулой для <tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i - 1}(p_i - 1) </tex>.<br />
<br />
:<math>a = p_1^{\alpha_1} \cdot\ldots\cdot p_{r_a}^{\alpha_{r_a}},</math><br />
:<math>b = p_1^{\beta_1} \cdot\ldots\cdot p_{r_b}^{\beta_{r_b}}</math><br />
<br />
При этом, так как <math>a\,|\,b</math>, то <math>r_a \leq r_b</math>, а также <math>\forall i \in [1\, ;\, r_a] \ \alpha_i \leq \beta_i</math><br />
<br />
<math></math><br />
<br />
Значит <tex>\displaystyle\frac{\varphi(b)}{\varphi(a)}</tex><tex>\displaystyle = \frac{\displaystyle\prod_{i = 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1)}{\displaystyle\prod_{i = 1}^{r_a}p_i^{\alpha_i - 1}(p_i - 1)} = \displaystyle(\prod_{i = 1}^{r_a}p_i^{\beta_i - \alpha_i}) \cdot \displaystyle(\prod_{i = r_a + 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1))</tex>, а значит <math>\varphi(a)\,|\, \varphi(b)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Для любого натурального числа <math>n</math> выполнено равенство <math>\displaystyle n = \sum_{d | n} \varphi(d)</math><br />
<br />
|proof = Данную теорему можно доказать "напролом", пользуясь формулой для <math>\varphi(d)</math>, а можно более элегантно:<br />
<br />
Рассмотрим <math>n</math> дробей <math>\frac{1}{n}, \frac{2}{n}, \dots , \frac{n}{n}</math>. Каждую дробь представим в виде несократимой дроби <math>\frac{p}{q}</math>.<br />
Заметим, что множество значений <math>q</math> {{---}} это множество делителей числа <math>n</math>. Так как дробь <math>\frac{p}{q}</math> несократима, то <math>p</math> и <math>q</math> взаимно-просты. Зная, что <math>p \leq q</math>, легко понять, что всего дробей со знаменателем <math>q</math> ровно <math>\varphi(q)</math>. Так как, все <math>n</math> дробей мы представили в несократимом виде, где знаменатель является делителем <math>n</math>, то <math>\displaystyle \sum_{d | n} \varphi(d) = n</math>, так как всего дробей <math>n</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
:<br />
<br />
{{Теорема<br />
|about = Обобщённая мультипликативность<br />
<br />
|statement = Пусть <math>n</math> и <math>m</math> {{---}} любые два натуральных числа, а <math>d = (n,\ m)</math>, тогда:<br />
: <math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n)\cdot\frac{d}{\varphi(d)},</math><br />
<br />
|proof = <br />
<br />
Пусть <math>(m,\,n)=d,</math> тогда <math>m = m'd, \; n = n'd,</math> причем в общем случае <math>(m',\,d) \neq 1</math> и <math>(n',\,d) \neq 1.</math> Поэтому можно записать:<br />
:<math>d = d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}},</math><br />
:<math>m' = d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r},</math><br />
:<math>n' = d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}.</math><br />
Здесь первые <math>k</math> делителей <math>d</math> являются также делителями <math>m',</math> а последние <math>K-k</math> делителей <math>d</math> являются делителями <math>n'.</math> Распишем:<br />
:<math>\varphi(mn)= \varphi(d^2 \cdot m'n')<br />
= \varphi((d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}})^2 \cdot d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r} \cdot d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}).</math><br />
В силу мультипликативности функции Эйлера, а также с учётом формулы<br />
:<math>\varphi(p^n) = p^n(1-\frac{1}{p}),</math><br />
где <math>p</math> — простое, получаем:<br />
:<math><br />
\begin{align}<br />
\varphi(mn)<br />
<br />
&= d_1^{\alpha_1+\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_k^{\alpha_k+\delta_k}\left(1-\frac{1}{d_k}\right) \cdot p_1^{\beta_1}\left(1-\frac{1}{p_1}\right) \cdot\ldots\cdot p_r^{\beta_r}\left(1-\frac{1}{p_r}\right) \cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\delta_{K}}\left(1-\frac{1}{d_{K}}\right)\times \\<br />
<br />
&\; \times \; d_{k+1}^{\gamma_{k+1}+\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\gamma_{K}+\delta_{K}}\left(1-\frac{1}{d_{K}}\right) \cdot q_1^{\varepsilon_1}\left(1-\frac{1}{q_1}\right) \cdot\ldots\cdot q_s^{\varepsilon_s}\left(1-\frac{1}{q_s}\right) \cdot d_1^{\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right)\times \\<br />
<br />
&\; \times \; \frac{1}{\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot \left(1-\frac{1}{d_K}\right)}.<br />
\end{align}<br />
</math><br />
В первой строке записано <math>\varphi(m),</math> во второй — <math>\varphi(n),</math> а третью можно представить, как <math>\frac{d}{\varphi(d)}.</math> Поэтому:<br />
:<math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n) \cdot \frac{d}{\varphi(d)}.</math><br />
<br />
}}<br />
<br />
== Применение теоремы Эйлера в других задачах ==<br />
<br />
==== Задача об ожерельях ====<br />
<br />
{{Задача<br />
|definition=<br />
Требуется посчитать количество ожерелий из <tex>n</tex> бусинок, каждая из которых может быть покрашена в один из <tex> k </tex> цветов. При сравнении двух ожерелий их можно поворачивать, но не переворачивать (т.е. разрешается сделать циклический сдвиг).}}<br />
<br />
В ходе решения задачи мы приходим к формуле <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{i = 1}^{n} k^{\mathrm{gcd}(i,n)}</tex><br />
<br />
Мы можем улучшить эту формулу, если рассмотрим выражение <math>\mathrm{gcd}(i,n)</math>. Пусть <math>\mathrm{gcd}(i,n) = q</math>, тогда числа <math>i</math> и <math>n</math> оба делятся на <math>q</math> и больше не имеют общих делителей. Тогда <math>\mathrm{gcd}(\frac{i}{q},\frac{n}{q}) = 1</math>. Таких натуральных <math>i \in [1 ; n]</math> и имеющих <math>\mathrm{gcd}(i,n) = q</math> ровно <tex>\varphi\left(\dfrac{n}{q}\right)</tex>.<br />
<br />
Пользуясь функцией Эйлера, мы можем привести формулу к финальному виду <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{q|n}\varphi\left(\dfrac{n}{q}\right)k^q</tex>.<br />
<br />
== Алгоритм ==<br />
Используя доказанные выше свойства функции, получим алгоритм нахождения <math>\varphi(n)</math> через факторизацию числа, работающий за <math>O(\sqrt{n})</math>. <br />
<br />
'''function''' phi (n):<br />
result = n <br />
i = 2<br />
<br />
'''while''' (i*i <= n):<br />
'''if''' n % i == 0:<br />
'''while''' n % i == 0:<br />
n /= i<br />
result -= result / i<br />
i++<br />
'''if''' (n > 1):<br />
result -= result/n<br />
'''return''' result<br />
<br />
== См. также ==<br />
* [[Задача об ожерельях]]<br />
<br />
== Ссылки ==<br />
* [https://ru.wikipedia.org/wiki/Функция_Эйлера Wikipedia {{---}} Функция Эйлера]<br />
* [https://e-maxx.ru/algo/euler_function Алгоритм нахождения функции Эйлера]<br />
* [https://wikichi.ru/wiki/Divisor_function Функция <math>\sigma</math>]</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=75615Обсуждение участника:MetaMockery2020-12-25T13:47:29Z<p>MetaMockery: /* Функция Эйлера */</p>
<hr />
<div>== Функция Эйлера ==<br />
<br />
{{Определение<br />
|definition=<br />
Функция <tex>f : \mathbb{N} \to \mathbb{Z} </tex> называется ''мультипликативной'', если <tex>f(mn) = f(m)f(n)</tex> для любых взаимно-простых <tex>m, n</tex>.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
''Функция Эйлера'' <tex>\varphi (n) </tex> {{---}} определяется как количество натуральных чисел, не превосходящих <tex>n</tex> и взаимно-простых с <tex>n</tex>.<br />
}}<br />
<br />
{{Теорема<br />
|about = Мультипликативность функции Эйлера<br />
|statement = Для любых взаимно-простых чисел <tex>m, n</tex> <br />
: <math>\varphi(mn)=\varphi(m)\varphi(n).</math><br />
|proof =<br />
Запишем <math>nm</math> натуральных чисел, не превосходящих <math>nm</math>, в виде прямоугольной таблицы с <math>n</math> столбцами и <math>m</math> строками, располагая первые <math>n</math> чисел в первой строке, вторые <math>n</math> чисел во второй и т.д.<br />
<br />
Поскольку <math>n</math> и <math>m</math> взаимно-просты, то целое <math>s</math> взаимно-просто с <math>nm</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>k</math> взаимно-просто с <math>k</math>. Поэтому, числа в таблице, взаимно-простые с <math>n</math>, заполняют ровно <math>\varphi(n)</math> столбцов таблицы.<br />
<br />
Давайте рассмотрим <math>m</math> последовательных членов арифметической прогрессии <math>a, a + d, \dots , a + (m - 1)d</math>. Тогда, если <math>GCD(d, m) = 1</math>, то остатки всех этих <math>m</math> чисел по модулю <math>m</math> разные, а значит образуют все множество остатков <math>\{0, \dots , m - 1\}</math>, причем каждый остаток получается ровно из одного из членов прогрессии.<br />
<br />
Подставив в данные рассуждения <math>d = n</math>, получим, что в каждом столбце таблицы имеется ровно <math>\varphi(m)</math> чисел, взаимно-простых с <math>m</math>. Следовательно всего чисел, взаимно-простых и с <math>n</math> и с <math>m</math> равно <math>\varphi(m)\varphi(n)</math>, что и требовалось доказать.<br />
}}<br />
<br />
== Функции <tex>\sigma(n)</tex>, <tex>\tau(n)</tex> и <tex>\varphi(n)</tex>, их мультипликативность и значения ==<br />
<br />
Каноническое разложение числа <tex>\displaystyle n = \prod_{i=1}^{r}p_i^{s_i} </tex><br />
<br />
==== Функция <tex>\sigma(n)</tex> ====<br />
<br />
Функция <tex>\sigma : \mathbb{N} \to \mathbb{N} </tex> определяется как сумма делителей натурального числа <tex>n</tex><br />
<center><tex>\displaystyle\sigma(n) = \sum_{d | n}d </tex></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\sigma(p) = p + 1</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\sigma(p^s) = \sum_{k=0}^{s}p^k = \frac{p^{s + 1} - 1}{p - 1} </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \sigma (n) = \prod_{i = 1}^{r}{\frac{p_{i}^{s_i+1}-1} {p_{i}-1}}. </tex></center><br />
<br />
<br />
==== Функция <tex>\tau(n)</tex> ====<br />
<br />
Функция <tex>\tau: \mathbb{N} \to \mathbb{N} </tex> определяется как число положительных делителей натурального числа <tex>n</tex>: <br />
<center><tex>\displaystyle\tau(n) = \sum_{d | n}1 </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно-просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\tau(n)</tex> мультипликативна:<br />
<center><math>\tau(mn)=\tau(m)\tau(n).</math></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\tau(p) = 2</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\tau(p^s) = s + 1 </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \tau(n) = \prod_{i = 1}^{r}(s_i + 1). </tex></center><br />
<br />
<br />
==== Функция <tex>\varphi(n)</tex> ====<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\varphi(p) = p - 1</tex>. На некоторую степень <math>p</math> формулу можно обобщить:<br />
<center><tex>\displaystyle\varphi(p^s) = p^s - p^{s - 1} </tex></center><br />
Обосновывается следующим образом: Все не взаимно-простые с <math>p^s</math> числа в диапазоне от 1 до <math>p^s</math>, очевидно, кратны <math>p</math>. Всего таких чисел <math>p^{s - 1}</math>.<br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i}(1 - \frac{1}{p_i}) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex></center><br />
<br />
<br />
<br />
== Малая теорема Ферма и теорема Эйлера ==<br />
<br />
{{Теорема<br />
|about= Теорема Эйлера<br />
<br />
|statement = Если <math>n</math> и <math>a</math> - взаимно-простые целые числа, то <math>a^{\varphi(n)} \equiv 1 \ (mod \ n)</math><br />
<br />
|proof =<br />
Число <math>\overline{x}</math> называется вычетом по модулю <math>n</math>, если <math>\overline{x} \equiv x \ (mod \ n)</math>. Вычет <math>\overline{x}</math> называется обратимым вычетом, если существует вычет <math>\overline{y}</math>, что <math>\overline{x}\overline{y} \equiv 1 \ (mod \ n)</math>. Заметим, что вычет <math>\overline{x}</math> обратим тогда и только тогда, когда <math>\overline{x}</math> и <math>n</math> взаимно-просты. В таком случае, у числа <math>n</math> существует всего <math>\varphi(n)</math> обратимых вычетов. Пусть <math>\mathbb{Z}_{n}^{*}</math> - множество всех обратимых вычетов по модулю <math>n</math>.<br />
<br />
Рассмотрим вычеты по модулю <math>n</math>. Так как <math>n</math> и <math>a</math> взаимно-просты, то вычет <math>\overline{a}</math> обратим. Пусть <math>\overline{b_1}, \overline{b_2}, \dots , \overline{b_{\varphi(n)}}</math> - все обратимые вычеты по модулю <math>n</math>. Тогда вычет <math>\overline{b} = \overline{b_1}\overline{b_2}\dots\overline{b_{\varphi(n)}}</math>, равный произведению всех обратимых вычетов, тоже обратим. Заметим, что отображение <math>\mathbb{Z}_{n}^{*} \to \mathbb{Z}_{n}^{*}</math>, заданное формулой <math>\overline{x} \mapsto \overline{a}\cdot\overline{x}</math> является биекцией. В таком случае в выражении <math> \overline{a}^{\varphi(n)}\overline{b} = (\overline{a} \overline{b_1}) \dots (\overline{a} \overline{b_{\varphi(n)}}) </math>, в правой части стоит произведение всех обратимых вычетов, но взятое в другом порядке. Тогда <math>\overline{a}^{\varphi(n)}\overline{b} = \overline{b}</math>. Умножая обе части на вычет, обратный к <math>\overline{b}</math>, получим, что <math>\overline{a}^{\varphi(n)} \equiv 1 \ (mod \ n) </math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
Следствием теоремы Эйлера является малая теорема Ферма. У нее также есть доказательство без использования более общей теоремы Эйлера, однако его мы приводить не будем.<br />
<br />
<br />
{{Теорема<br />
|about = Малая теорема Ферма<br />
<br />
|statement = Если целое число <math>a</math> и простое число <math>p</math> - взаимно-просты, то <math>a^{p - 1} \equiv 1 \ (mod \ p)</math><br />
<br />
|proof = Так как <math>p</math> - простое, то <math>\varphi(p) = p - 1</math>. Воспользуемся теоремой Эйлера, тогда <math>a^{\varphi(p)} = a^{p - 1} \equiv 1 \ (mod \ p)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
== Различные свойства функции Эйлера ==<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Если для каких-то натуральных чисел <math>a</math> и <math>b</math> верно, что <math>a\,|\,b</math>, тогда верно и <math>\varphi(a)\,|\, \varphi(b)</math><br />
<br />
|proof = <br />
Воспользуемся формулой для <tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i - 1}(p_i - 1) </tex>.<br />
<br />
:<math>a = p_1^{\alpha_1} \cdot\ldots\cdot p_{r_a}^{\alpha_{r_a}},</math><br />
:<math>b = p_1^{\beta_1} \cdot\ldots\cdot p_{r_b}^{\beta_{r_b}}</math><br />
<br />
При этом, так как <math>a\,|\,b</math>, то <math>r_a \leq r_b</math>, а также <math>\forall i \in [1\, ;\, r_a] \ \alpha_i \leq \beta_i</math><br />
<br />
<math></math><br />
<br />
Значит <tex>\displaystyle\frac{\varphi(b)}{\varphi(a)}</tex><tex>\displaystyle = \frac{\displaystyle\prod_{i = 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1)}{\displaystyle\prod_{i = 1}^{r_a}p_i^{\alpha_i - 1}(p_i - 1)} = \displaystyle(\prod_{i = 1}^{r_a}p_i^{\beta_i - \alpha_i}) \cdot \displaystyle(\prod_{i = r_a + 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1))</tex>, а значит <math>\varphi(a)\,|\, \varphi(b)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Для любого натурального числа <math>n</math> выполнено равенство <math>\displaystyle n = \sum_{d | n} \varphi(d)</math><br />
<br />
|proof = Данную теорему можно доказать "напролом", пользуясь формулой для <math>\varphi(d)</math>, а можно более элегантно:<br />
<br />
Рассмотрим <math>n</math> дробей <math>\frac{1}{n}, \frac{2}{n}, \dots , \frac{n}{n}</math>. Каждую дробь представим в виде несократимой дроби <math>\frac{p}{q}</math>.<br />
Заметим, что множество значений <math>q</math> {{---}} это множество делителей числа <math>n</math>. Так как дробь <math>\frac{p}{q}</math> несократима, то <math>p</math> и <math>q</math> взаимно-просты. Зная, что <math>p \leq q</math>, легко понять, что всего дробей со знаменателем <math>q</math> ровно <math>\varphi(q)</math>. Так как, все <math>n</math> дробей мы представили в несократимом виде, где знаменатель является делителем <math>n</math>, то <math>\displaystyle \sum_{d | n} \varphi(d) = n</math>, так как всего дробей <math>n</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
:<br />
<br />
{{Теорема<br />
|about = Обобщённая мультипликативность<br />
<br />
|statement = Пусть <math>n</math> и <math>m</math> {{---}} любые два натуральных числа, а <math>d = (n,\ m)</math>, тогда:<br />
: <math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n)\cdot\frac{d}{\varphi(d)},</math><br />
<br />
|proof = <br />
<br />
Пусть <math>(m,\,n)=d,</math> тогда <math>m = m'd, \; n = n'd,</math> причем в общем случае <math>(m',\,d) \neq 1</math> и <math>(n',\,d) \neq 1.</math> Поэтому можно записать:<br />
:<math>d = d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}},</math><br />
:<math>m' = d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r},</math><br />
:<math>n' = d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}.</math><br />
Здесь первые <math>k</math> делителей <math>d</math> являются также делителями <math>m',</math> а последние <math>K-k</math> делителей <math>d</math> являются делителями <math>n'.</math> Распишем:<br />
:<math>\varphi(mn)= \varphi(d^2 \cdot m'n')<br />
= \varphi((d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}})^2 \cdot d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r} \cdot d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}).</math><br />
В силу мультипликативности функции Эйлера, а также с учётом формулы<br />
:<math>\varphi(p^n) = p^n(1-\frac{1}{p}),</math><br />
где <math>p</math> — простое, получаем:<br />
:<math><br />
\begin{align}<br />
\varphi(mn)<br />
<br />
&= d_1^{\alpha_1+\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_k^{\alpha_k+\delta_k}\left(1-\frac{1}{d_k}\right) \cdot p_1^{\beta_1}\left(1-\frac{1}{p_1}\right) \cdot\ldots\cdot p_r^{\beta_r}\left(1-\frac{1}{p_r}\right) \cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\delta_{K}}\left(1-\frac{1}{d_{K}}\right)\times \\<br />
<br />
&\; \times \; d_{k+1}^{\gamma_{k+1}+\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\gamma_{K}+\delta_{K}}\left(1-\frac{1}{d_{K}}\right) \cdot q_1^{\varepsilon_1}\left(1-\frac{1}{q_1}\right) \cdot\ldots\cdot q_s^{\varepsilon_s}\left(1-\frac{1}{q_s}\right) \cdot d_1^{\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right)\times \\<br />
<br />
&\; \times \; \frac{1}{\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot \left(1-\frac{1}{d_K}\right)}.<br />
\end{align}<br />
</math><br />
В первой строке записано <math>\varphi(m),</math> во второй — <math>\varphi(n),</math> а третью можно представить, как <math>\frac{d}{\varphi(d)}.</math> Поэтому:<br />
:<math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n) \cdot \frac{d}{\varphi(d)}.</math><br />
<br />
}}<br />
<br />
== Применение теоремы Эйлера в других задачах ==<br />
<br />
==== Задача об ожерельях ====<br />
<br />
{{Задача<br />
|definition=<br />
Требуется посчитать количество ожерелий из <tex>n</tex> бусинок, каждая из которых может быть покрашена в один из <tex> k </tex> цветов. При сравнении двух ожерелий их можно поворачивать, но не переворачивать (т.е. разрешается сделать циклический сдвиг).}}<br />
<br />
В ходе решения задачи мы приходим к формуле <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{i = 1}^{n} k^{\mathrm{gcd}(i,n)}</tex><br />
<br />
Мы можем улучшить эту формулу, если рассмотрим выражение <math>\mathrm{gcd}(i,n)</math>. Пусть <math>\mathrm{gcd}(i,n) = q</math>, тогда числа <math>i</math> и <math>n</math> оба делятся на <math>q</math> и больше не имеют общих делителей. Тогда <math>\mathrm{gcd}(\frac{i}{q},\frac{n}{q}) = 1</math>. Таких натуральных <math>i \in [1 ; n]</math> и имеющих <math>\mathrm{gcd}(i,n) = q</math> ровно <tex>\varphi\left(\dfrac{n}{q}\right)</tex>.<br />
<br />
Пользуясь функцией Эйлера, мы можем привести формулу к финальному виду <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{q|n}\varphi\left(\dfrac{n}{q}\right)k^q</tex>.<br />
<br />
== Алгоритм ==<br />
Используя доказанные выше свойства функции, получим алгоритм нахождения <math>\varphi(n)</math> через факторизацию числа, работающий за <math>O(\sqrt{n})</math>. <br />
<br />
'''function''' phi (n):<br />
result = n <br />
i = 2<br />
<br />
'''while''' (i*i <= n):<br />
'''if''' n % i == 0:<br />
'''while''' n % i == 0:<br />
n /= i<br />
result -= result / i<br />
i++<br />
'''if''' (n > 1):<br />
result -= result/n<br />
'''return''' result<br />
<br />
== См. также ==<br />
* [[Задача об ожерельях]]<br />
<br />
== Ссылки ==<br />
* [https://ru.wikipedia.org/wiki/Функция_Эйлера Wikipedia {{---}} Функция Эйлера]<br />
* [https://e-maxx.ru/algo/euler_function Алгоритм нахождения функции Эйлера]<br />
* [https://wikichi.ru/wiki/Divisor_function Функция <math>\sigma</math>]</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=75552Обсуждение участника:MetaMockery2020-12-24T17:39:23Z<p>MetaMockery: /* Различные свойства функции Эйлера */</p>
<hr />
<div>== Функция Эйлера ==<br />
<br />
{{Определение<br />
|definition=<br />
Функция <tex>f : \mathbb{N} \to \mathbb{Z} </tex> называется ''мультипликативной'', если <tex>f(mn) = f(m)f(n)</tex> для любых взаимно-простых <tex>m, n</tex>.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
''Функция Эйлера'' <tex>\varphi (n) </tex> - определяется как количество натуральных чисел, не превосходящих <tex>n</tex> и взаимно-простых с <tex>n</tex>.<br />
}}<br />
<br />
{{Теорема<br />
|about = Мультипликативность функции Эйлера<br />
|statement = Для любых взаимно-простых чисел <tex>m, n</tex> <br />
: <math>\varphi(mn)=\varphi(m)\varphi(n).</math><br />
|proof =<br />
Запишем <math>nm</math> натуральных чисел, не превосходящих <math>nm</math>, в виде прямоугольной таблицы с <math>n</math> столбцами и <math>m</math> строками, располагая первые <math>n</math> чисел в первой строке, вторые <math>n</math> чисел во второй и т.д.<br />
<br />
Поскольку <math>n</math> и <math>m</math> взаимно-просты, то целое <math>s</math> взаимно-просто с <math>nm</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>k</math> взаимно-просто с <math>k</math>. Поэтому, числа в таблице, взаимно-простые с <math>n</math>, заполняют ровно <math>\varphi(n)</math> столбцов таблицы.<br />
<br />
Давайте рассмотрим <math>m</math> последовательных членов арифметической прогрессии <math>a, a + d, \dots , a + (m - 1)d</math>. Тогда, если <math>GCD(d, m) = 1</math>, то остатки всех этих <math>m</math> чисел по модулю <math>m</math> разные, а значит образуют все множество остатков <math>\{0, \dots , m - 1\}</math>, причем каждый остаток получается ровно из одного из членов прогрессии.<br />
<br />
Подставив в данные рассуждения <math>d = n</math>, получим, что в каждом столбце таблицы имеется ровно <math>\varphi(m)</math> чисел, взаимно-простых с <math>m</math>. Следовательно всего чисел, взаимно-простых и с <math>n</math> и с <math>m</math> равно <math>\varphi(m)\varphi(n)</math>, что и требовалось доказать.<br />
}}<br />
<br />
<br />
== Функции <tex>\sigma(n)</tex>, <tex>\tau(n)</tex> и <tex>\varphi(n)</tex>, их мультипликативность и значения ==<br />
<br />
Каноническое разложение числа <tex>\displaystyle n = \prod_{i=1}^{r}p_i^{s_i} </tex><br />
<br />
==== Функция <tex>\sigma(n)</tex> ====<br />
<br />
Функция <tex>\sigma : \mathbb{N} \to \mathbb{N} </tex> определяется как сумма делителей натурального числа <tex>n</tex><br />
<center><tex>\displaystyle\sigma(n) = \sum_{d | n}d </tex></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\sigma(p) = p + 1</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\sigma(p^s) = \sum_{k=0}^{s}p^k = \frac{p^{s + 1} - 1}{p - 1} </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \sigma (n) = \prod_{i = 1}^{r}{\frac{p_{i}^{s_i+1}-1} {p_{i}-1}}. </tex></center><br />
<br />
<br />
==== Функция <tex>\tau(n)</tex> ====<br />
<br />
Функция <tex>\tau: \mathbb{N} \to \mathbb{N} </tex> определяется как число положительных делителей натурального числа <tex>n</tex>: <br />
<center><tex>\displaystyle\tau(n) = \sum_{d | n}1 </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно-просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\tau(n)</tex> мультипликативна:<br />
<center><math>\tau(mn)=\tau(m)\tau(n).</math></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\tau(p) = 2</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\tau(p^s) = s + 1 </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \tau(n) = \prod_{i = 1}^{r}(s_i + 1). </tex></center><br />
<br />
<br />
==== Функция <tex>\varphi(n)</tex> ====<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\varphi(p) = p - 1</tex>. На некоторую степень <math>p</math> формулу можно обобщить:<br />
<center><tex>\displaystyle\varphi(p^s) = p^s - p^{s - 1} </tex></center><br />
Обосновывается следующим образом: Все не взаимно-простые с <math>p^s</math> числа в диапазоне от 1 до <math>p^s</math>, очевидно, кратны <math>p</math>. Всего таких чисел <math>p^{s - 1}</math>.<br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i}(1 - \frac{1}{p_i}) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex></center><br />
<br />
<br />
<br />
== Малая теорема Ферма и теорема Эйлера ==<br />
<br />
{{Теорема<br />
|about= Теорема Эйлера<br />
<br />
|statement = Если <math>n</math> и <math>a</math> - взаимно-простые целые числа, то <math>a^{\varphi(n)} \equiv 1 \ (mod \ n)</math><br />
<br />
|proof =<br />
Число <math>\overline{x}</math> называется вычетом по модулю <math>n</math>, если <math>\overline{x} \equiv x \ (mod \ n)</math>. Вычет <math>\overline{x}</math> называется обратимым вычетом, если существует вычет <math>\overline{y}</math>, что <math>\overline{x}\overline{y} \equiv 1 \ (mod \ n)</math>. Заметим, что вычет <math>\overline{x}</math> обратим тогда и только тогда, когда <math>\overline{x}</math> и <math>n</math> взаимно-просты. В таком случае, у числа <math>n</math> существует всего <math>\varphi(n)</math> обратимых вычетов. Пусть <math>\mathbb{Z}_{n}^{*}</math> - множество всех обратимых вычетов по модулю <math>n</math>.<br />
<br />
Рассмотрим вычеты по модулю <math>n</math>. Так как <math>n</math> и <math>a</math> взаимно-просты, то вычет <math>\overline{a}</math> обратим. Пусть <math>\overline{b_1}, \overline{b_2}, \dots , \overline{b_{\varphi(n)}}</math> - все обратимые вычеты по модулю <math>n</math>. Тогда вычет <math>\overline{b} = \overline{b_1}\overline{b_2}\dots\overline{b_{\varphi(n)}}</math>, равный произведению всех обратимых вычетов, тоже обратим. Заметим, что отображение <math>\mathbb{Z}_{n}^{*} \to \mathbb{Z}_{n}^{*}</math>, заданное формулой <math>\overline{x} \mapsto \overline{a}\cdot\overline{x}</math> является биекцией. В таком случае в выражении <math> \overline{a}^{\varphi(n)}\overline{b} = (\overline{a} \overline{b_1}) \dots (\overline{a} \overline{b_{\varphi(n)}}) </math>, в правой части стоит произведение всех обратимых вычетов, но взятое в другом порядке. Тогда <math>\overline{a}^{\varphi(n)}\overline{b} = \overline{b}</math>. Умножая обе части на вычет, обратный к <math>\overline{b}</math>, получим, что <math>\overline{a}^{\varphi(n)} \equiv 1 \ (mod \ n) </math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
Следствием теоремы Эйлера является малая теорема Ферма. У нее также есть доказательство без использования более общей теоремы Эйлера, однако его мы приводить не будем.<br />
<br />
<br />
{{Теорема<br />
|about = Малая теорема Ферма<br />
<br />
|statement = Если целое число <math>a</math> и простое число <math>p</math> - взаимно-просты, то <math>a^{p - 1} \equiv 1 \ (mod \ p)</math><br />
<br />
|proof = Так как <math>p</math> - простое, то <math>\varphi(p) = p - 1</math>. Воспользуемся теоремой Эйлера, тогда <math>a^{\varphi(p)} = a^{p - 1} \equiv 1 \ (mod \ p)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
== Различные свойства функции Эйлера ==<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Если для каких-то натуральных чисел <math>a</math> и <math>b</math> верно, что <math>a\,|\,b</math>, тогда верно и <math>\varphi(a)\,|\, \varphi(b)</math><br />
<br />
|proof = <br />
Воспользуемся формулой для <tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i - 1}(p_i - 1) </tex>.<br />
<br />
:<math>a = p_1^{\alpha_1} \cdot\ldots\cdot p_{r_a}^{\alpha_{r_a}},</math><br />
:<math>b = p_1^{\beta_1} \cdot\ldots\cdot p_{r_b}^{\beta_{r_b}}</math><br />
<br />
При этом, так как <math>a\,|\,b</math>, то <math>r_a \leq r_b</math>, а также <math>\forall i \in [1\, ;\, r_a] \ \alpha_i \leq \beta_i</math><br />
<br />
<math></math><br />
<br />
Значит <tex>\displaystyle\frac{\varphi(b)}{\varphi(a)}</tex><tex>\displaystyle = \frac{\displaystyle\prod_{i = 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1)}{\displaystyle\prod_{i = 1}^{r_a}p_i^{\alpha_i - 1}(p_i - 1)} = \displaystyle(\prod_{i = 1}^{r_a}p_i^{\beta_i - \alpha_i}) \cdot \displaystyle(\prod_{i = r_a + 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1))</tex>, а значит <math>\varphi(a)\,|\, \varphi(b)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Для любого натурального числа <math>n</math> выполнено равенство <math>\displaystyle n = \sum_{d | n} \varphi(d)</math><br />
<br />
|proof = Данную теорему можно доказать "напролом", пользуясь формулой для <math>\varphi(d)</math>, а можно более элегантно:<br />
<br />
Рассмотрим <math>n</math> дробей <math>\frac{1}{n}, \frac{2}{n}, \dots , \frac{n}{n}</math>. Каждую дробь представим в виде несократимой дроби <math>\frac{p}{q}</math>.<br />
Заметим, что множество значений <math>q</math> {{---}} это множество делителей числа <math>n</math>. Так как дробь <math>\frac{p}{q}</math> несократима, то <math>p</math> и <math>q</math> взаимно-просты. Зная, что <math>p \leq q</math>, легко понять, что всего дробей со знаменателем <math>q</math> ровно <math>\varphi(q)</math>. Так как, все <math>n</math> дробей мы представили в несократимом виде, где знаменатель является делителем <math>n</math>, то <math>\displaystyle \sum_{d | n} \varphi(d) = n</math>, так как всего дробей <math>n</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
:<br />
<br />
{{Теорема<br />
|about = Обобщённая мультипликативность<br />
<br />
|statement = Пусть <math>n</math> и <math>m</math> {{---}} любые два натуральных числа, а <math>d = (n,\ m)</math>, тогда:<br />
: <math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n)\cdot\frac{d}{\varphi(d)},</math><br />
<br />
|proof = <br />
<br />
Пусть <math>(m,\,n)=d,</math> тогда <math>m = m'd, \; n = n'd,</math> причем в общем случае <math>(m',\,d) \neq 1</math> и <math>(n',\,d) \neq 1.</math> Поэтому можно записать:<br />
:<math>d = d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}},</math><br />
:<math>m' = d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r},</math><br />
:<math>n' = d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}.</math><br />
Здесь первые <math>k</math> делителей <math>d</math> являются также делителями <math>m',</math> а последние <math>K-k</math> делителей <math>d</math> являются делителями <math>n'.</math> Распишем:<br />
:<math>\varphi(mn)= \varphi(d^2 \cdot m'n')<br />
= \varphi((d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}})^2 \cdot d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r} \cdot d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}).</math><br />
В силу мультипликативности функции Эйлера, а также с учётом формулы<br />
:<math>\varphi(p^n) = p^n(1-\frac{1}{p}),</math><br />
где <math>p</math> — простое, получаем:<br />
:<math><br />
\begin{align}<br />
\varphi(mn)<br />
<br />
&= d_1^{\alpha_1+\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_k^{\alpha_k+\delta_k}\left(1-\frac{1}{d_k}\right) \cdot p_1^{\beta_1}\left(1-\frac{1}{p_1}\right) \cdot\ldots\cdot p_r^{\beta_r}\left(1-\frac{1}{p_r}\right) \cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\delta_{K}}\left(1-\frac{1}{d_{K}}\right)\times \\<br />
<br />
&\; \times \; d_{k+1}^{\gamma_{k+1}+\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\gamma_{K}+\delta_{K}}\left(1-\frac{1}{d_{K}}\right) \cdot q_1^{\varepsilon_1}\left(1-\frac{1}{q_1}\right) \cdot\ldots\cdot q_s^{\varepsilon_s}\left(1-\frac{1}{q_s}\right) \cdot d_1^{\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right)\times \\<br />
<br />
&\; \times \; \frac{1}{\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot \left(1-\frac{1}{d_K}\right)}.<br />
\end{align}<br />
</math><br />
В первой строке записано <math>\varphi(m),</math> во второй — <math>\varphi(n),</math> а третью можно представить, как <math>\frac{d}{\varphi(d)}.</math> Поэтому:<br />
:<math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n) \cdot \frac{d}{\varphi(d)}.</math><br />
<br />
}}<br />
<br />
== Применение теоремы Эйлера в других задачах ==<br />
<br />
==== Задача об ожерельях ====<br />
<br />
{{Задача<br />
|definition=<br />
Требуется посчитать количество ожерелий из <tex>n</tex> бусинок, каждая из которых может быть покрашена в один из <tex> k </tex> цветов. При сравнении двух ожерелий их можно поворачивать, но не переворачивать (т.е. разрешается сделать циклический сдвиг).}}<br />
<br />
В ходе решения задачи мы приходим к формуле <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{i = 1}^{n} k^{\mathrm{gcd}(i,n)}</tex><br />
<br />
Мы можем улучшить эту формулу, если рассмотрим выражение <math>\mathrm{gcd}(i,n)</math>. Пусть <math>\mathrm{gcd}(i,n) = q</math>, тогда числа <math>i</math> и <math>n</math> оба делятся на <math>q</math> и больше не имеют общих делителей. Тогда <math>\mathrm{gcd}(\frac{i}{q},\frac{n}{q}) = 1</math>. Таких натуральных <math>i \in [1 ; n]</math> и имеющих <math>\mathrm{gcd}(i,n) = q</math> ровно <tex>\varphi\left(\dfrac{n}{q}\right)</tex>.<br />
<br />
Пользуясь функцией Эйлера, мы можем привести формулу к финальному виду <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{q|n}\varphi\left(\dfrac{n}{q}\right)k^q</tex>.<br />
<br />
== Алгоритм ==<br />
Используя доказанные выше свойства функции, получим алгоритм нахождения <math>\varphi(n)</math> через факторизацию числа, работающий за <math>O(\sqrt{n})</math>. <br />
<br />
'''function''' phi (n):<br />
result = n <br />
i = 2<br />
<br />
'''while''' (i*i <= n):<br />
'''if''' n % i == 0:<br />
'''while''' n % i == 0:<br />
n /= i<br />
result -= result / i<br />
i++<br />
'''if''' (n > 1):<br />
result -= result/n<br />
'''return''' result<br />
<br />
== См. также ==<br />
* [[Задача об ожерельях]]<br />
<br />
== Ссылки ==<br />
* [https://ru.wikipedia.org/wiki/Функция_Эйлера Wikipedia {{---}} Функция Эйлера]<br />
* [https://e-maxx.ru/algo/euler_function Алгоритм нахождения функции Эйлера]<br />
* [https://wikichi.ru/wiki/Divisor_function Функция <math>\sigma</math>]</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=75551Обсуждение участника:MetaMockery2020-12-24T17:38:05Z<p>MetaMockery: /* Различные свойства функции Эйлера */</p>
<hr />
<div>== Функция Эйлера ==<br />
<br />
{{Определение<br />
|definition=<br />
Функция <tex>f : \mathbb{N} \to \mathbb{Z} </tex> называется ''мультипликативной'', если <tex>f(mn) = f(m)f(n)</tex> для любых взаимно-простых <tex>m, n</tex>.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
''Функция Эйлера'' <tex>\varphi (n) </tex> - определяется как количество натуральных чисел, не превосходящих <tex>n</tex> и взаимно-простых с <tex>n</tex>.<br />
}}<br />
<br />
{{Теорема<br />
|about = Мультипликативность функции Эйлера<br />
|statement = Для любых взаимно-простых чисел <tex>m, n</tex> <br />
: <math>\varphi(mn)=\varphi(m)\varphi(n).</math><br />
|proof =<br />
Запишем <math>nm</math> натуральных чисел, не превосходящих <math>nm</math>, в виде прямоугольной таблицы с <math>n</math> столбцами и <math>m</math> строками, располагая первые <math>n</math> чисел в первой строке, вторые <math>n</math> чисел во второй и т.д.<br />
<br />
Поскольку <math>n</math> и <math>m</math> взаимно-просты, то целое <math>s</math> взаимно-просто с <math>nm</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>k</math> взаимно-просто с <math>k</math>. Поэтому, числа в таблице, взаимно-простые с <math>n</math>, заполняют ровно <math>\varphi(n)</math> столбцов таблицы.<br />
<br />
Давайте рассмотрим <math>m</math> последовательных членов арифметической прогрессии <math>a, a + d, \dots , a + (m - 1)d</math>. Тогда, если <math>GCD(d, m) = 1</math>, то остатки всех этих <math>m</math> чисел по модулю <math>m</math> разные, а значит образуют все множество остатков <math>\{0, \dots , m - 1\}</math>, причем каждый остаток получается ровно из одного из членов прогрессии.<br />
<br />
Подставив в данные рассуждения <math>d = n</math>, получим, что в каждом столбце таблицы имеется ровно <math>\varphi(m)</math> чисел, взаимно-простых с <math>m</math>. Следовательно всего чисел, взаимно-простых и с <math>n</math> и с <math>m</math> равно <math>\varphi(m)\varphi(n)</math>, что и требовалось доказать.<br />
}}<br />
<br />
<br />
== Функции <tex>\sigma(n)</tex>, <tex>\tau(n)</tex> и <tex>\varphi(n)</tex>, их мультипликативность и значения ==<br />
<br />
Каноническое разложение числа <tex>\displaystyle n = \prod_{i=1}^{r}p_i^{s_i} </tex><br />
<br />
==== Функция <tex>\sigma(n)</tex> ====<br />
<br />
Функция <tex>\sigma : \mathbb{N} \to \mathbb{N} </tex> определяется как сумма делителей натурального числа <tex>n</tex><br />
<center><tex>\displaystyle\sigma(n) = \sum_{d | n}d </tex></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\sigma(p) = p + 1</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\sigma(p^s) = \sum_{k=0}^{s}p^k = \frac{p^{s + 1} - 1}{p - 1} </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \sigma (n) = \prod_{i = 1}^{r}{\frac{p_{i}^{s_i+1}-1} {p_{i}-1}}. </tex></center><br />
<br />
<br />
==== Функция <tex>\tau(n)</tex> ====<br />
<br />
Функция <tex>\tau: \mathbb{N} \to \mathbb{N} </tex> определяется как число положительных делителей натурального числа <tex>n</tex>: <br />
<center><tex>\displaystyle\tau(n) = \sum_{d | n}1 </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно-просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\tau(n)</tex> мультипликативна:<br />
<center><math>\tau(mn)=\tau(m)\tau(n).</math></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\tau(p) = 2</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\tau(p^s) = s + 1 </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \tau(n) = \prod_{i = 1}^{r}(s_i + 1). </tex></center><br />
<br />
<br />
==== Функция <tex>\varphi(n)</tex> ====<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\varphi(p) = p - 1</tex>. На некоторую степень <math>p</math> формулу можно обобщить:<br />
<center><tex>\displaystyle\varphi(p^s) = p^s - p^{s - 1} </tex></center><br />
Обосновывается следующим образом: Все не взаимно-простые с <math>p^s</math> числа в диапазоне от 1 до <math>p^s</math>, очевидно, кратны <math>p</math>. Всего таких чисел <math>p^{s - 1}</math>.<br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i}(1 - \frac{1}{p_i}) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex></center><br />
<br />
<br />
<br />
== Малая теорема Ферма и теорема Эйлера ==<br />
<br />
{{Теорема<br />
|about= Теорема Эйлера<br />
<br />
|statement = Если <math>n</math> и <math>a</math> - взаимно-простые целые числа, то <math>a^{\varphi(n)} \equiv 1 \ (mod \ n)</math><br />
<br />
|proof =<br />
Число <math>\overline{x}</math> называется вычетом по модулю <math>n</math>, если <math>\overline{x} \equiv x \ (mod \ n)</math>. Вычет <math>\overline{x}</math> называется обратимым вычетом, если существует вычет <math>\overline{y}</math>, что <math>\overline{x}\overline{y} \equiv 1 \ (mod \ n)</math>. Заметим, что вычет <math>\overline{x}</math> обратим тогда и только тогда, когда <math>\overline{x}</math> и <math>n</math> взаимно-просты. В таком случае, у числа <math>n</math> существует всего <math>\varphi(n)</math> обратимых вычетов. Пусть <math>\mathbb{Z}_{n}^{*}</math> - множество всех обратимых вычетов по модулю <math>n</math>.<br />
<br />
Рассмотрим вычеты по модулю <math>n</math>. Так как <math>n</math> и <math>a</math> взаимно-просты, то вычет <math>\overline{a}</math> обратим. Пусть <math>\overline{b_1}, \overline{b_2}, \dots , \overline{b_{\varphi(n)}}</math> - все обратимые вычеты по модулю <math>n</math>. Тогда вычет <math>\overline{b} = \overline{b_1}\overline{b_2}\dots\overline{b_{\varphi(n)}}</math>, равный произведению всех обратимых вычетов, тоже обратим. Заметим, что отображение <math>\mathbb{Z}_{n}^{*} \to \mathbb{Z}_{n}^{*}</math>, заданное формулой <math>\overline{x} \mapsto \overline{a}\cdot\overline{x}</math> является биекцией. В таком случае в выражении <math> \overline{a}^{\varphi(n)}\overline{b} = (\overline{a} \overline{b_1}) \dots (\overline{a} \overline{b_{\varphi(n)}}) </math>, в правой части стоит произведение всех обратимых вычетов, но взятое в другом порядке. Тогда <math>\overline{a}^{\varphi(n)}\overline{b} = \overline{b}</math>. Умножая обе части на вычет, обратный к <math>\overline{b}</math>, получим, что <math>\overline{a}^{\varphi(n)} \equiv 1 \ (mod \ n) </math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
Следствием теоремы Эйлера является малая теорема Ферма. У нее также есть доказательство без использования более общей теоремы Эйлера, однако его мы приводить не будем.<br />
<br />
<br />
{{Теорема<br />
|about = Малая теорема Ферма<br />
<br />
|statement = Если целое число <math>a</math> и простое число <math>p</math> - взаимно-просты, то <math>a^{p - 1} \equiv 1 \ (mod \ p)</math><br />
<br />
|proof = Так как <math>p</math> - простое, то <math>\varphi(p) = p - 1</math>. Воспользуемся теоремой Эйлера, тогда <math>a^{\varphi(p)} = a^{p - 1} \equiv 1 \ (mod \ p)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
== Различные свойства функции Эйлера ==<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Если для каких-то натуральных чисел <math>a</math> и <math>b</math> верно, что <math>a\,|\,b</math>, тогда верно и <math>\varphi(a)\,|\, \varphi(b)</math><br />
<br />
|proof = <br />
Воспользуемся формулой для <tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i - 1}(p_i - 1) </tex>.<br />
<br />
:<math>a = p_1^{\alpha_1} \cdot\ldots\cdot p_{r_a}^{\alpha_{r_a}},</math><br />
:<math>b = p_1^{\beta_1} \cdot\ldots\cdot p_{r_b}^{\beta_{r_b}}</math><br />
<br />
При этом, так как <math>a\,|\,b</math>, то <math>r_a \leq r_b</math>, а также <math>\forall i \in [1\, ;\, r_a] \ \alpha_i \leq \beta_i</math><br />
<br />
<math></math><br />
<br />
Значит <tex>\displaystyle\frac{\varphi(b)}{\varphi(a)}</tex><tex>\displaystyle = \frac{\displaystyle\prod_{i = 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1)}{\displaystyle\prod_{i = 1}^{r_a}p_i^{\alpha_i - 1}(p_i - 1)} = \displaystyle(\prod_{i = 1}^{r_a}p_i^{\beta_i - \alpha_i}) \cdot \displaystyle(\prod_{i = r_a + 1}^{r_b}p_i^{\beta_i - 1}(p_i - 1))</tex>, а значит <math>\varphi(a)\,|\, \varphi(b)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Для любого натурального числа <math>n</math> выполнено равенство <math>\displaystyle n = \sum_{d | n} \varphi(d)</math><br />
<br />
|proof = Данную теорему можно доказать "напролом", пользуясь формулой для <math>\varphi(d)</math>, а можно более элегантно:<br />
<br />
Рассмотрим <math>n</math> дробей <math>\frac{1}{n}, \frac{2}{n}, \dots , \frac{n}{n}</math>. Каждую дробь представим в виде несократимой дроби <math>\frac{p}{q}</math>.<br />
Заметим, что множество значений <math>q</math> - это множество делителей числа <math>n</math>. Так как дробь <math>\frac{p}{q}</math> несократима, то <math>p</math> и <math>q</math> взаимно-просты. Зная, что <math>p \leq q</math>, легко понять, что всего дробей со знаменателем <math>q</math> ровно <math>\varphi(q)</math>. Так как, все <math>n</math> дробей мы представили в несократимом виде, где знаменатель является делителем <math>n</math>, то <math>\displaystyle \sum_{d | n} \varphi(d) = n</math>, так как всего дробей <math>n</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
:<br />
<br />
{{Теорема<br />
|about = Обобщённая мультипликативность<br />
<br />
|statement = Пусть <math>n</math> и <math>m</math> {{---}} любые два натуральных числа, а <math>d = (n,\ m)</math>, тогда:<br />
: <math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n)\cdot\frac{d}{\varphi(d)},</math><br />
<br />
|proof = <br />
<br />
Пусть <math>(m,\,n)=d,</math> тогда <math>m = m'd, \; n = n'd,</math> причем в общем случае <math>(m',\,d) \neq 1</math> и <math>(n',\,d) \neq 1.</math> Поэтому можно записать:<br />
:<math>d = d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}},</math><br />
:<math>m' = d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r},</math><br />
:<math>n' = d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}.</math><br />
Здесь первые <math>k</math> делителей <math>d</math> являются также делителями <math>m',</math> а последние <math>K-k</math> делителей <math>d</math> являются делителями <math>n'.</math> Распишем:<br />
:<math>\varphi(mn)= \varphi(d^2 \cdot m'n')<br />
= \varphi((d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}})^2 \cdot d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r} \cdot d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}).</math><br />
В силу мультипликативности функции Эйлера, а также с учётом формулы<br />
:<math>\varphi(p^n) = p^n(1-\frac{1}{p}),</math><br />
где <math>p</math> — простое, получаем:<br />
:<math><br />
\begin{align}<br />
\varphi(mn)<br />
<br />
&= d_1^{\alpha_1+\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_k^{\alpha_k+\delta_k}\left(1-\frac{1}{d_k}\right) \cdot p_1^{\beta_1}\left(1-\frac{1}{p_1}\right) \cdot\ldots\cdot p_r^{\beta_r}\left(1-\frac{1}{p_r}\right) \cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\delta_{K}}\left(1-\frac{1}{d_{K}}\right)\times \\<br />
<br />
&\; \times \; d_{k+1}^{\gamma_{k+1}+\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\gamma_{K}+\delta_{K}}\left(1-\frac{1}{d_{K}}\right) \cdot q_1^{\varepsilon_1}\left(1-\frac{1}{q_1}\right) \cdot\ldots\cdot q_s^{\varepsilon_s}\left(1-\frac{1}{q_s}\right) \cdot d_1^{\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right)\times \\<br />
<br />
&\; \times \; \frac{1}{\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot \left(1-\frac{1}{d_K}\right)}.<br />
\end{align}<br />
</math><br />
В первой строке записано <math>\varphi(m),</math> во второй — <math>\varphi(n),</math> а третью можно представить, как <math>\frac{d}{\varphi(d)}.</math> Поэтому:<br />
:<math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n) \cdot \frac{d}{\varphi(d)}.</math><br />
<br />
}}<br />
<br />
== Применение теоремы Эйлера в других задачах ==<br />
<br />
==== Задача об ожерельях ====<br />
<br />
{{Задача<br />
|definition=<br />
Требуется посчитать количество ожерелий из <tex>n</tex> бусинок, каждая из которых может быть покрашена в один из <tex> k </tex> цветов. При сравнении двух ожерелий их можно поворачивать, но не переворачивать (т.е. разрешается сделать циклический сдвиг).}}<br />
<br />
В ходе решения задачи мы приходим к формуле <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{i = 1}^{n} k^{\mathrm{gcd}(i,n)}</tex><br />
<br />
Мы можем улучшить эту формулу, если рассмотрим выражение <math>\mathrm{gcd}(i,n)</math>. Пусть <math>\mathrm{gcd}(i,n) = q</math>, тогда числа <math>i</math> и <math>n</math> оба делятся на <math>q</math> и больше не имеют общих делителей. Тогда <math>\mathrm{gcd}(\frac{i}{q},\frac{n}{q}) = 1</math>. Таких натуральных <math>i \in [1 ; n]</math> и имеющих <math>\mathrm{gcd}(i,n) = q</math> ровно <tex>\varphi\left(\dfrac{n}{q}\right)</tex>.<br />
<br />
Пользуясь функцией Эйлера, мы можем привести формулу к финальному виду <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{q|n}\varphi\left(\dfrac{n}{q}\right)k^q</tex>.<br />
<br />
== Алгоритм ==<br />
Используя доказанные выше свойства функции, получим алгоритм нахождения <math>\varphi(n)</math> через факторизацию числа, работающий за <math>O(\sqrt{n})</math>. <br />
<br />
'''function''' phi (n):<br />
result = n <br />
i = 2<br />
<br />
'''while''' (i*i <= n):<br />
'''if''' n % i == 0:<br />
'''while''' n % i == 0:<br />
n /= i<br />
result -= result / i<br />
i++<br />
'''if''' (n > 1):<br />
result -= result/n<br />
'''return''' result<br />
<br />
== См. также ==<br />
* [[Задача об ожерельях]]<br />
<br />
== Ссылки ==<br />
* [https://ru.wikipedia.org/wiki/Функция_Эйлера Wikipedia {{---}} Функция Эйлера]<br />
* [https://e-maxx.ru/algo/euler_function Алгоритм нахождения функции Эйлера]<br />
* [https://wikichi.ru/wiki/Divisor_function Функция <math>\sigma</math>]</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=75550Обсуждение участника:MetaMockery2020-12-24T17:14:49Z<p>MetaMockery: /* Различные свойства функции Эйлера */</p>
<hr />
<div>== Функция Эйлера ==<br />
<br />
{{Определение<br />
|definition=<br />
Функция <tex>f : \mathbb{N} \to \mathbb{Z} </tex> называется ''мультипликативной'', если <tex>f(mn) = f(m)f(n)</tex> для любых взаимно-простых <tex>m, n</tex>.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
''Функция Эйлера'' <tex>\varphi (n) </tex> - определяется как количество натуральных чисел, не превосходящих <tex>n</tex> и взаимно-простых с <tex>n</tex>.<br />
}}<br />
<br />
{{Теорема<br />
|about = Мультипликативность функции Эйлера<br />
|statement = Для любых взаимно-простых чисел <tex>m, n</tex> <br />
: <math>\varphi(mn)=\varphi(m)\varphi(n).</math><br />
|proof =<br />
Запишем <math>nm</math> натуральных чисел, не превосходящих <math>nm</math>, в виде прямоугольной таблицы с <math>n</math> столбцами и <math>m</math> строками, располагая первые <math>n</math> чисел в первой строке, вторые <math>n</math> чисел во второй и т.д.<br />
<br />
Поскольку <math>n</math> и <math>m</math> взаимно-просты, то целое <math>s</math> взаимно-просто с <math>nm</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>k</math> взаимно-просто с <math>k</math>. Поэтому, числа в таблице, взаимно-простые с <math>n</math>, заполняют ровно <math>\varphi(n)</math> столбцов таблицы.<br />
<br />
Давайте рассмотрим <math>m</math> последовательных членов арифметической прогрессии <math>a, a + d, \dots , a + (m - 1)d</math>. Тогда, если <math>GCD(d, m) = 1</math>, то остатки всех этих <math>m</math> чисел по модулю <math>m</math> разные, а значит образуют все множество остатков <math>\{0, \dots , m - 1\}</math>, причем каждый остаток получается ровно из одного из членов прогрессии.<br />
<br />
Подставив в данные рассуждения <math>d = n</math>, получим, что в каждом столбце таблицы имеется ровно <math>\varphi(m)</math> чисел, взаимно-простых с <math>m</math>. Следовательно всего чисел, взаимно-простых и с <math>n</math> и с <math>m</math> равно <math>\varphi(m)\varphi(n)</math>, что и требовалось доказать.<br />
}}<br />
<br />
<br />
== Функции <tex>\sigma(n)</tex>, <tex>\tau(n)</tex> и <tex>\varphi(n)</tex>, их мультипликативность и значения ==<br />
<br />
Каноническое разложение числа <tex>\displaystyle n = \prod_{i=1}^{r}p_i^{s_i} </tex><br />
<br />
==== Функция <tex>\sigma(n)</tex> ====<br />
<br />
Функция <tex>\sigma : \mathbb{N} \to \mathbb{N} </tex> определяется как сумма делителей натурального числа <tex>n</tex><br />
<center><tex>\displaystyle\sigma(n) = \sum_{d | n}d </tex></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\sigma(p) = p + 1</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\sigma(p^s) = \sum_{k=0}^{s}p^k = \frac{p^{s + 1} - 1}{p - 1} </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \sigma (n) = \prod_{i = 1}^{r}{\frac{p_{i}^{s_i+1}-1} {p_{i}-1}}. </tex></center><br />
<br />
<br />
==== Функция <tex>\tau(n)</tex> ====<br />
<br />
Функция <tex>\tau: \mathbb{N} \to \mathbb{N} </tex> определяется как число положительных делителей натурального числа <tex>n</tex>: <br />
<center><tex>\displaystyle\tau(n) = \sum_{d | n}1 </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно-просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\tau(n)</tex> мультипликативна:<br />
<center><math>\tau(mn)=\tau(m)\tau(n).</math></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\tau(p) = 2</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\tau(p^s) = s + 1 </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \tau(n) = \prod_{i = 1}^{r}(s_i + 1). </tex></center><br />
<br />
<br />
==== Функция <tex>\varphi(n)</tex> ====<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\varphi(p) = p - 1</tex>. На некоторую степень <math>p</math> формулу можно обобщить:<br />
<center><tex>\displaystyle\varphi(p^s) = p^s - p^{s - 1} </tex></center><br />
Обосновывается следующим образом: Все не взаимно-простые с <math>p^s</math> числа в диапазоне от 1 до <math>p^s</math>, очевидно, кратны <math>p</math>. Всего таких чисел <math>p^{s - 1}</math>.<br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i}(1 - \frac{1}{p_i}) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex></center><br />
<br />
<br />
<br />
== Малая теорема Ферма и теорема Эйлера ==<br />
<br />
{{Теорема<br />
|about= Теорема Эйлера<br />
<br />
|statement = Если <math>n</math> и <math>a</math> - взаимно-простые целые числа, то <math>a^{\varphi(n)} \equiv 1 \ (mod \ n)</math><br />
<br />
|proof =<br />
Число <math>\overline{x}</math> называется вычетом по модулю <math>n</math>, если <math>\overline{x} \equiv x \ (mod \ n)</math>. Вычет <math>\overline{x}</math> называется обратимым вычетом, если существует вычет <math>\overline{y}</math>, что <math>\overline{x}\overline{y} \equiv 1 \ (mod \ n)</math>. Заметим, что вычет <math>\overline{x}</math> обратим тогда и только тогда, когда <math>\overline{x}</math> и <math>n</math> взаимно-просты. В таком случае, у числа <math>n</math> существует всего <math>\varphi(n)</math> обратимых вычетов. Пусть <math>\mathbb{Z}_{n}^{*}</math> - множество всех обратимых вычетов по модулю <math>n</math>.<br />
<br />
Рассмотрим вычеты по модулю <math>n</math>. Так как <math>n</math> и <math>a</math> взаимно-просты, то вычет <math>\overline{a}</math> обратим. Пусть <math>\overline{b_1}, \overline{b_2}, \dots , \overline{b_{\varphi(n)}}</math> - все обратимые вычеты по модулю <math>n</math>. Тогда вычет <math>\overline{b} = \overline{b_1}\overline{b_2}\dots\overline{b_{\varphi(n)}}</math>, равный произведению всех обратимых вычетов, тоже обратим. Заметим, что отображение <math>\mathbb{Z}_{n}^{*} \to \mathbb{Z}_{n}^{*}</math>, заданное формулой <math>\overline{x} \mapsto \overline{a}\cdot\overline{x}</math> является биекцией. В таком случае в выражении <math> \overline{a}^{\varphi(n)}\overline{b} = (\overline{a} \overline{b_1}) \dots (\overline{a} \overline{b_{\varphi(n)}}) </math>, в правой части стоит произведение всех обратимых вычетов, но взятое в другом порядке. Тогда <math>\overline{a}^{\varphi(n)}\overline{b} = \overline{b}</math>. Умножая обе части на вычет, обратный к <math>\overline{b}</math>, получим, что <math>\overline{a}^{\varphi(n)} \equiv 1 \ (mod \ n) </math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
Следствием теоремы Эйлера является малая теорема Ферма. У нее также есть доказательство без использования более общей теоремы Эйлера, однако его мы приводить не будем.<br />
<br />
<br />
{{Теорема<br />
|about = Малая теорема Ферма<br />
<br />
|statement = Если целое число <math>a</math> и простое число <math>p</math> - взаимно-просты, то <math>a^{p - 1} \equiv 1 \ (mod \ p)</math><br />
<br />
|proof = Так как <math>p</math> - простое, то <math>\varphi(p) = p - 1</math>. Воспользуемся теоремой Эйлера, тогда <math>a^{\varphi(p)} = a^{p - 1} \equiv 1 \ (mod \ p)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
== Различные свойства функции Эйлера ==<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Если для каких-то натуральных чисел <math>a</math> и <math>b</math> верно, что <math>a\,|\,b</math>, тогда верно и <math>\varphi(a)\,|\, \varphi(b)</math><br />
<br />
|proof = <br />
Используя формулу для <math>\varphi(n)</math> посчитаем <br />
<br />
<br />
Воспользуемся формулой для <tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i}(1 - \frac{1}{p_i}) = n\prod_{i = 1}^{r}(\frac{p_i - 1}{p_i}) </tex>.<br />
}}<br />
<br />
<center></center><br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Для любого натурального числа <math>n</math> выполнено равенство <math>\displaystyle n = \sum_{d | n} \varphi(d)</math><br />
<br />
|proof = Данную теорему можно доказать "напролом", пользуясь формулой для <math>\varphi(d)</math>, а можно более элегантно:<br />
<br />
Рассмотрим <math>n</math> дробей <math>\frac{1}{n}, \frac{2}{n}, \dots , \frac{n}{n}</math>. Каждую дробь представим в виде несократимой дроби <math>\frac{p}{q}</math>.<br />
Заметим, что множество значений <math>q</math> - это множество делителей числа <math>n</math>. Так как дробь <math>\frac{p}{q}</math> несократима, то <math>p</math> и <math>q</math> взаимно-просты. Зная, что <math>p \leq q</math>, легко понять, что всего дробей со знаменателем <math>q</math> ровно <math>\varphi(q)</math>. Так как, все <math>n</math> дробей мы представили в несократимом виде, где знаменатель является делителем <math>n</math>, то <math>\displaystyle \sum_{d | n} \varphi(d) = n</math>, так как всего дробей <math>n</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
:<br />
<br />
{{Теорема<br />
|about = Обобщённая мультипликативность<br />
<br />
|statement = Пусть <math>n</math> и <math>m</math> {{---}} любые два натуральных числа, а <math>d = (n,\ m)</math>, тогда:<br />
: <math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n)\cdot\frac{d}{\varphi(d)},</math><br />
<br />
|proof = <br />
<br />
Пусть <math>(m,\,n)=d,</math> тогда <math>m = m'd, \; n = n'd,</math> причем в общем случае <math>(m',\,d) \neq 1</math> и <math>(n',\,d) \neq 1.</math> Поэтому можно записать:<br />
:<math>d = d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}},</math><br />
:<math>m' = d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r},</math><br />
:<math>n' = d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}.</math><br />
Здесь первые <math>k</math> делителей <math>d</math> являются также делителями <math>m',</math> а последние <math>K-k</math> делителей <math>d</math> являются делителями <math>n'.</math> Распишем:<br />
:<math>\varphi(mn)= \varphi(d^2 \cdot m'n')<br />
= \varphi((d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}})^2 \cdot d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r} \cdot d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}).</math><br />
В силу мультипликативности функции Эйлера, а также с учётом формулы<br />
:<math>\varphi(p^n) = p^n(1-\frac{1}{p}),</math><br />
где <math>p</math> — простое, получаем:<br />
:<math><br />
\begin{align}<br />
\varphi(mn)<br />
<br />
&= d_1^{\alpha_1+\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_k^{\alpha_k+\delta_k}\left(1-\frac{1}{d_k}\right) \cdot p_1^{\beta_1}\left(1-\frac{1}{p_1}\right) \cdot\ldots\cdot p_r^{\beta_r}\left(1-\frac{1}{p_r}\right) \cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\delta_{K}}\left(1-\frac{1}{d_{K}}\right)\times \\<br />
<br />
&\; \times \; d_{k+1}^{\gamma_{k+1}+\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\gamma_{K}+\delta_{K}}\left(1-\frac{1}{d_{K}}\right) \cdot q_1^{\varepsilon_1}\left(1-\frac{1}{q_1}\right) \cdot\ldots\cdot q_s^{\varepsilon_s}\left(1-\frac{1}{q_s}\right) \cdot d_1^{\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right)\times \\<br />
<br />
&\; \times \; \frac{1}{\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot \left(1-\frac{1}{d_K}\right)}.<br />
\end{align}<br />
</math><br />
В первой строке записано <math>\varphi(m),</math> во второй — <math>\varphi(n),</math> а третью можно представить, как <math>\frac{d}{\varphi(d)}.</math> Поэтому:<br />
:<math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n) \cdot \frac{d}{\varphi(d)}.</math><br />
<br />
}}<br />
<br />
== Применение теоремы Эйлера в других задачах ==<br />
<br />
==== Задача об ожерельях ====<br />
<br />
{{Задача<br />
|definition=<br />
Требуется посчитать количество ожерелий из <tex>n</tex> бусинок, каждая из которых может быть покрашена в один из <tex> k </tex> цветов. При сравнении двух ожерелий их можно поворачивать, но не переворачивать (т.е. разрешается сделать циклический сдвиг).}}<br />
<br />
В ходе решения задачи мы приходим к формуле <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{i = 1}^{n} k^{\mathrm{gcd}(i,n)}</tex><br />
<br />
Мы можем улучшить эту формулу, если рассмотрим выражение <math>\mathrm{gcd}(i,n)</math>. Пусть <math>\mathrm{gcd}(i,n) = q</math>, тогда числа <math>i</math> и <math>n</math> оба делятся на <math>q</math> и больше не имеют общих делителей. Тогда <math>\mathrm{gcd}(\frac{i}{q},\frac{n}{q}) = 1</math>. Таких натуральных <math>i \in [1 ; n]</math> и имеющих <math>\mathrm{gcd}(i,n) = q</math> ровно <tex>\varphi\left(\dfrac{n}{q}\right)</tex>.<br />
<br />
Пользуясь функцией Эйлера, мы можем привести формулу к финальному виду <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{q|n}\varphi\left(\dfrac{n}{q}\right)k^q</tex>.<br />
<br />
== Алгоритм ==<br />
Используя доказанные выше свойства функции, получим алгоритм нахождения <math>\varphi(n)</math> через факторизацию числа, работающий за <math>O(\sqrt{n})</math>. <br />
<br />
'''function''' phi (n):<br />
result = n <br />
i = 2<br />
<br />
'''while''' (i*i <= n):<br />
'''if''' n % i == 0:<br />
'''while''' n % i == 0:<br />
n /= i<br />
result -= result / i<br />
i++<br />
'''if''' (n > 1):<br />
result -= result/n<br />
'''return''' result<br />
<br />
== См. также ==<br />
* [[Задача об ожерельях]]<br />
<br />
== Ссылки ==<br />
* [https://ru.wikipedia.org/wiki/Функция_Эйлера Wikipedia {{---}} Функция Эйлера]<br />
* [https://e-maxx.ru/algo/euler_function Алгоритм нахождения функции Эйлера]<br />
* [https://wikichi.ru/wiki/Divisor_function Функция <math>\sigma</math>]</div>MetaMockeryhttp://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:MetaMockery&diff=75547Обсуждение участника:MetaMockery2020-12-24T14:41:08Z<p>MetaMockery: /* Различные свойства функции Эйлера */</p>
<hr />
<div>== Функция Эйлера ==<br />
<br />
{{Определение<br />
|definition=<br />
Функция <tex>f : \mathbb{N} \to \mathbb{Z} </tex> называется ''мультипликативной'', если <tex>f(mn) = f(m)f(n)</tex> для любых взаимно-простых <tex>m, n</tex>.<br />
}}<br />
<br />
{{Определение<br />
|definition=<br />
''Функция Эйлера'' <tex>\varphi (n) </tex> - определяется как количество натуральных чисел, не превосходящих <tex>n</tex> и взаимно-простых с <tex>n</tex>.<br />
}}<br />
<br />
{{Теорема<br />
|about = Мультипликативность функции Эйлера<br />
|statement = Для любых взаимно-простых чисел <tex>m, n</tex> <br />
: <math>\varphi(mn)=\varphi(m)\varphi(n).</math><br />
|proof =<br />
Запишем <math>nm</math> натуральных чисел, не превосходящих <math>nm</math>, в виде прямоугольной таблицы с <math>n</math> столбцами и <math>m</math> строками, располагая первые <math>n</math> чисел в первой строке, вторые <math>n</math> чисел во второй и т.д.<br />
<br />
Поскольку <math>n</math> и <math>m</math> взаимно-просты, то целое <math>s</math> взаимно-просто с <math>nm</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>k</math> взаимно-просто с <math>k</math>. Поэтому, числа в таблице, взаимно-простые с <math>n</math>, заполняют ровно <math>\varphi(n)</math> столбцов таблицы.<br />
<br />
Давайте рассмотрим <math>m</math> последовательных членов арифметической прогрессии <math>a, a + d, \dots , a + (m - 1)d</math>. Тогда, если <math>GCD(d, m) = 1</math>, то остатки всех этих <math>m</math> чисел по модулю <math>m</math> разные, а значит образуют все множество остатков <math>\{0, \dots , m - 1\}</math>, причем каждый остаток получается ровно из одного из членов прогрессии.<br />
<br />
Подставив в данные рассуждения <math>d = n</math>, получим, что в каждом столбце таблицы имеется ровно <math>\varphi(m)</math> чисел, взаимно-простых с <math>m</math>. Следовательно всего чисел, взаимно-простых и с <math>n</math> и с <math>m</math> равно <math>\varphi(m)\varphi(n)</math>, что и требовалось доказать.<br />
}}<br />
<br />
<br />
== Функции <tex>\sigma(n)</tex>, <tex>\tau(n)</tex> и <tex>\varphi(n)</tex>, их мультипликативность и значения ==<br />
<br />
Каноническое разложение числа <tex>\displaystyle n = \prod_{i=1}^{r}p_i^{s_i} </tex><br />
<br />
==== Функция <tex>\sigma(n)</tex> ====<br />
<br />
Функция <tex>\sigma : \mathbb{N} \to \mathbb{N} </tex> определяется как сумма делителей натурального числа <tex>n</tex><br />
<center><tex>\displaystyle\sigma(n) = \sum_{d | n}d </tex></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\sigma(p) = p + 1</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\sigma(p^s) = \sum_{k=0}^{s}p^k = \frac{p^{s + 1} - 1}{p - 1} </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \sigma (n) = \prod_{i = 1}^{r}{\frac{p_{i}^{s_i+1}-1} {p_{i}-1}}. </tex></center><br />
<br />
<br />
==== Функция <tex>\tau(n)</tex> ====<br />
<br />
Функция <tex>\tau: \mathbb{N} \to \mathbb{N} </tex> определяется как число положительных делителей натурального числа <tex>n</tex>: <br />
<center><tex>\displaystyle\tau(n) = \sum_{d | n}1 </tex></center><br />
<br />
Если <math>m</math> и <math>n</math> взаимно-просты, то каждый делитель произведения <math>mn</math> может быть единственным образом представлен в виде произведения делителей <math>m</math> и делителей <math>n</math>, и обратно, каждое такое произведение является делителем <math>mn</math>. Отсюда следует, что функция <tex>\tau(n)</tex> мультипликативна:<br />
<center><math>\tau(mn)=\tau(m)\tau(n).</math></center><br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\tau(p) = 2</tex>. При этом легко обобщается для некоторой степени <math>p</math>: <br />
<center><tex>\displaystyle\tau(p^s) = s + 1 </tex></center><br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \tau(n) = \prod_{i = 1}^{r}(s_i + 1). </tex></center><br />
<br />
<br />
==== Функция <tex>\varphi(n)</tex> ====<br />
<br />
Для простого числа <math>p</math> легко посчитать <tex>\displaystyle\varphi(p) = p - 1</tex>. На некоторую степень <math>p</math> формулу можно обобщить:<br />
<center><tex>\displaystyle\varphi(p^s) = p^s - p^{s - 1} </tex></center><br />
Обосновывается следующим образом: Все не взаимно-простые с <math>p^s</math> числа в диапазоне от 1 до <math>p^s</math>, очевидно, кратны <math>p</math>. Всего таких чисел <math>p^{s - 1}</math>.<br />
<br />
В силу мультипликативности функции:<br />
<center><tex> \displaystyle \varphi(n) = \prod_{i = 1}^{r}(p_i^{s_i} - p_i^{s_i - 1}) = \prod_{i = 1}^{r}p_i^{s_i}(1 - \frac{1}{p_i}) = n\prod_{i = 1}^{r}(1 - \frac{1}{p_i}) </tex></center><br />
<br />
<br />
<br />
== Малая теорема Ферма и теорема Эйлера ==<br />
<br />
{{Теорема<br />
|about= Теорема Эйлера<br />
<br />
|statement = Если <math>n</math> и <math>a</math> - взаимно-простые целые числа, то <math>a^{\varphi(n)} \equiv 1 \ (mod \ n)</math><br />
<br />
|proof =<br />
Число <math>\overline{x}</math> называется вычетом по модулю <math>n</math>, если <math>\overline{x} \equiv x \ (mod \ n)</math>. Вычет <math>\overline{x}</math> называется обратимым вычетом, если существует вычет <math>\overline{y}</math>, что <math>\overline{x}\overline{y} \equiv 1 \ (mod \ n)</math>. Заметим, что вычет <math>\overline{x}</math> обратим тогда и только тогда, когда <math>\overline{x}</math> и <math>n</math> взаимно-просты. В таком случае, у числа <math>n</math> существует всего <math>\varphi(n)</math> обратимых вычетов. Пусть <math>\mathbb{Z}_{n}^{*}</math> - множество всех обратимых вычетов по модулю <math>n</math>.<br />
<br />
Рассмотрим вычеты по модулю <math>n</math>. Так как <math>n</math> и <math>a</math> взаимно-просты, то вычет <math>\overline{a}</math> обратим. Пусть <math>\overline{b_1}, \overline{b_2}, \dots , \overline{b_{\varphi(n)}}</math> - все обратимые вычеты по модулю <math>n</math>. Тогда вычет <math>\overline{b} = \overline{b_1}\overline{b_2}\dots\overline{b_{\varphi(n)}}</math>, равный произведению всех обратимых вычетов, тоже обратим. Заметим, что отображение <math>\mathbb{Z}_{n}^{*} \to \mathbb{Z}_{n}^{*}</math>, заданное формулой <math>\overline{x} \mapsto \overline{a}\cdot\overline{x}</math> является биекцией. В таком случае в выражении <math> \overline{a}^{\varphi(n)}\overline{b} = (\overline{a} \overline{b_1}) \dots (\overline{a} \overline{b_{\varphi(n)}}) </math>, в правой части стоит произведение всех обратимых вычетов, но взятое в другом порядке. Тогда <math>\overline{a}^{\varphi(n)}\overline{b} = \overline{b}</math>. Умножая обе части на вычет, обратный к <math>\overline{b}</math>, получим, что <math>\overline{a}^{\varphi(n)} \equiv 1 \ (mod \ n) </math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
Следствием теоремы Эйлера является малая теорема Ферма. У нее также есть доказательство без использования более общей теоремы Эйлера, однако его мы приводить не будем.<br />
<br />
<br />
{{Теорема<br />
|about = Малая теорема Ферма<br />
<br />
|statement = Если целое число <math>a</math> и простое число <math>p</math> - взаимно-просты, то <math>a^{p - 1} \equiv 1 \ (mod \ p)</math><br />
<br />
|proof = Так как <math>p</math> - простое, то <math>\varphi(p) = p - 1</math>. Воспользуемся теоремой Эйлера, тогда <math>a^{\varphi(p)} = a^{p - 1} \equiv 1 \ (mod \ p)</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
== Различные свойства функции Эйлера ==<br />
<br />
{{Теорема<br />
|about = <br />
<br />
|statement = Для любого натурального числа <math>n</math> выполнено равенство <math>\displaystyle n = \sum_{d | n} \varphi(d)</math><br />
<br />
|proof = Данную теорему можно доказать "напролом", пользуясь формулой для <math>\varphi(d)</math>, а можно более элегантно:<br />
<br />
Рассмотрим <math>n</math> дробей <math>\frac{1}{n}, \frac{2}{n}, \dots , \frac{n}{n}</math>. Каждую дробь представим в виде несократимой дроби <math>\frac{p}{q}</math>.<br />
Заметим, что множество значений <math>q</math> - это множество делителей числа <math>n</math>. Так как дробь <math>\frac{p}{q}</math> несократима, то <math>p</math> и <math>q</math> взаимно-просты. Зная, что <math>p \leq q</math>, легко понять, что всего дробей со знаменателем <math>q</math> ровно <math>\varphi(q)</math>. Так как, все <math>n</math> дробей мы представили в несократимом виде, где знаменатель является делителем <math>n</math>, то <math>\displaystyle \sum_{d | n} \varphi(d) = n</math>, так как всего дробей <math>n</math>, что и требовалось доказать.<br />
<br />
}}<br />
<br />
:<br />
<br />
{{Теорема<br />
|about = Обобщённая мультипликативность<br />
<br />
|statement = Пусть <math>n</math> и <math>m</math> {{---}} любые два натуральных числа, а <math>d = (n,\ m)</math>, тогда:<br />
: <math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n)\cdot\frac{d}{\varphi(d)},</math><br />
<br />
|proof = <br />
<br />
Пусть <math>(m,\,n)=d,</math> тогда <math>m = m'd, \; n = n'd,</math> причем в общем случае <math>(m',\,d) \neq 1</math> и <math>(n',\,d) \neq 1.</math> Поэтому можно записать:<br />
:<math>d = d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}},</math><br />
:<math>m' = d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r},</math><br />
:<math>n' = d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}.</math><br />
Здесь первые <math>k</math> делителей <math>d</math> являются также делителями <math>m',</math> а последние <math>K-k</math> делителей <math>d</math> являются делителями <math>n'.</math> Распишем:<br />
:<math>\varphi(mn)= \varphi(d^2 \cdot m'n')<br />
= \varphi((d_1^{\delta_1} \cdot\ldots\cdot d_k^{\delta_k} \cdot d_{k+1}^{\delta_{k+1}} \cdot\ldots\cdot d_{K}^{\delta_{K}})^2 \cdot d_1^{\alpha_1} \cdot\ldots\cdot d_k^{\alpha_k} \cdot p_1^{\beta_1} \cdot\ldots\cdot p_r^{\beta_r} \cdot d_{k+1}^{\gamma_{k+1}} \cdot\ldots\cdot d_{K}^{\gamma_{K}} \cdot q_1^{\varepsilon_1} \cdot\ldots\cdot q_s^{\varepsilon_s}).</math><br />
В силу мультипликативности функции Эйлера, а также с учётом формулы<br />
:<math>\varphi(p^n) = p^n(1-\frac{1}{p}),</math><br />
где <math>p</math> — простое, получаем:<br />
:<math><br />
\begin{align}<br />
\varphi(mn)<br />
<br />
&= d_1^{\alpha_1+\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_k^{\alpha_k+\delta_k}\left(1-\frac{1}{d_k}\right) \cdot p_1^{\beta_1}\left(1-\frac{1}{p_1}\right) \cdot\ldots\cdot p_r^{\beta_r}\left(1-\frac{1}{p_r}\right) \cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\delta_{K}}\left(1-\frac{1}{d_{K}}\right)\times \\<br />
<br />
&\; \times \; d_{k+1}^{\gamma_{k+1}+\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right) \cdot\ldots\cdot d_{K}^{\gamma_{K}+\delta_{K}}\left(1-\frac{1}{d_{K}}\right) \cdot q_1^{\varepsilon_1}\left(1-\frac{1}{q_1}\right) \cdot\ldots\cdot q_s^{\varepsilon_s}\left(1-\frac{1}{q_s}\right) \cdot d_1^{\delta_1}\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot d_{k+1}^{\delta_{k+1}}\left(1-\frac{1}{d_{k+1}}\right)\times \\<br />
<br />
&\; \times \; \frac{1}{\left(1-\frac{1}{d_1}\right) \cdot\ldots\cdot \left(1-\frac{1}{d_K}\right)}.<br />
\end{align}<br />
</math><br />
В первой строке записано <math>\varphi(m),</math> во второй — <math>\varphi(n),</math> а третью можно представить, как <math>\frac{d}{\varphi(d)}.</math> Поэтому:<br />
:<math>\varphi(m \cdot n) = \varphi(m) \cdot \varphi(n) \cdot \frac{d}{\varphi(d)}.</math><br />
<br />
}}<br />
<br />
== Применение теоремы Эйлера в других задачах ==<br />
<br />
==== Задача об ожерельях ====<br />
<br />
{{Задача<br />
|definition=<br />
Требуется посчитать количество ожерелий из <tex>n</tex> бусинок, каждая из которых может быть покрашена в один из <tex> k </tex> цветов. При сравнении двух ожерелий их можно поворачивать, но не переворачивать (т.е. разрешается сделать циклический сдвиг).}}<br />
<br />
В ходе решения задачи мы приходим к формуле <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{i = 1}^{n} k^{\mathrm{gcd}(i,n)}</tex><br />
<br />
Мы можем улучшить эту формулу, если рассмотрим выражение <math>\mathrm{gcd}(i,n)</math>. Пусть <math>\mathrm{gcd}(i,n) = q</math>, тогда числа <math>i</math> и <math>n</math> оба делятся на <math>q</math> и больше не имеют общих делителей. Тогда <math>\mathrm{gcd}(\frac{i}{q},\frac{n}{q}) = 1</math>. Таких натуральных <math>i \in [1 ; n]</math> и имеющих <math>\mathrm{gcd}(i,n) = q</math> ровно <tex>\varphi\left(\dfrac{n}{q}\right)</tex>.<br />
<br />
Пользуясь функцией Эйлера, мы можем привести формулу к финальному виду <tex>|C| =</tex> <tex> \dfrac{1} {n}</tex><tex>\sum\limits_{q|n}\varphi\left(\dfrac{n}{q}\right)k^q</tex>.<br />
<br />
== Алгоритм ==<br />
Используя доказанные выше свойства функции, получим алгоритм нахождения <math>\varphi(n)</math> через факторизацию числа, работающий за <math>O(\sqrt{n})</math>. <br />
<br />
'''function''' phi (n):<br />
result = n <br />
i = 2<br />
<br />
'''while''' (i*i <= n):<br />
'''if''' n % i == 0:<br />
'''while''' n % i == 0:<br />
n /= i<br />
result -= result / i<br />
i++<br />
'''if''' (n > 1):<br />
result -= result/n<br />
'''return''' result<br />
<br />
== См. также ==<br />
* [[Задача об ожерельях]]<br />
<br />
== Ссылки ==<br />
* [https://ru.wikipedia.org/wiki/Функция_Эйлера Wikipedia {{---}} Функция Эйлера]<br />
* [https://e-maxx.ru/algo/euler_function Алгоритм нахождения функции Эйлера]<br />
* [https://wikichi.ru/wiki/Divisor_function Функция <math>\sigma</math>]</div>MetaMockery