HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>В этом курсе мы уже обсуждали, что компьютерные программы связаны с математическими функциями. У программ есть:</p>
1 <p>В этом курсе мы уже обсуждали, что компьютерные программы связаны с математическими функциями. У программ есть:</p>
2 <ul><li><strong>Вход</strong>- любая строка символов, которую ввели в программу</li>
2 <ul><li><strong>Вход</strong>- любая строка символов, которую ввели в программу</li>
3 <li><strong>Выход</strong>- любая строка символов, которую вывела программа после выполнения</li>
3 <li><strong>Выход</strong>- любая строка символов, которую вывела программа после выполнения</li>
4 <li><strong>Функция</strong>- операция, которая превращает строку со входа в строку на выходе</li>
4 <li><strong>Функция</strong>- операция, которая превращает строку со входа в строку на выходе</li>
5 </ul><p>При определенных условиях программы попадают в бесконечные циклы. Из-за этого они не дают никакого результата. Программа не может вычислить функцию от входных данных, потому что на каждый входной сигнал ей нужен ровно один выходной сигнал.</p>
5 </ul><p>При определенных условиях программы попадают в бесконечные циклы. Из-за этого они не дают никакого результата. Программа не может вычислить функцию от входных данных, потому что на каждый входной сигнал ей нужен ровно один выходной сигнал.</p>
6 <p>В таких случаях вычисляется<strong>частичная функция</strong>, которую мы и рассмотрим в этом уроке.</p>
6 <p>В таких случаях вычисляется<strong>частичная функция</strong>, которую мы и рассмотрим в этом уроке.</p>
7 <h2>Зачем нужны частичные функции</h2>
7 <h2>Зачем нужны частичные функции</h2>
8 <p>Для начала вспомним, что числа бывают разных видов, в том числе:</p>
8 <p>Для начала вспомним, что числа бывают разных видов, в том числе:</p>
9 <ul><li>Вещественные - это любые числа, включая десятичные и дробные (например, 1, 1.1 и 1.2)</li>
9 <ul><li>Вещественные - это любые числа, включая десятичные и дробные (например, 1, 1.1 и 1.2)</li>
10 <li>Натуральные - это только целые числа (например, 1, 2 и 3)</li>
10 <li>Натуральные - это только целые числа (например, 1, 2 и 3)</li>
11 </ul><p>А теперь возьмем функцию f(x) = x/3 и определим ее для разных видов чисел.</p>
11 </ul><p>А теперь возьмем функцию f(x) = x/3 и определим ее для разных видов чисел.</p>
12 <p>В первом случае все сработает хорошо:</p>
12 <p>В первом случае все сработает хорошо:</p>
13 <ul><li>Мы заранее ограничим область функции вещественными числами</li>
13 <ul><li>Мы заранее ограничим область функции вещественными числами</li>
14 <li>Потом возьмем на вход вещественные числа</li>
14 <li>Потом возьмем на вход вещественные числа</li>
15 <li>Применим функцию f(x) = x/3</li>
15 <li>Применим функцию f(x) = x/3</li>
16 </ul><p>На выходе получим тоже вещественные числа:</p>
16 </ul><p>На выходе получим тоже вещественные числа:</p>
17 <ul><li>Если x=1, то f(x) = 1/3 = 0.33</li>
17 <ul><li>Если x=1, то f(x) = 1/3 = 0.33</li>
18 <li>Если x=1.1, то f(x) = 1.1/3 = 0.36</li>
18 <li>Если x=1.1, то f(x) = 1.1/3 = 0.36</li>
19 <li>Если x=1.2, то f(x) = 1.2/3 = 0.4</li>
19 <li>Если x=1.2, то f(x) = 1.2/3 = 0.4</li>
20 </ul><p>Здесь функция сработает во всех случаях, так что ее можно считать<strong>полностью определенной функцией</strong>.</p>
20 </ul><p>Здесь функция сработает во всех случаях, так что ее можно считать<strong>полностью определенной функцией</strong>.</p>
21 <p>Во втором случае все сработает не так гладко:</p>
21 <p>Во втором случае все сработает не так гладко:</p>
22 <ul><li>Мы заранее ограничим область функции натуральными числами</li>
22 <ul><li>Мы заранее ограничим область функции натуральными числами</li>
23 <li>Потом возьмем на вход натуральные числа</li>
23 <li>Потом возьмем на вход натуральные числа</li>
24 <li>Применим функцию f(x) = x/3</li>
24 <li>Применим функцию f(x) = x/3</li>
25 </ul><p>На выходе мы получим такой результат:</p>
25 </ul><p>На выходе мы получим такой результат:</p>
26 <ul><li>Если x=1, то f(x) = 1/3=0.33</li>
26 <ul><li>Если x=1, то f(x) = 1/3=0.33</li>
27 <li>Если x=2, то f(x) = 2/3 =0.66</li>
27 <li>Если x=2, то f(x) = 2/3 =0.66</li>
28 <li>Если x=3, то f(x) = 3/3=1</li>
28 <li>Если x=3, то f(x) = 3/3=1</li>
29 </ul><p>Сложность в том, что для x=1 и x=2 выходом функции будет дробное число, а не натуральное. Изначально мы ограничили функцию только натуральными числами, но на выходе получили дробные.</p>
29 </ul><p>Сложность в том, что для x=1 и x=2 выходом функции будет дробное число, а не натуральное. Изначально мы ограничили функцию только натуральными числами, но на выходе получили дробные.</p>
30 <p>Значит, функция сработает не во всех случаях, поэтому ее называют<strong>частично определенной функцией</strong>.</p>
30 <p>Значит, функция сработает не во всех случаях, поэтому ее называют<strong>частично определенной функцией</strong>.</p>
31 <p>Другими словами, это<strong>частичная функция</strong>- то есть функция, которая работает только частично. Она обозначается так:</p>
31 <p>Другими словами, это<strong>частичная функция</strong>- то есть функция, которая работает только частично. Она обозначается так:</p>
32 <p>f:A → B</p>
32 <p>f:A → B</p>
33 <p>Такие сложности с входными данными могут встретиться в программировании. Если в этом случае опираться только на полностью определенные функции, то программа может работать со сбоями и уходить в бесконечные циклы.</p>
33 <p>Такие сложности с входными данными могут встретиться в программировании. Если в этом случае опираться только на полностью определенные функции, то программа может работать со сбоями и уходить в бесконечные циклы.</p>
34 <h2>Как обозначаются частичные функции</h2>
34 <h2>Как обозначаются частичные функции</h2>
35 <p>Теперь разберем другой пример частичной функции.</p>
35 <p>Теперь разберем другой пример частичной функции.</p>
36 <p>Предположим, что мы изучаем таблицу с почтовыми расходами. В ней обозначено, сколько стоит пересылка посылок разного веса:</p>
36 <p>Предположим, что мы изучаем таблицу с почтовыми расходами. В ней обозначено, сколько стоит пересылка посылок разного веса:</p>
37 <p>В этой таблице обозначены диапазоны. Например, за три доллара можно отправить груз, который весит более 1 кг, но меньше или равно 5 кг.</p>
37 <p>В этой таблице обозначены диапазоны. Например, за три доллара можно отправить груз, который весит более 1 кг, но меньше или равно 5 кг.</p>
38 <p>Обратите внимание, что в таблице не указана стоимость пересылки грузов более 15 кг. Если бы мы использовали функцию, она была бы частичной, потому что в таблице дана не вся информация.</p>
38 <p>Обратите внимание, что в таблице не указана стоимость пересылки грузов более 15 кг. Если бы мы использовали функцию, она была бы частичной, потому что в таблице дана не вся информация.</p>
39 <p>Можно дополнить таблицу и расширить правило - например, указать, что посылки весом более 15 кг стоят $9. Тогда функция будет полной.</p>
39 <p>Можно дополнить таблицу и расширить правило - например, указать, что посылки весом более 15 кг стоят $9. Тогда функция будет полной.</p>
40 <p>Такие примеры помогают понять, как частичные функции применяются на практике. Они помогают<strong>изучать вычислимость</strong>- выяснять, какие функции можно вычислить с помощью программ.</p>
40 <p>Такие примеры помогают понять, как частичные функции применяются на практике. Они помогают<strong>изучать вычислимость</strong>- выяснять, какие функции можно вычислить с помощью программ.</p>
41 <h2>Формальное определение частичной функции</h2>
41 <h2>Формальное определение частичной функции</h2>
42 <p>Теперь посмотрим на частичные функции с точки зрения математики. Ее формальное определение можно сформулировать так:</p>
42 <p>Теперь посмотрим на частичные функции с точки зрения математики. Ее формальное определение можно сформулировать так:</p>
43 <p>Частичная функция F с областью определения X и кодоменом Y - это подмножество X * Y. При этом для каждого x ∈ X существует одно самое большое y с (x, y) ∈ F.</p>
43 <p>Частичная функция F с областью определения X и кодоменом Y - это подмножество X * Y. При этом для каждого x ∈ X существует одно самое большое y с (x, y) ∈ F.</p>
44 <p>Такая функция называется "частичной функцией F из X в Y" и обозначается так:</p>
44 <p>Такая функция называется "частичной функцией F из X в Y" и обозначается так:</p>
45 <p>F : X → Y</p>
45 <p>F : X → Y</p>
46 <p>Областью частичной функции F : X → Y является множество:</p>
46 <p>Областью частичной функции F : X → Y является множество:</p>
47 <p>{x ∈ X: для некоторого y ∈ Y, (x, y) ∈ F}</p>
47 <p>{x ∈ X: для некоторого y ∈ Y, (x, y) ∈ F}</p>
48 <p>Когда F называют частичной функцией, подразумевается, что в ее области определения существует какой-либо x, при котором F(x) не определена. При этом он не обязательно существует.</p>
48 <p>Когда F называют частичной функцией, подразумевается, что в ее области определения существует какой-либо x, при котором F(x) не определена. При этом он не обязательно существует.</p>
49 <h2>Примеры частичных функций</h2>
49 <h2>Примеры частичных функций</h2>
50 <p>Чтобы закрепить знания о частичных функциях, разберем несколько примеров.</p>
50 <p>Чтобы закрепить знания о частичных функциях, разберем несколько примеров.</p>
51 <h3>Пример 1</h3>
51 <h3>Пример 1</h3>
52 <p>Вычитание на N - это частичная функция:</p>
52 <p>Вычитание на N - это частичная функция:</p>
53 <ul><li>Ее область определения - N 2</li>
53 <ul><li>Ее область определения - N 2</li>
54 <li>Ее кодомен - N</li>
54 <li>Ее кодомен - N</li>
55 </ul><p>Для i &gt; j, i - j не определено на N, поэтому область вычитания можно обозначить так:</p>
55 </ul><p>Для i &gt; j, i - j не определено на N, поэтому область вычитания можно обозначить так:</p>
56 <p>{(i, j) ∈ N^2 : i &gt; j}</p>
56 <p>{(i, j) ∈ N^2 : i &gt; j}</p>
57 <p>Диапазон (-) равен N. Чтобы показать, что произвольное n ∈ N находится в диапазоне (-), заметим, что n = n -0.</p>
57 <p>Диапазон (-) равен N. Чтобы показать, что произвольное n ∈ N находится в диапазоне (-), заметим, что n = n -0.</p>
58 <h3>Пример 2</h3>
58 <h3>Пример 2</h3>
59 <p>Деление на R - это частичная функция. Ее область определения - R^2, ее кодомен - R, но ее область - это:</p>
59 <p>Деление на R - это частичная функция. Ее область определения - R^2, ее кодомен - R, но ее область - это:</p>
60 <p>{(x, y) ∈ R^2 : y A 0}</p>
60 <p>{(x, y) ∈ R^2 : y A 0}</p>
61 <p>Ее диапазон - R.</p>
61 <p>Ее диапазон - R.</p>
62 <h3>Пример 3</h3>
62 <h3>Пример 3</h3>
63 <p>Для x ∈ R пусть sqrt(x) - неотрицательный квадратный корень из x. Тогда это частичная функция, так как sqrt(x) не определена для x &gt; 0. Область определения - R, а ее кодомен - R. Диапазон - [0, oo].</p>
63 <p>Для x ∈ R пусть sqrt(x) - неотрицательный квадратный корень из x. Тогда это частичная функция, так как sqrt(x) не определена для x &gt; 0. Область определения - R, а ее кодомен - R. Диапазон - [0, oo].</p>
64 <p>Пусть G - подмножество R. G - это график частичной функции, если каждый раз при x0 ∈ X вертикальная прямая x = xo пересекает G не более чем в одной точке. Это называется<strong>тестом на вертикальную линию для частичной функции</strong>.</p>
64 <p>Пусть G - подмножество R. G - это график частичной функции, если каждый раз при x0 ∈ X вертикальная прямая x = xo пересекает G не более чем в одной точке. Это называется<strong>тестом на вертикальную линию для частичной функции</strong>.</p>
65 <p>На рисунке показано подмножество R x R, которое не является функцией, так как вертикальная линия x = -1 не пересекает график. Это частичная функцией, так как ни одна вертикальная линия, которая определяется элементом ее области, не пересекает график более одного раза:</p>
65 <p>На рисунке показано подмножество R x R, которое не является функцией, так как вертикальная линия x = -1 не пересекает график. Это частичная функцией, так как ни одна вертикальная линия, которая определяется элементом ее области, не пересекает график более одного раза:</p>
66 <h2>Выводы</h2>
66 <h2>Выводы</h2>
67 <p>В этом уроке мы изучили частичные функции - это такие функции, которые срабатывают только частично. Также их называют частично определенными функциями, потому что не все выходные значения будут попадать в заранее определенную область функции.</p>
67 <p>В этом уроке мы изучили частичные функции - это такие функции, которые срабатывают только частично. Также их называют частично определенными функциями, потому что не все выходные значения будут попадать в заранее определенную область функции.</p>