0 added
0 removed
Original
2026-01-01
Modified
2026-02-21
1
<p><a>#статьи</a></p>
1
<p><a>#статьи</a></p>
2
<ul><li>19 май 2023</li>
2
<ul><li>19 май 2023</li>
3
<li>0</li>
3
<li>0</li>
4
</ul><h2>Что такое факториал и как его вычислить</h2>
4
</ul><h2>Что такое факториал и как его вычислить</h2>
5
<p>Статья, после которой вы начнёте щёлкать факториалы как орешки.</p>
5
<p>Статья, после которой вы начнёте щёлкать факториалы как орешки.</p>
6
<p>Иллюстрация: Катя Павловская для Skillbox Media</p>
6
<p>Иллюстрация: Катя Павловская для Skillbox Media</p>
7
<p>Любитель научной фантастики и технологического прогресса. Хорошо сочетает в себе заумного технаря и утончённого гуманитария. Пишет про IT и радуется этому.</p>
7
<p>Любитель научной фантастики и технологического прогресса. Хорошо сочетает в себе заумного технаря и утончённого гуманитария. Пишет про IT и радуется этому.</p>
8
<p>Даже если вы уже давно окончили школу, факториалы всё равно могут доставить немало приятных флешбэков - например, если вы обучаетесь программированию и <a>знакомитесь с задачками на рекурсию</a>или комбинаторику. Поэтому мы решили максимально просто объяснить, что такое факториал, как его вычислять и зачем он вообще нужен.</p>
8
<p>Даже если вы уже давно окончили школу, факториалы всё равно могут доставить немало приятных флешбэков - например, если вы обучаетесь программированию и <a>знакомитесь с задачками на рекурсию</a>или комбинаторику. Поэтому мы решили максимально просто объяснить, что такое факториал, как его вычислять и зачем он вообще нужен.</p>
9
<p>Эта статья будет полезна как опытным программистам, которые хотят освежить знания, так и тем, кто ещё учится: школьникам, студентам и совсем зелёным джунам.</p>
9
<p>Эта статья будет полезна как опытным программистам, которые хотят освежить знания, так и тем, кто ещё учится: школьникам, студентам и совсем зелёным джунам.</p>
10
<p>Содержание:</p>
10
<p>Содержание:</p>
11
<ul><li><a>Что такое факториал</a></li>
11
<ul><li><a>Что такое факториал</a></li>
12
<li><a>Для чего он нужен</a></li>
12
<li><a>Для чего он нужен</a></li>
13
<li><a>Основные свойства и формулы</a></li>
13
<li><a>Основные свойства и формулы</a></li>
14
<li><a>Шпаргалка: таблица факториалов</a></li>
14
<li><a>Шпаргалка: таблица факториалов</a></li>
15
<li><a>Решаем задачи на факториалы</a></li>
15
<li><a>Решаем задачи на факториалы</a></li>
16
<li><a>Что запомнить</a></li>
16
<li><a>Что запомнить</a></li>
17
</ul><p><strong>Факториал числа n</strong> - это произведение всех натуральных чисел от единицы до n. Обозначается факториал символом восклицательного знака: !.</p>
17
</ul><p><strong>Факториал числа n</strong> - это произведение всех натуральных чисел от единицы до n. Обозначается факториал символом восклицательного знака: !.</p>
18
<p>Это определение из учебника, и оно пока звучит сложновато - неясно, зачем эти факториалы вообще нужны и как они могут пригодиться в науке и технике. Но об этом чуть позже - для начала давайте посмотрим на примеры факториалов:</p>
18
<p>Это определение из учебника, и оно пока звучит сложновато - неясно, зачем эти факториалы вообще нужны и как они могут пригодиться в науке и технике. Но об этом чуть позже - для начала давайте посмотрим на примеры факториалов:</p>
19
<em>Изображение: Skillbox Media</em><p>Чтобы вычислить их, нам нужно перемножить все числа от единицы до числа, стоящего под знаком факториала - так гласит определение. Получаем выражения:</p>
19
<em>Изображение: Skillbox Media</em><p>Чтобы вычислить их, нам нужно перемножить все числа от единицы до числа, стоящего под знаком факториала - так гласит определение. Получаем выражения:</p>
20
<em>Изображение: Skillbox Media</em><p>Ещё в математическом определении сказано, что факториал не может быть отрицательным или дробным - то есть вот такие факториалы вычислить нельзя:</p>
20
<em>Изображение: Skillbox Media</em><p>Ещё в математическом определении сказано, что факториал не может быть отрицательным или дробным - то есть вот такие факториалы вычислить нельзя:</p>
21
<em>Изображение: Skillbox Media</em><p>Факториалы незаменимы там, где нужно быстро посчитать количество комбинаций и сочетаний разных предметов. В математике этому посвящён даже целый раздел - комбинаторика. Её методы используют много где: от лингвистики до криптографии и анализа ДНК. И во всех этих сферах факториал помогает упрощать сложные вычисления.</p>
21
<em>Изображение: Skillbox Media</em><p>Факториалы незаменимы там, где нужно быстро посчитать количество комбинаций и сочетаний разных предметов. В математике этому посвящён даже целый раздел - комбинаторика. Её методы используют много где: от лингвистики до криптографии и анализа ДНК. И во всех этих сферах факториал помогает упрощать сложные вычисления.</p>
22
<p>Разберём на примере, как это работает.</p>
22
<p>Разберём на примере, как это работает.</p>
23
<p>Допустим, у вас есть пять шоколадок и вы решили раздать их пяти друзьям - каждому по одной. Задача - выяснить, сколько существует способов раздать эти шоколадки. Начинаем размышлять:</p>
23
<p>Допустим, у вас есть пять шоколадок и вы решили раздать их пяти друзьям - каждому по одной. Задача - выяснить, сколько существует способов раздать эти шоколадки. Начинаем размышлять:</p>
24
<ul><li>первую шоколадку можно отдать одному из пяти друзей;</li>
24
<ul><li>первую шоколадку можно отдать одному из пяти друзей;</li>
25
<li>вторую - одному из четырёх друзей, потому что один уже получил свою шоколадку;</li>
25
<li>вторую - одному из четырёх друзей, потому что один уже получил свою шоколадку;</li>
26
<li>третью - одному из трёх, потому что двое уже наслаждаются своими шоколадками;</li>
26
<li>третью - одному из трёх, потому что двое уже наслаждаются своими шоколадками;</li>
27
<li>четвёртую - одному из двух;</li>
27
<li>четвёртую - одному из двух;</li>
28
<li>пятую - последнему другу.</li>
28
<li>пятую - последнему другу.</li>
29
</ul><p>Получается, что способов раздать первую шоколадку - 5, вторую - 4, третью - 3, четвёртую - 2, а пятую - всего 1. По правилам математики, чтобы выяснить общее количество всех вариантов, нужно перемножить их между собой. Ну а кто мы такие, чтобы с этими правилами спорить?</p>
29
</ul><p>Получается, что способов раздать первую шоколадку - 5, вторую - 4, третью - 3, четвёртую - 2, а пятую - всего 1. По правилам математики, чтобы выяснить общее количество всех вариантов, нужно перемножить их между собой. Ну а кто мы такие, чтобы с этими правилами спорить?</p>
30
<em>Изображение: Skillbox Media</em><p>Смотрим на выражение выше и понимаем: ведь оно идеально вписывается в определение факториала - произведение натуральных чисел от одного до n (в нашем случае n равно 5). Следовательно, это выражение можно коротко и изящно записать в виде факториала:</p>
30
<em>Изображение: Skillbox Media</em><p>Смотрим на выражение выше и понимаем: ведь оно идеально вписывается в определение факториала - произведение натуральных чисел от одного до n (в нашем случае n равно 5). Следовательно, это выражение можно коротко и изящно записать в виде факториала:</p>
31
<em>Изображение: Skillbox Media</em><p>Выходит, что всего способов раздать пять шоколадок пяти друзьям существует 120. Вот как может выглядеть один из них:</p>
31
<em>Изображение: Skillbox Media</em><p>Выходит, что всего способов раздать пять шоколадок пяти друзьям существует 120. Вот как может выглядеть один из них:</p>
32
<em>Иллюстрация: Катя Павловская для Skillbox Media</em><p>Конечно, в жизни вам вряд ли придётся считать количество способов раздать друзьям шоколадки. Но, например, в статистике, теории вероятностей, матанализе и программировании факториалы используют сплошь и рядом. Так что, если видите себя в будущем на матмехе или, на худой конец, в IT, то лучше познакомиться с ними хотя бы бегло.</p>
32
<em>Иллюстрация: Катя Павловская для Skillbox Media</em><p>Конечно, в жизни вам вряд ли придётся считать количество способов раздать друзьям шоколадки. Но, например, в статистике, теории вероятностей, матанализе и программировании факториалы используют сплошь и рядом. Так что, если видите себя в будущем на матмехе или, на худой конец, в IT, то лучше познакомиться с ними хотя бы бегло.</p>
33
<p>Так как факториалы используются в разных областях математики, свойств у них довольно много - каждая область привносит какие-то свои методы вычислений. Одно из свойств вы уже знаете:<strong>факториал - это всегда целое положительное число</strong>. Вот ещё несколько, которые стоит запомнить:</p>
33
<p>Так как факториалы используются в разных областях математики, свойств у них довольно много - каждая область привносит какие-то свои методы вычислений. Одно из свойств вы уже знаете:<strong>факториал - это всегда целое положительное число</strong>. Вот ещё несколько, которые стоит запомнить:</p>
34
<ul><li>Факториал нуля равен единице - 0! = 1.</li>
34
<ul><li>Факториал нуля равен единице - 0! = 1.</li>
35
<li>Факториал единицы тоже равен единице: 1! = 1.</li>
35
<li>Факториал единицы тоже равен единице: 1! = 1.</li>
36
<li>Рекурсия: n! = (n - 1)! × n. Это основное свойство факториалов, о нём мы чуть подробнее поговорим дальше.</li>
36
<li>Рекурсия: n! = (n - 1)! × n. Это основное свойство факториалов, о нём мы чуть подробнее поговорим дальше.</li>
37
</ul><p>Мы видим, что каждое свойство описывается какой-то формулой - и некоторые из этих формул могут быть весьма полезны. Они позволяют нам находить факториалы проще и быстрее, чем простым перемножением натуральных чисел. Разберём эти формулы тоже.</p>
37
</ul><p>Мы видим, что каждое свойство описывается какой-то формулой - и некоторые из этих формул могут быть весьма полезны. Они позволяют нам находить факториалы проще и быстрее, чем простым перемножением натуральных чисел. Разберём эти формулы тоже.</p>
38
<p>Чтобы вычислить факториал, не используя так много операций умножения, придумали формулу Стирлинга. Вот как она выглядит:</p>
38
<p>Чтобы вычислить факториал, не используя так много операций умножения, придумали формулу Стирлинга. Вот как она выглядит:</p>
39
<em>Изображение: Skillbox Media</em><p>Выглядит страшно, но на самом деле она очень полезная. Её используют, когда хотят приблизительно узнать факториал большого числа. Обычным способом это будет сделать сложно даже мощному компьютеру - например, попробуйте посчитать в онлайн-калькуляторе факториал числа 10 024 (спойлер: это может занять несколько часов и даже дней).</p>
39
<em>Изображение: Skillbox Media</em><p>Выглядит страшно, но на самом деле она очень полезная. Её используют, когда хотят приблизительно узнать факториал большого числа. Обычным способом это будет сделать сложно даже мощному компьютеру - например, попробуйте посчитать в онлайн-калькуляторе факториал числа 10 024 (спойлер: это может занять несколько часов и даже дней).</p>
40
Онлайн-калькулятор не справился с вычислением такого большого числа, как факториал 10 024<em>Скришнот:<a>"Контрольная работа РУ - калькуляторы онлайн"</a> / Skillbox Media</em><p>Давайте попробуем вычислить факториал числа 6 по этой формуле:</p>
40
Онлайн-калькулятор не справился с вычислением такого большого числа, как факториал 10 024<em>Скришнот:<a>"Контрольная работа РУ - калькуляторы онлайн"</a> / Skillbox Media</em><p>Давайте попробуем вычислить факториал числа 6 по этой формуле:</p>
41
<em>Изображение: Skillbox Media</em><p>Число<strong>e</strong>примерно равно 2,71, а <strong>π</strong> - 3,14. Подставляем их в выражение и получаем ответ:</p>
41
<em>Изображение: Skillbox Media</em><p>Число<strong>e</strong>примерно равно 2,71, а <strong>π</strong> - 3,14. Подставляем их в выражение и получаем ответ:</p>
42
<em>Изображение: Skillbox Media</em><p>Получили приближённое значение настоящего факториала, который равен 720. Но можно сделать ответ и более точным. Для этого нужно добавить больше знаков после запятой всем переменным - например, если взять 20 знаков, то ответ будет таким:</p>
42
<em>Изображение: Skillbox Media</em><p>Получили приближённое значение настоящего факториала, который равен 720. Но можно сделать ответ и более точным. Для этого нужно добавить больше знаков после запятой всем переменным - например, если взять 20 знаков, то ответ будет таким:</p>
43
<em>Изображение: Skillbox Media</em><p>Это уже больше похоже на правду. Хотя погрешность всё равно есть.</p>
43
<em>Изображение: Skillbox Media</em><p>Это уже больше похоже на правду. Хотя погрешность всё равно есть.</p>
44
<p>Рекуррентная формула позволяет вычислить факториал числа n, основываясь на факториале предыдущего числа - (n - 1). Выглядит она так:</p>
44
<p>Рекуррентная формула позволяет вычислить факториал числа n, основываясь на факториале предыдущего числа - (n - 1). Выглядит она так:</p>
45
<em>Изображение: Skillbox Media</em><p>В целом рекуррентная формула не приносит нам большой пользы, так как всё равно приходится вычислять факториал предыдущего числа. Если он равен какому-то большому числу (например, 100), то использование формулы теряет смысл - слишком уж много вычислений это потребует.</p>
45
<em>Изображение: Skillbox Media</em><p>В целом рекуррентная формула не приносит нам большой пользы, так как всё равно приходится вычислять факториал предыдущего числа. Если он равен какому-то большому числу (например, 100), то использование формулы теряет смысл - слишком уж много вычислений это потребует.</p>
46
<p>Рекуррентная формула основана на главном свойстве факториалов - рекурсии: n! = (n - 1)! × n. Это свойство особенно полезно при решении задач по комбинаторике: так мы можем быстро сокращать факториалы и упрощать выражения.</p>
46
<p>Рекуррентная формула основана на главном свойстве факториалов - рекурсии: n! = (n - 1)! × n. Это свойство особенно полезно при решении задач по комбинаторике: так мы можем быстро сокращать факториалы и упрощать выражения.</p>
47
<p>Однако рекуррентная формула хорошо подходит для алгоритмов - в частности, для программирования. Мы можем задать начальное значение: например, что 0! = 1 или 1! = 1, а затем считать следующие факториалы по формуле:</p>
47
<p>Однако рекуррентная формула хорошо подходит для алгоритмов - в частности, для программирования. Мы можем задать начальное значение: например, что 0! = 1 или 1! = 1, а затем считать следующие факториалы по формуле:</p>
48
<em>Изображение: Skillbox Media</em><p>Получим алгоритм для вычисления факториалов. Не очень эффективный, но простой.</p>
48
<em>Изображение: Skillbox Media</em><p>Получим алгоритм для вычисления факториалов. Не очень эффективный, но простой.</p>
49
<p>Давайте вычислим по этой формуле факториал числа 4. Сначала распишем рекуррентную формулу до базового значения - факториала числа 1:</p>
49
<p>Давайте вычислим по этой формуле факториал числа 4. Сначала распишем рекуррентную формулу до базового значения - факториала числа 1:</p>
50
<em>Изображение: Skillbox Media</em><p>Можно записать это и в сокращённом виде:</p>
50
<em>Изображение: Skillbox Media</em><p>Можно записать это и в сокращённом виде:</p>
51
<em>Изображение: Skillbox Media</em><p>Теперь последовательно подставляем значение факториала, которое мы уже знаем, и вычисляем результат:</p>
51
<em>Изображение: Skillbox Media</em><p>Теперь последовательно подставляем значение факториала, которое мы уже знаем, и вычисляем результат:</p>
52
<em>Изображение: Skillbox Media</em><p>Получили ответ - 24. Ничего сложного, просто перемножаем числа.</p>
52
<em>Изображение: Skillbox Media</em><p>Получили ответ - 24. Ничего сложного, просто перемножаем числа.</p>
53
<p>Кстати, всю эту формулу можно обернуть в реально работающую функцию на языке Python:</p>
53
<p>Кстати, всю эту формулу можно обернуть в реально работающую функцию на языке Python:</p>
54
def factorial(n): # Определяем функцию if n == 0 or n == 1: # Базовый случай return 1 else: # Рекуррентный случай return factorial(n-1) * n # Вызываем эту же функцию, но с меньшим аргументом print(factorial(4)) # Печатаем факториал 4 # Вывод: # 24<p>Можете попробовать запустить её в <a>онлайн-интерпретаторе</a>и посмотреть, как работает. Тут есть один нюанс: Python не даст вам посчитать факториал числа больше 998, так как у него есть ограничение на количество вызовов функции - в программировании это называется глубиной рекурсии.</p>
54
def factorial(n): # Определяем функцию if n == 0 or n == 1: # Базовый случай return 1 else: # Рекуррентный случай return factorial(n-1) * n # Вызываем эту же функцию, но с меньшим аргументом print(factorial(4)) # Печатаем факториал 4 # Вывод: # 24<p>Можете попробовать запустить её в <a>онлайн-интерпретаторе</a>и посмотреть, как работает. Тут есть один нюанс: Python не даст вам посчитать факториал числа больше 998, так как у него есть ограничение на количество вызовов функции - в программировании это называется глубиной рекурсии.</p>
55
<p>Чтобы быстро находить, чему равен факториал, можно запомнить или сохранить в заметки вот такую табличку. Она рассчитана всего на 12 чисел, но для большинства учебных задач этого хватит.</p>
55
<p>Чтобы быстро находить, чему равен факториал, можно запомнить или сохранить в заметки вот такую табличку. Она рассчитана всего на 12 чисел, но для большинства учебных задач этого хватит.</p>
56
1!12!23!64!245!1206!7207!50408!40 3209!362 88010!3 628 80011!39 916 80012!479 001 600<p>С теорией вроде разобрались - теперь попробуем решить несколько задач с факториалами, чтобы закрепить знания на практике.</p>
56
1!12!23!64!245!1206!7207!50408!40 3209!362 88010!3 628 80011!39 916 80012!479 001 600<p>С теорией вроде разобрались - теперь попробуем решить несколько задач с факториалами, чтобы закрепить знания на практике.</p>
57
<p><strong>Задача:</strong>перемножить два факториала.</p>
57
<p><strong>Задача:</strong>перемножить два факториала.</p>
58
<em>Изображение: Skillbox Media</em><p><strong>Решение:</strong></p>
58
<em>Изображение: Skillbox Media</em><p><strong>Решение:</strong></p>
59
<p>Сперва нужно вычислить значения факториалов, а затем перемножить полученные значения:</p>
59
<p>Сперва нужно вычислить значения факториалов, а затем перемножить полученные значения:</p>
60
<em>Изображение: Skillbox Media</em><p>Обратите внимание: во второй строке мы применили рекуррентную формулу, чтобы быстрее вычислить факториал числа 7.</p>
60
<em>Изображение: Skillbox Media</em><p>Обратите внимание: во второй строке мы применили рекуррентную формулу, чтобы быстрее вычислить факториал числа 7.</p>
61
<p><strong>Задача:</strong>вычесть из одного факториала другой.</p>
61
<p><strong>Задача:</strong>вычесть из одного факториала другой.</p>
62
<em>Изображение: Skillbox Media</em><p><strong>Решение:</strong></p>
62
<em>Изображение: Skillbox Media</em><p><strong>Решение:</strong></p>
63
<p>Используем тот же подход, что и в предыдущей задаче: сначала вычисляем факториалы, а затем получаем ответ на всё выражение.</p>
63
<p>Используем тот же подход, что и в предыдущей задаче: сначала вычисляем факториалы, а затем получаем ответ на всё выражение.</p>
64
<em>Изображение: Skillbox Media</em><p>Вроде бы ничего сложного, главное - не запутаться в умножении.</p>
64
<em>Изображение: Skillbox Media</em><p>Вроде бы ничего сложного, главное - не запутаться в умножении.</p>
65
<p><strong>Задача:</strong>умножить один факториал на другой:</p>
65
<p><strong>Задача:</strong>умножить один факториал на другой:</p>
66
<em>Изображение: Skillbox Media</em><p><strong>Решение:</strong></p>
66
<em>Изображение: Skillbox Media</em><p><strong>Решение:</strong></p>
67
<p>Вычисляем факториалы, потом перемножаем их значения:</p>
67
<p>Вычисляем факториалы, потом перемножаем их значения:</p>
68
<em>Изображение: Skillbox Media</em><p>Во второй строке мы воспользовались<a>таблицей выше</a>и быстро нашли значение факториала от числа 8.</p>
68
<em>Изображение: Skillbox Media</em><p>Во второй строке мы воспользовались<a>таблицей выше</a>и быстро нашли значение факториала от числа 8.</p>
69
<p><strong>Задача:</strong>сократить дробь и вычислить её значение.</p>
69
<p><strong>Задача:</strong>сократить дробь и вычислить её значение.</p>
70
<em>Изображение: Skillbox Media</em><p><strong>Решение:</strong></p>
70
<em>Изображение: Skillbox Media</em><p><strong>Решение:</strong></p>
71
<p>Здесь мы воспользуемся рекуррентной формулой для вычисления факториала и разложим верхний факториал на множители:</p>
71
<p>Здесь мы воспользуемся рекуррентной формулой для вычисления факториала и разложим верхний факториал на множители:</p>
72
<em>Изображение: Skillbox Media</em><p>В первой строке мы применили рекуррентную формулу два раза, а во второй - просто сократили одинаковые факториалы в числителе и в знаменателе.</p>
72
<em>Изображение: Skillbox Media</em><p>В первой строке мы применили рекуррентную формулу два раза, а во второй - просто сократили одинаковые факториалы в числителе и в знаменателе.</p>
73
<p><strong>Задача:</strong>сократить дробь.</p>
73
<p><strong>Задача:</strong>сократить дробь.</p>
74
<em>Изображение: Skillbox Media</em><p><strong>Решение:</strong></p>
74
<em>Изображение: Skillbox Media</em><p><strong>Решение:</strong></p>
75
<p>Хотя здесь нет конкретных чисел, но принцип решения остаётся таким же: используем рекуррентную формулу и сокращаем одинаковые значения в числителе и знаменателе.</p>
75
<p>Хотя здесь нет конкретных чисел, но принцип решения остаётся таким же: используем рекуррентную формулу и сокращаем одинаковые значения в числителе и знаменателе.</p>
76
<em>Изображение: Skillbox Media</em><p>Главное - не запутаться и правильно применить рекуррентную формулу.</p>
76
<em>Изображение: Skillbox Media</em><p>Главное - не запутаться и правильно применить рекуррентную формулу.</p>
77
<ul><li><strong>Факториал</strong> - это произведение всех натуральных чисел от 1 до данного числа. Например, факториал числа 5 будет равен 1 × 2 × 3 × 4 × 5 = 120.</li>
77
<ul><li><strong>Факториал</strong> - это произведение всех натуральных чисел от 1 до данного числа. Например, факториал числа 5 будет равен 1 × 2 × 3 × 4 × 5 = 120.</li>
78
<li>Его используют во многих областях науки - например, комбинаторике, теории вероятностей и математическом анализе.</li>
78
<li>Его используют во многих областях науки - например, комбинаторике, теории вероятностей и математическом анализе.</li>
79
<li>Помимо стандартной формулы для вычисления факториала можно использовать формулы Стирлинга и рекуррентную формулу.</li>
79
<li>Помимо стандартной формулы для вычисления факториала можно использовать формулы Стирлинга и рекуррентную формулу.</li>
80
<li>Формула Стирлинга нужна для того, чтобы посчитать факториал без большого числа операций умножения.</li>
80
<li>Формула Стирлинга нужна для того, чтобы посчитать факториал без большого числа операций умножения.</li>
81
<li>Рекуррентная формула позволяет вычислить факториал на основе предыдущего факториала.</li>
81
<li>Рекуррентная формула позволяет вычислить факториал на основе предыдущего факториала.</li>
82
</ul><a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>
82
</ul><a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>