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 > j, i - j не определено на N, поэтому область вычитания можно обозначить так:</p>
55
</ul><p>Для i > j, i - j не определено на N, поэтому область вычитания можно обозначить так:</p>
56
<p>{(i, j) ∈ N^2 : i > j}</p>
56
<p>{(i, j) ∈ N^2 : i > 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 > 0. Область определения - R, а ее кодомен - R. Диапазон - [0, oo].</p>
63
<p>Для x ∈ R пусть sqrt(x) - неотрицательный квадратный корень из x. Тогда это частичная функция, так как sqrt(x) не определена для x > 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>