HTML Diff
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>