0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>В этом курсе мы изучим функции, которые представляют важную объединяющую концепцию в математике. В компьютерной науке функции - это компоненты программ, которые формализуют отношения между входом и выходом для вычислений. Проблема проектирования комбинаторной схемы часто начинается с определения функции, которая описывает поведение схемы для каждого возможного входа.</p>
1
<p>В этом курсе мы изучим функции, которые представляют важную объединяющую концепцию в математике. В компьютерной науке функции - это компоненты программ, которые формализуют отношения между входом и выходом для вычислений. Проблема проектирования комбинаторной схемы часто начинается с определения функции, которая описывает поведение схемы для каждого возможного входа.</p>
2
<p>Когда мы используем функции, чтобы описать поведение схемы, мы можем использовать различные методы для построения комбинаторной схемы с таким же поведением. Поскольку функции - это особые виды множеств или отношений, мы будем изучать их здесь и использовать идеи, которые представлены в других курсах по дискретной математике.</p>
2
<p>Когда мы используем функции, чтобы описать поведение схемы, мы можем использовать различные методы для построения комбинаторной схемы с таким же поведением. Поскольку функции - это особые виды множеств или отношений, мы будем изучать их здесь и использовать идеи, которые представлены в других курсах по дискретной математике.</p>
3
<p>В этом уроке мы расскажем, что такое функции и в чем заключаются их фундаментальные свойства. Также рассмотрим операции над функциями и вытекающие из них свойства. Еще приведем примеры функций с каждым свойством, чтобы помочь понять и различить их.</p>
3
<p>В этом уроке мы расскажем, что такое функции и в чем заключаются их фундаментальные свойства. Также рассмотрим операции над функциями и вытекающие из них свойства. Еще приведем примеры функций с каждым свойством, чтобы помочь понять и различить их.</p>
4
<h2>Что такое функция</h2>
4
<h2>Что такое функция</h2>
5
<p><strong>Функция</strong>- это черный ящик, в который помещают объекты, а выходят другие. Функция определяется двумя фундаментальными свойствами:</p>
5
<p><strong>Функция</strong>- это черный ящик, в который помещают объекты, а выходят другие. Функция определяется двумя фундаментальными свойствами:</p>
6
<ul><li>Если объект введен, то что-то должно выйти</li>
6
<ul><li>Если объект введен, то что-то должно выйти</li>
7
<li>Для каждого объекта на входе существует только один возможный выход</li>
7
<li>Для каждого объекта на входе существует только один возможный выход</li>
8
</ul><p>Функции важны в математике, потому что они описывают окружающий мир как систему. Все вокруг нас можно воспринимать как систему - то есть некую структуру, которая состоит из входов, обработки и выходов.</p>
8
</ul><p>Функции важны в математике, потому что они описывают окружающий мир как систему. Все вокруг нас можно воспринимать как систему - то есть некую структуру, которая состоит из входов, обработки и выходов.</p>
9
<p>Разберем подробнее, что это значит. Возьмем для примера нервную систему человека:</p>
9
<p>Разберем подробнее, что это значит. Возьмем для примера нервную систему человека:</p>
10
<ul><li>Вход: Мы дотронулись до чайника, кожа ощутила жар от него и отправила сигнал в мозг</li>
10
<ul><li>Вход: Мы дотронулись до чайника, кожа ощутила жар от него и отправила сигнал в мозг</li>
11
<li>Обработка: Мозг принял сигнал, обработал его и отправил мыщцам команду "Отдернуть руку"</li>
11
<li>Обработка: Мозг принял сигнал, обработал его и отправил мыщцам команду "Отдернуть руку"</li>
12
<li>Выход: Мыщцы приняли сигнал, мы убрали руку от горячего чайника</li>
12
<li>Выход: Мыщцы приняли сигнал, мы убрали руку от горячего чайника</li>
13
</ul><p>Как видите, здесь есть вход, обработка и выход - так работают системы. То, что происходит на этапе обработки, можно назвать<strong>функцией</strong>. Например, прием сигналов и их обработка - это и есть функция нашего мозга.</p>
13
</ul><p>Как видите, здесь есть вход, обработка и выход - так работают системы. То, что происходит на этапе обработки, можно назвать<strong>функцией</strong>. Например, прием сигналов и их обработка - это и есть функция нашего мозга.</p>
14
<p>Таких систем внутри человека много, поэтому тело - это система систем. Таким же образом устроено все вокруг нас: животные и растения, природные явления, человеческое общество, компании, науки, идеи и концепции. Разделяя окружающий мир на системы, мы пытаемся лучше понять его, выяснить его характеристики, выстроить свою линию поведения.</p>
14
<p>Таких систем внутри человека много, поэтому тело - это система систем. Таким же образом устроено все вокруг нас: животные и растения, природные явления, человеческое общество, компании, науки, идеи и концепции. Разделяя окружающий мир на системы, мы пытаемся лучше понять его, выяснить его характеристики, выстроить свою линию поведения.</p>
15
<p>Разберем работу функций и ее свойства на примерах.</p>
15
<p>Разберем работу функций и ее свойства на примерах.</p>
16
<h2>Как представлять задачи как функции</h2>
16
<h2>Как представлять задачи как функции</h2>
17
<p>Для начала рассмотрим простой пример. Представьте классную комнату, в которой каждый ученик сидит на стуле. Мы можем узнать, на каком стуле сидит каждый ученик в классе. Для этого можно создать функцию и дать ей какое-то подходящее по смыслу название - например, SeatOf.</p>
17
<p>Для начала рассмотрим простой пример. Представьте классную комнату, в которой каждый ученик сидит на стуле. Мы можем узнать, на каком стуле сидит каждый ученик в классе. Для этого можно создать функцию и дать ей какое-то подходящее по смыслу название - например, SeatOf.</p>
18
<p>Кроме таких простых задач, можно решать более неочевидные. Функцию можно задавать даже там, где у нас недостаточно информации.</p>
18
<p>Кроме таких простых задач, можно решать более неочевидные. Функцию можно задавать даже там, где у нас недостаточно информации.</p>
19
<p>Например, можно создать функцию BirthDate - она принимает на вход любого человека из издания Британской энциклопедии и выводит его дату рождения. Точная дата известна не всегда, но она точно есть - поэтому такая функция может существовать.</p>
19
<p>Например, можно создать функцию BirthDate - она принимает на вход любого человека из издания Британской энциклопедии и выводит его дату рождения. Точная дата известна не всегда, но она точно есть - поэтому такая функция может существовать.</p>
20
<p>Разберем еще один пример. Cоздадим функцию ParentsOf, которая принимает на вход имя человека и выводит упорядоченную пару родителей ParentsOf(Mom, Dad).</p>
20
<p>Разберем еще один пример. Cоздадим функцию ParentsOf, которая принимает на вход имя человека и выводит упорядоченную пару родителей ParentsOf(Mom, Dad).</p>
21
<p>Обратите внимание, что в обратную сторону это не сработает. Не получится создать функцию ChildOf, которая выбирает ребенка человека. Дело в том, что у некоторых людей нет детей - значит, в некоторых случаях ни один объект не может быть выведен.</p>
21
<p>Обратите внимание, что в обратную сторону это не сработает. Не получится создать функцию ChildOf, которая выбирает ребенка человека. Дело в том, что у некоторых людей нет детей - значит, в некоторых случаях ни один объект не может быть выведен.</p>
22
<p>Некоторые люди также имеют более одного ребенка, из которых можно выбирать. В этом случае функция не будет знать, какого ребенка выводить. Однако можно создать функцию ChildrenOf, которая присваивает каждому человеку множество его детей. Если у человека нет детей, то результатом функции ChildrenOf будет пустое множество (0).</p>
22
<p>Некоторые люди также имеют более одного ребенка, из которых можно выбирать. В этом случае функция не будет знать, какого ребенка выводить. Однако можно создать функцию ChildrenOf, которая присваивает каждому человеку множество его детей. Если у человека нет детей, то результатом функции ChildrenOf будет пустое множество (0).</p>
23
<p>Как видите, любую задачу можно представить в виде функции. Если у нас есть задача, к ней всегда можно придумать обозначения и представить всю задачу в виде функции.</p>
23
<p>Как видите, любую задачу можно представить в виде функции. Если у нас есть задача, к ней всегда можно придумать обозначения и представить всю задачу в виде функции.</p>
24
<p>А теперь посмотрим на примеры из математики.</p>
24
<p>А теперь посмотрим на примеры из математики.</p>
25
<p><strong>Пример 1:</strong></p>
25
<p><strong>Пример 1:</strong></p>
26
<p>Можно создать Zero_R - это функция, которая принимает на вход любое вещественное число r и всегда выдает 0</p>
26
<p>Можно создать Zero_R - это функция, которая принимает на вход любое вещественное число r и всегда выдает 0</p>
27
<p>Это<strong>простая функция</strong>, потому что у нее мало переменных.</p>
27
<p>Это<strong>простая функция</strong>, потому что у нее мало переменных.</p>
28
<p><strong>Пример 2:</strong></p>
28
<p><strong>Пример 2:</strong></p>
29
<p>Пусть X - любое множество. От этого X можно создать Id_x - функцию, которая принимает на вход любой x из X и выдает на выходе тот же x.</p>
29
<p>Пусть X - любое множество. От этого X можно создать Id_x - функцию, которая принимает на вход любой x из X и выдает на выходе тот же x.</p>
30
<p>В таком случае она будет называться<strong>функцией тождества на X</strong>.</p>
30
<p>В таком случае она будет называться<strong>функцией тождества на X</strong>.</p>
31
<p><strong>Пример 3:</strong></p>
31
<p><strong>Пример 3:</strong></p>
32
<p>Можно создать функцию Floor, которая принимает на вход любое вещественное число и выдает целое число - другими словами, происходит усечение дробной части введенного числа:</p>
32
<p>Можно создать функцию Floor, которая принимает на вход любое вещественное число и выдает целое число - другими словами, происходит усечение дробной части введенного числа:</p>
33
<p>Floor(3.14159) = [3.14159] = 3</p>
33
<p>Floor(3.14159) = [3.14159] = 3</p>
34
<p><strong>Пример 4:</strong></p>
34
<p><strong>Пример 4:</strong></p>
35
<p>Похожим образом cработает функция Ceiling, которая принимает на вход любое вещественное число и выводит наименьшее целое число, большее или равное введенному числу:</p>
35
<p>Похожим образом cработает функция Ceiling, которая принимает на вход любое вещественное число и выводит наименьшее целое число, большее или равное введенному числу:</p>
36
<p>Ceiling(3.14159) = [3.141591] = 4</p>
36
<p>Ceiling(3.14159) = [3.141591] = 4</p>
37
<p>Эту функцию также называют<strong>функцией наибольшего целого числа</strong>.</p>
37
<p>Эту функцию также называют<strong>функцией наибольшего целого числа</strong>.</p>
38
<h2>Какими терминами описывать функции</h2>
38
<h2>Какими терминами описывать функции</h2>
39
<p>Мы познакомились с простыми задачами, которые можно представить в виде функций, но бывают и более сложные случаи. Тогда нам требуются дополнительные термины, которые помогут лучше описать функцию. Познакомимся с базовой лексикой на примере функции SeatOf из начала урока:</p>
39
<p>Мы познакомились с простыми задачами, которые можно представить в виде функций, но бывают и более сложные случаи. Тогда нам требуются дополнительные термины, которые помогут лучше описать функцию. Познакомимся с базовой лексикой на примере функции SeatOf из начала урока:</p>
40
<p><strong>Область функции</strong>- это множество всех вещей, которые можно подать на вход, чтобы получить некоторый результат. Область обычно очевидна из определения функции. Например, область функции SeatOf - это множество всех студентов в классе.</p>
40
<p><strong>Область функции</strong>- это множество всех вещей, которые можно подать на вход, чтобы получить некоторый результат. Область обычно очевидна из определения функции. Например, область функции SeatOf - это множество всех студентов в классе.</p>
41
<p><strong>Область действия функции</strong>- это множество всех вещей, которые можно получить на выходе. Область действия SeatOf - это множество всех занятых стульев в классе. Если известна область действия функции, можно определить ее диапазон, применяя функцию к каждому элементу области.</p>
41
<p><strong>Область действия функции</strong>- это множество всех вещей, которые можно получить на выходе. Область действия SeatOf - это множество всех занятых стульев в классе. Если известна область действия функции, можно определить ее диапазон, применяя функцию к каждому элементу области.</p>
42
<p><strong>Кодомен функции</strong>- это множество всех значений, которые могут быть потенциальными выходами. Например, кодомен функции SeatOf - это множество всех стульев в классе. Но также можно сказать, что кодомен - это множество всех занятых стульев.</p>
42
<p><strong>Кодомен функции</strong>- это множество всех значений, которые могут быть потенциальными выходами. Например, кодомен функции SeatOf - это множество всех стульев в классе. Но также можно сказать, что кодомен - это множество всех занятых стульев.</p>
43
<p>Почему здесь есть разные варианты? Дело в том, что иногда кодомен нельзя определить только из описания функции. Нужно учитывать остальные обсуждения задачи. При менее формальном подходе кодомен определяется неявно. Например, кодоменом большинства функций неявно является R, в других случаях он равен диапазону.</p>
43
<p>Почему здесь есть разные варианты? Дело в том, что иногда кодомен нельзя определить только из описания функции. Нужно учитывать остальные обсуждения задачи. При менее формальном подходе кодомен определяется неявно. Например, кодоменом большинства функций неявно является R, в других случаях он равен диапазону.</p>
44
<h2>Выводы</h2>
44
<h2>Выводы</h2>
45
<p>В этом уроке мы познакомились с понятием функции и узнали, зачем она применяется. Функцию часто определяют как черный ящик, но официально она считается правилом или видом множества. В этом курсе мы разберем оба определения. Также мы обсудим функцию как правило, ведь этот подход часто упоминается в курсах по программированию.</p>
45
<p>В этом уроке мы познакомились с понятием функции и узнали, зачем она применяется. Функцию часто определяют как черный ящик, но официально она считается правилом или видом множества. В этом курсе мы разберем оба определения. Также мы обсудим функцию как правило, ведь этот подход часто упоминается в курсах по программированию.</p>