Та-та-та… Функции — это реки, несущие перемены. В общем, настало время функций.
Функция — это очень просто. Представьте себе этакий чёрный ящик с входом и выходом. Подаёте на вход какую-то штуку — на входе появляется какая-то штука. Или другая, или не другая, но точно единственная; подаёте другую штуку — что-то опять на выходе появляется. Ещё чёрный ящик совершенно нечувствительный к обстановке — где бы и когда вы не запустили в него
a, на выходе всегда будет одинаковая
a′. Если функция называется
F, этот
результат применения её к
a обозначают
F(
a). Он один и всегда есть, никакой неоднозначности в записи.
Пример: ящик
J, вычисляющий площадь квадрата с данной на вход ему стороной: ведь площадь квадрата не зависит от того, где этот квадрат и как повёрнут, а только от его сторон, которые все одинаковые. Можно про этот ящик сказать, что
J(x) = x
2. Ящик, вычисляющий площадь прямоугольника
İ, тоже сгодится, несмотря на то что у ящика только один вход: он питается не отдельными числами, а парами (
длина,
ширина)
— для того их и придумали, чтобы склеивать много в одно. Про него мы тоже всё знаем:
İ(a, b) = ab. Надо заметить, что чёрный ящик может давать и что-то такое, что ни человек, ни компьютер не смогут вычислить ни за какое долгое время.
(Внимание! Если ваш ящик чувствителен к условиям, мы бесплатно заменим его нечувствительным. Секретным указанным выше способом мы замешаем вместе условия и входные данные.)
Ящик ящиком, а как определение это не годится (где ящики живут и из чего состоят? Как с ними управляться?). Давайте посмотрим, до чего додумались после создания теории множеств.
(Кстати, давайте посмотрим, до чего додумались после создания теории множеств насчёт пар. Тайльнемер выше предлагал рассказать об этом. Так вот, додумались, что у множество такого вида: {{a}, {a, b}} как представления пары (a, b) все нужные свойства выполняются. (Да, есть много других конструкций, у которых они тоже выполняются, но они сложнее в том или ином смысле.) «Все нужные свойства» — это эквивалентность (a, b) = (c, d) ⇔ a = c & b = d. А всякие тройки и четвёрки можно составлять из уже таких пар — например, вкладывая их всё время влево: (a, b, c) ((a, b), c); (a, b, c, d) (((a, b), c), d).)
Как вы помните, выше мы определили
отношения, которые натуральным образом представляются подмножествами произведения двух (или бывает более; в частности, таблицы реляционных БД — это приукрашенные отношения стольких множеств, сколько у них столбцов) множеств. Давайте обсудим немного какое-нибудь отношение R ⊂ A × B.
Один элемент множества A может быть в данном отношении сразу с несколькими элементами множества B — да хоть со всеми (например, 1 ⩽ любого натурального числа, ∅ — подмножество любого множества). Но может и ровно с одним, и так для всех элементов A. Отношения с таким свойством назвают функциональными, они определяют некоторую зависимость элементов B от элементов A (но не обязательно наоборот!).
Отображение или функция из A в B — это тройка (R, A, B) такая, что ∀a ∈ A : ∃!b ∈ B : aRb. Высказывание, что f = (R, A, B) — функция, в человекоудобной форме записывается f: A → B.
Множества A и B засовываются в функцию для того, чтобы можно было узнать их при надобности — по одному только R нельзя восстановить B. A восстановить можно: если (R, A, B) — функция, то A = { a | ∃b : (a, b) ∈ R }. Оно присутствует в тройке только для симметрии (это упрощает много вещей и соблюдает одну из конвенций о правах множеств). A называют
областью определения* функции f = (R, A, B) и обозначают dom f, а B —
областью значений** cod f. [dom < domain, cod < codomain (помните про права множеств).] R называют графиком f; выделять это отношение есть необходимость редко, так что я не буду его никак обозначать.
Применение функции к элементу тоже надо определить: если f = (R, A, B), запись «f(a) = b» служит сокращением для «aRb».
Ещё часто хочется скорее применить функцию сразу ко многим элементам. Для этого есть немного смущающее обозначение f(A) — так как элементы у нас тоже множества, может возникнуть ситуация, когда непонятно, что обозначается.
*** Принято при совпадении обозначений оговаривать контекст — если двусмысленности редки, как с модулем и мощностью множества, это допустимая мера; так что уж и быть, определим: f(A)
{ f(a) | a ∈ dom f }. (Для тех читателей, кто, может быть, ещё сомневается в нужности обозначений: посмотрите как лаконично! Описали бы вы это словами?) f(A или a) называется образом A или a.
Давайте спустимся пока что на землю. Пускай вы видите функцию f: {α, β, γ, δ, ε} → {гласная, согласная, несогласная} с графиком {(α, гласная), (β, согласная), (δ, согласная), (ε, гласная), (γ, согласная)}. Тогда f(γ) = согласная; f({α, δ, ε}) = {согласная, гласная}; f(∅) = ∅.
f(буква), как видно, показывает, гласная это или согласная. Несмотря на то что буква могла бы быть в данном случае и «несогласной», этого нет. Фактически буквы только гласные и согласные. im f
f(dom f) называется
образом f — это, грубо говоря, самый большой образ, который мы можем сделать этой функцией из чего бы то ни было. [im < image.] Образ, как вы видите, не обязан совпадать с областью значений.
Или вот посмотрите на μ: 2
{1, 2, 3} \ ∅ → {1, 2, 3} с графиком {({1}, 1), ({2}, 2), ({1, 2}, 2), ({3}, 3), ({1, 3}, 3), ({2, 3}, 3), ({1, 2, 3}, 3)}
****. Можно понимать её как выбор максимального элемента из переданного на вход множества. Можно определить аналогичную функцию μ
2: 2
Z \ ∅ → Z. Несмотря на то что она «делает то же», μ
2 ≠ μ. Начать с того, что область определения μ
2 шире!
В следующий раз мы поговорим, в каком же смысле они похожи (а вы пока попытайтесь выразить это сами в ответах) и о том, как поворачивать функцию в другую сторону и чем это грозит. А ещё о множествах и отношениях немного дальше, если не забуду, о чём.
* Резон: выражение f(
чего-то там) определено тогда и только тогда, когда a ∈ dom f, потому dom f и называется областью определения.
** Аналогичные причины названия: выражение f(
чего-то там) может иметь значения только из cod f.
*** Составьте такую функцию с помощью операций над множествами. Примеры могут навести на мысль. (Если ответов не будет, напишу я.)
**** Тренируем глаза и внимание.