Как определить линейная функция или нет в дискретной математике
Перейти к содержимому

Как определить линейная функция или нет в дискретной математике

  • автор:

Дискретная математика — Функции

Функция назначает каждому элементу набора ровно один элемент связанного набора. Функции находят свое применение в различных областях, таких как представление вычислительной сложности алгоритмов, подсчет объектов, изучение последовательностей и строк и многое другое. Третья и последняя глава этой части освещает важные аспекты функций.

Функция — Определение

Функция или отображение (определенное как f : X r i g h t a r r o w Y ) представляет собой отношение элементов одного набора X к элементам другого набора Y (X и Y являются непустыми наборами). X называется Доменом, а Y — Кодоменом функции ‘f’.

Функция ‘f’ представляет собой отношение на X и Y такое, что для каждого x i n X существует единственный y i n Y , такой что ( x , y ) i n R . «x» называется предварительным изображением, а «y» — изображением функции f.

Функция может быть один к одному или много к одному, но не один ко многим.

Инъективная / индивидуальная функция

Функция f : A r i g h t a r r o w B является инъективной или взаимно-однозначной функцией, если для каждого b i n B существует не более одного a i n A , такого что f ( s ) = t ,

Это означает, что функция f инъективна, если из a 1 n e a 2 следует f ( a 1 ) n e f ( a 2 ) .

пример

  • f : N r i g h t a r r o w N , f ( x ) = 5 x инъективно.
  • f : N r i g h t a r r o w N , f ( x ) = x 2 инъективно.
  • f : R r i g h t a r r o w R , f ( x ) = x 2 не является инъективным, так как ( − x ) 2 = x 2

f : N r i g h t a r r o w N , f ( x ) = 5 x инъективно.

f : N r i g h t a r r o w N , f ( x ) = x 2 инъективно.

f : R r i g h t a r r o w R , f ( x ) = x 2 не является инъективным, так как ( − x ) 2 = x 2

Surctive / Onto function

Функция f : A r i g h t a r r o w B сюръективна (на), если образ f равен его диапазону. Эквивалентно, для каждого b i n B существует такой a i n A , что f ( a ) = b . Это означает, что для любого y в B существует такое x в A, что y = f ( x ) .

пример

  • f : N r i g h t a r r o w N , f ( x ) = x + 2 сюръективно.
  • f : R r i g h t a r r o w R , f ( x ) = x 2 не сюръективно, поскольку мы не можем найти вещественное число, квадрат которого отрицателен.

f : N r i g h t a r r o w N , f ( x ) = x + 2 сюръективно.

f : R r i g h t a r r o w R , f ( x ) = x 2 не сюръективно, поскольку мы не можем найти вещественное число, квадрат которого отрицателен.

Биектив / Один-на-один Корреспондент

Функция f : A r i g h t a r r o w B является биективной или взаимно-однозначной, если и только если f одновременно инъективна и сюръективна.

проблема

Докажите, что функция f : R r i g h t a r r o w R , определенная как f ( x ) = 2 x − 3 , является биективной функцией.

Пояснение — Мы должны доказать, что эта функция является и инъективной, и сюръективной.

Если f ( x 1 ) = f ( x 2 ) , то 2 x 1 − 3 = 2 x 2 − 3 , и это означает, что x 1 = x 2 .

Следовательно, f инъективен .

Здесь 2 x − 3 = y

Итак, x = ( y + 5 ) / 3 , принадлежащая R, и f ( x ) = y .

Следовательно, f сюръективно .

Поскольку f одновременно сюръективен и инъективен , мы можем сказать, что f биективен .

Обратная функция

Обратной к функции «один к одному» f : A r i g h t a r r o w B , является функция g : B r i g h t a r r o w A , обладающая следующим свойством:

f ( x ) = y L e f t r i g h t a r r o w g ( y ) = x

Функция f называется обратимой , если существует ее обратная функция g.

пример

  • Функция f : Z r i g h t a r r o w Z , f ( x ) = x + 5 , обратима, поскольку имеет обратную функцию g : Z r i g h t a r r o w Z , g ( x ) = x − 5 .
  • Функция f : Z r i g h t a r r o w Z , f ( x ) = x 2 не является обратимой, поскольку она не взаимно-однозначна, как ( − x ) 2 = x 2 .

Функция f : Z r i g h t a r r o w Z , f ( x ) = x + 5 , обратима, поскольку имеет обратную функцию g : Z r i g h t a r r o w Z , g ( x ) = x − 5 .

Функция f : Z r i g h t a r r o w Z , f ( x ) = x 2 не является обратимой, поскольку она не взаимно-однозначна, как ( − x ) 2 = x 2 .

Композиция функций

Две функции f : A r i g h t a r r o w B и g : B r i g h t a r r o w C могут быть составлены так, чтобы получить композицию g o f . Это функция из A в C, определяемая как ( g o f ) ( x ) = g ( f ( x ) )

пример

Пусть f ( x ) = x + 2 и g ( x ) = 2 x + 1 , найдите ( т у м а н ) ( x ) и ( g o f ) ( x ) .

Решение

( т у м а н ) ( x ) = f ( g ( x ) ) = f ( 2 x + 1 ) = 2 x + 1 + 2 = 2 x + 3

( g o f ) ( x ) = g ( f ( x ) ) = g ( x + 2 ) = 2 ( x + 2 ) + 1 = 2 x + 5

Следовательно, ( т у м а н ) ( x ) n e q ( g o f ) ( x )

Если f и g взаимно однозначны, то функция ( g o f ) также взаимно однозначна.

Если f и g на, то функция ( g o f ) также на.

Композиция всегда обладает ассоциативным свойством, но не обладает коммутативным свойством.

Как определить линейная функция или нет в дискретной математике

дискретная-математика — Определение, является ли функция линейной

Здравствуйте! Пусть функция задана набором из $%0$% и $%1$%: $%1001011010010110$%. Можно ли как-то быстро понять, линейная она или нет, или нужно строить полином Жегалкина?

задан 14 Окт ’15 18:00

Math_2012
1.6k ● 2 ● 31 ● 128
77&#037 принятых

1 ответ

Можно. Для этого применяем то деление на «половинки», которое уже встречалось раньше. Если функция линейна, то левая половинка или равна правой, или противоположна ей. В данном случае половинки совпадают, то есть первый тест функция прошла. Совпадение говорит о том, что переменная $%x_1$% фиктивна (в противном случае она была бы слагаемым).

Теперь считаем, что нам дан «половинный» набор 10010110, и это функция от $%x_2$%, $%x_3$%, $%x_4$%. Снова разбиваем пополам, и видим противоположность наборов. Значит, $%x_2$% присутствует, и к ней прибавляется функция от $%x_3$%, $%x_4$%, заданная строкой 1001. По тому же принципу, это $%x_3$% плюс функция от $%x_4$%, заданная как 10. Из-за противоположности половинок мы видим, что $%x_4$% входит, и к ней прибавлена константа 1. Итого мы получаем, что функция линейна, и она задана формулой $%1+x_2+x_3+x_4$%.

Полином Жегалкина в общем случае находить сложнее, и если здесь один из тестов даёт «сбой», то мы знаем, что он нелинеен, хотя и не вычисляли его в явной форме.

отвечен 14 Окт ’15 18:41

falcao
300k ● 9 ● 38 ● 53

@falcao: А почему совпадение двух половинок говорит о том, что $%x_1$% фиктивна?

(14 Окт ’15 19:34) Math_2012

@Math_2012: это следует из устройства таблицы, то есть из порядка перечисления наборов. Проиллюстрирую на примере трёх переменных: 000, 001, 010, 011, 100, 101, 110, 111. Видно, что сначала идут наборы вида 0ab, а потом в том же порядке 1ab. Если значения на первой половине равны соответственно значениям на второй, то f(0,a,b)=f(1,a,b) при любых a, b, что в точности означает фиктивность первой переменной. Аналогично, если первая половина противоположна второй: тогда переход к противоположному набору есть прибавление 1 (первой координаты).

(14 Окт ’15 22:19) falcao

Точно, могла и сама догадаться.

дискретная-математика — Линейная функция(дискретная матемтика)

Как доказать, что в векторе значений любой линейной функции должно быть одинаковое количество нулей и единиц?

задан 25 Сен ’19 21:38

1 ответ

Это неверно, так как константа линейна, но там число нулей и единиц среди значений не одинаково.

Если функция не константа, то она существенно зависит от некоторой переменной x и представима в виде x+f(y,z. ). Для любого набора остальных переменных, при x=0 и x=1 значения функции разные. Одно 0, другое 1. Поэтому их поровну.

отвечен 25 Сен ’19 23:00

falcao
300k ● 9 ● 38 ● 53

Полные системы функций. Теорема Поста о полной системе функций

Американский математик Эмиль Пост сформулировал необходимое и достаточное условие полноты системы булевых функций. Для этого он ввел в рассмотрение следующие замкнутые классы булевых функций:

  • функции, сохраняющие константу [math]T_0[/math] и [math]T_1[/math] ,
  • самодвойственныые функции [math]S[/math] ,
  • монотонные функции [math]M[/math] ,
  • линейные функции [math]L[/math] .

Замкнутые классы булевых функций

Класс функций сохраняющих ноль [math]T_0[/math] .

Определение:
Говорят, что функция сохраняет ноль, если [math]f(0, 0, \ldots, 0) = 0[/math] .

Класс функций сохраняющих единицу [math]T_1[/math] .

Определение:
Говорят, что функция сохраняет единицу, если [math]f(1, 1, \ldots, 1) = 1[/math] .

Класс самодвойственных функций [math]S[/math] .

Определение:
Говорят, что функция самодвойственна (англ. self-dual), если [math]f(\overline,\ldots,\overline)=\overline [/math] . Иными словами, функция называется самодвойственной, если на противоположных наборах она принимает противоположные значения.

Класс монотонных функций [math]M[/math] .

Определение:
Говорят, что функция монотонна (англ. monotonic function) , если [math]\forall i (a_i \leqslant b_i) \Rightarrow f(a_1,\ldots,a_n)\leqslant f(b_1,\ldots,b_n)[/math] .

Класс линейных функций [math]L[/math] .

Определение:
Говорят, что функция линейна (англ. linear function), если существуют такие [math]a_0, a_1, a_2, \ldots, a_n[/math] , где [math]a_i \in \, \forall i=\overline[/math] , что для любых [math]x_1, x_2, \ldots, x_n[/math] имеет место равенство: [math]f(x_1, x_2, \ldots, x_n) = a_0\oplus a_1\cdot x_1\oplus a_2\cdot x_2 \oplus\ldots\oplus a_n\cdot x_n[/math] .

Количество линейных функций от [math]n[/math] переменных равно [math]~2^[/math] .

Функция является линейной тогда, и только тогда, когда в ее полиноме Жегалкина присутствуют слагаемые, каждое из которых зависит не более чем от одной переменной. Построить полином Жегалкина можно с помощью преобразования Мебиуса.

Формулировка и доказательство критерия Поста

Набор булевых функций [math]K[/math] является полным тогда и только тогда, когда он не содержится полностью ни в одном из классов [math] S,M,L,T_0,T_1 [/math] , иными словами, когда в нем имеется хотя бы одна функция, не сохраняющая ноль, хотя бы одна функция, не сохраняющая один, хотя бы одна несамодвойственная функция, хотя бы одна немонотонная функция и хотя бы одна нелинейная функция.

Необходимость.

Заметим, что необходимость этого утверждения очевидна, так как если бы все функции из набора [math]K[/math] входили в один из перечисленных классов, то и все суперпозиции, а, значит, и замыкание набора входило бы в этот класс, и набор [math]K[/math] не мог бы быть полным.

Достаточность.

Докажем, что если набор [math]K[/math] не содержится полностью ни в одном из данных классов, то он является полным.

  1. Рассмотрим функцию, не сохраняющую ноль — [math]f_0[/math] (то есть функцию, для которой [math]f_0(0) = 1[/math] ). Тогда [math] f_0(1)[/math] может принимать два значения:
    1. [math]f_0(1) = 1[/math] , тогда [math]f_0(x, x, x, \ldots, x) = 1[/math] .
    2. [math]f_0(1) = 0[/math] , тогда [math]f_0(x, x, x, \ldots, x) = \neg x[/math] .
    1. [math]f_1(0) = 0[/math] , тогда [math]f_1(x, x, x, \ldots, x) = 0[/math] .
    2. [math]f_1(0) = 1[/math] , тогда [math]f_1(x, x, x, \ldots, x) = \lnot x[/math] .

    Таким образом, возможны четыре варианта:

    • Мы получили функцию [math] \neg [/math] .

    Используем несамодвойственную функцию [math]f_s[/math] . По определению, найдется такой вектор [math]x_0[/math] , что [math]f_s(x_0) = f_s(\lnot x_0)[/math] . Где [math]x_0 = (x_, x_, \ldots, x_)[/math] .

    Рассмотрим [math]f_s(x^>, x^>, \ldots, x^>)[/math] , где либо [math]x^> = x[/math] , при [math]x_ = 1[/math] . Либо [math]x^> = \lnot x[/math] , при [math]x_ = 0 [/math] . Нетрудно заметить, что [math]f_s(0) = f_s(1) \Rightarrow f_s = \operatorname [/math] . Таким образом мы получили одну из констант.

    • Мы получили [math] \neg [/math] и [math]0 \Rightarrow[/math] имеем константу, равную [math]1[/math] , поскольку [math]\lnot 0 = 1[/math] .
    • Мы получили [math] \neg [/math] и [math]1 \Rightarrow[/math] имеем константу, равную [math]0[/math] , поскольку [math]\lnot 1 = 0[/math] .
    • Мы получили [math]1[/math] и [math]0[/math] .

    Рассмотрим немонотонную функцию [math]f_m[/math] . Существуют такие [math]x_1, x_2, \ldots, x_n[/math] , что [math]f_m(x_1, x_2, \ldots, x_, 0 , x_, \ldots, x_n) = 1[/math] , [math]f_m(x_1, x_2, \ldots, x_, 1 , x_, \ldots, x_n) = 0[/math] , зафиксируем все [math]x_1, x_2, \ldots, x_n[/math] , тогда [math]f_m(x_1, x_2, \ldots, x_, x, x_, \ldots, x_n)= \lnot x[/math] .

    В итоге имеем три функции: [math] \neg [/math] , [math]0[/math] , [math]1[/math] .

    Используем нелинейную функцию [math]f_l[/math] . Среди нелинейных членов [math]f_l[/math] (ее представления в виде полинома Жегалкина), выберем тот, в котором минимальное количество элементов. Все аргументы кроме двух в этом члене приравняем единице, оставшиеся два назовем [math]x_1[/math] и [math]x_2[/math] . Все элементы, не входящие в данный член, примем равными нулю. Тогда эта функция будет представима в виде [math]g_l = x_1 \land x_2 [ \oplus x_1] [\oplus x_2][ \oplus ~1][/math] , где в квадратных скобках указаны члены, которые могут и не присутствовать (остальные слагаемые будут равны нулю, поскольку в них есть как минимум один аргумент, не входящий в выбранный член, так как в выбранном члене минимальное число элементов).

    Рассмотрим несколько вариантов:

    1. Присутствует член [math]\oplus ~1[/math] . Возьмем отрицание от [math]g_l[/math] и член [math]\oplus ~1[/math] исчезнет.
    2. Присутствуют три члена, без [math]\oplus ~1[/math] : [math]g_l= x_1 \land x_2 \oplus x_1 \oplus x_2[/math] . Составив таблицу истинности для этой функции нетрудно заметить, что она эквивалентна функции [math] \vee [/math] .
    3. Присутствуют два члена, без [math]\oplus ~1[/math] . Построив две таблицы истинности для двух различных вариантов, заметим, что в обоих случаях функция истинна только в одной точке, следовательно, СДНФ функции [math]g_l[/math] будет состоять только из одного члена. Если это так, то не составляет труда выразить [math] \wedge [/math] через [math] \neg [/math] и [math]g_l[/math] . Например, если функция [math]g_l(x_1, x_2, \ldots, x_n)[/math] принимает истинное значение, когда аргументы c номерами [math]i_1, i_2, \ldots, i_m[/math] ложны, а все остальные истины, то функцию [math] \wedge [/math] можно выразить как [math]g_l([\lnot]x_1, [\lnot]x_2, \ldots, [\lnot]x_n)[/math] , где [math]\lnot[/math] ставится перед аргументами с номерами [math]i_1, i_2, \ldots, i_m[/math] .
    4. Присутствует один член. Выразим [math] \wedge [/math] через [math] \neg [/math] и [math]g_l[/math] аналогично пункту 3.

    В итоге получим функцию [math] \neg [/math] , а также либо функцию [math] \wedge [/math] , либо функцию [math] \vee [/math] . Поскольку функцию [math] \wedge [/math] можно выразить через [math] \vee [/math] и [math] \neg [/math] , а функцию [math] \vee [/math] через [math] \wedge [/math] и [math] \neg [/math] , то мы получили базис [math] \wedge [/math] , [math] \vee [/math] , [math] \neg [/math] . Любую булеву функцию, не равную тождественному нулю, можно представить в форме СДНФ, то есть выразить в данном базисе. Если же функция равна тождественному нулю, то ее можно представить в виде [math]x \land \lnot x[/math] .

    Примеры

    Согласно критерию Поста система булевых функций полна тогда и только тогда, когда она не содержится целиком ни в одном из классов [math]T_0[/math] , [math]T_1[/math] , [math]S[/math] , [math]M[/math] , [math]L[/math] .

    В частности, если функция не входит ни в один из классов Поста, она сама по себе формирует полную систему. В качестве примера можно назвать штрих Шеффера или стрелку Пирса.

    Широко известны такие полные системы булевых функций:

    • [math]\left\ [/math] (конъюнкция, дизъюнкция, отрицание);
    • [math]\left\ [/math] (конъюнкция, сложение по модулю два, константа один).

    Первая система используется, например, для представления функций в виде дизъюнктивных и конъюнктивных нормальных форм, вторая — для представления в виде полиномов Жегалкина.

    Первая из упоминавшихся выше полных систем безызбыточной не является, поскольку согласно законам де Моргана либо дизъюнкцию, либо конъюнкцию можно исключить из системы и восстановить с помощью остальных двух функций. Вторая система является безызбыточной — все три её элемента необходимы для полноты системы.

    Теорема о максимальном числе функций в базисе: максимально возможное число булевых функций в базисе — четыре.

    Иногда говорят о системе функций, полной в некотором замкнутом классе, и, соответственно, о базисе этого класса. Например, систему [math]\left\ [/math] можно назвать базисом класса линейных функций.

    См. также

    • Булевы функции
    • Суперпозиции
    • Полином Жегалкина

    Источники информации

    • Википедия — Критерий Поста
    • Википедия — Замкнутые классы булевых функций
    • Образовательный сайт MiniSoft
    • Post’s lattice
    • Лекции по дискретной математике

    Математическая логика и теория алгоритмов

    истинности. Очевидно, что функция f (x 1 , x 2 , x 3 ) не является монотон• ной функцией. Действительно, монотонность нарушается на наборах и . Эти наборы отличаются только первой компонен• той. Тогда, согласно доказательству леммы определяем функцию g(x) = = f (x, 0, 1) . Нетрудно убедиться в том, что g(0) = 1 , а g(1) = 0 , т. е. функция g(x) является отрицанием. 3.4. Линейные функции Определение 3.15. Функция f (x 1 , . . . , x n ) называется линейной, ес• ли она представима в виде линейного полинома Жегалкина, т. е. если существуют a 0 , a 1 , . . . , a n B такие, что f (x 1 , . . . , x n ) = a 0 a 1 x 1 . . . a n x n . Пример 3.12. Линейными функциями являются 0, 1, x, x y . Функ• ции xy, x y, x → y линейными не являются. Замечание 3.8. Заметим, что любая булева функция от одной пе• ременной линейна. Класс всех линейных функций обозначим буквой L. Класс L является замкнутым. Действительно, тождественная функция является линейной. Далее очевидно, что замена аргументов у линейной функции дает линей• ную функцию и суперпозиция линейных функций линейна. Упражнение 3.13. Обозначим через L n множество всех линейных булевых функций от n переменных. Доказать, что |L n | = 2 n+1 . Следующее утверждение называется леммой о нелинейной функции. Лемма 3.3. Пусть f (x 1 , . . . , x n ) – нелинейная функция. Тогда замы• кание класса K = содержит произведение xy .

    Доказательство. Так как f (x 1 , . . . , x n ) – нелинейная функция, то ее полином Жегалкина содержит хотя бы одно нелинейное слагаемое вида: x i 1 x i 2 · · · x i k , k > 2. Среди них выберем самое короткое. Для переменных, входящих в конъюнкцию, положим x i 3 = . . . = x i k = 1, а те, которые в данное слагаемое не входят, положим равными нулю. Введем новые обо• значения: x = x i 1 , y = x i 2 . Тогда функция f примет вид

    f (x, y) = xy αx βy γ, α, β, γ B.
    Составим следующую таблицу
    α β γ f (x, y) xy
    0 0 0 xy xy = f (x, y)
    0 0 1 xy 1 = xy = f (x, y)
    xy
    0 1 0 xy y = xy = f (
    xy x, y)
    0 1 1 xy y 1 = xy = f (
    xy x, y)
    1 0 0 xy = f (x, )
    xy x = xy y
    1 0 1 xy = f (x, )
    xy x 1 = xy y
    1 1 0 xy x y = xy = f (
    x y x, y)
    1 1 1 xy x y 1 = xy = f (
    x y x, y)

    Последний столбец таблицы содержит представление функции xy через от• рицание, нелинейную функцию f (x 1 , . . . , x n ) и подстановку в нее констант 0 и 1. Пример 3.13. Получим функцию xy с помощью констант, отрица• ния и нелинейной функции f (x 1 , x 2 , x 3 ) = x 1 x 2 x 3 x 1 x 2 x 1 . Воспользуемся леммой 3.3 о нелинейной функции. Заметим, что требование выбора самого короткого нелинейного сла• гаемого является существенным. Возьмем, например, слагаемое x 1 x 2 x 3 , тогда (полагая x 3 = 1 ) получим f (x 1 , x 2 , 1) = x 1 x 2 x 1 x 2 x 1 = x 1 и лемма неприменима. Сделаем правильный выбор и рассмотрим слагаемое x 1 x 2 . Полагая x 3 = 0 , получаем f (x 1 , x 2 , 0) = x 1 x 2 x 1 . Тогда xy = f (x, y, 0) . Задача 3.4. Какие из линейных функций являются самодвойствен• ными? Ответ: функции, у которых нечетное число коэффициентов a i равно единице. Задача 3.5. Будут ли следующие функции линейными:

    a) x ↓ y ; b) x ↔ y ; c) (x ↔ y) ↔ z ; d) x → (y → x) . Ответ: линейными являются все функции, кроме первой. 3.5. Критерий полноты Данный раздел посвящен доказательству (и обсуждению) критерия полноты класса булевых функций, который называется теоремой Поста. Определение 3.16. Классы T 0 , T 1 , S, M и L называются основными замкнутыми классами функций. Теорема 3.9 (Постa). Класс булевых функций K является полным тогда и только тогда, когда он не содержится ни в одном из основных замкнутых классов. Упражнение 3.14. Докажите, что каждый полный класс содер• жит полный подкласс, состоящий из не более чем четырех функций. Пример 3.14. Покажем, что в формулировке предыдущего упражне• ния нельзя слово “четырех” заменить на слово “трех”. Рассмотрим класс K = . Очевидно, что 0 / T 1 , 1 / T 0 . Функция xy не является ни самодвой• ственной, ни линейной. Нетрудно проверить, что x y z – немонотон• ная функция. Следовательно, по теореме Поста K – полный класс. В то же время любой его собственный подкласс полным не является. Дей• ствительно, если удалить функцию 0 , то оставшиеся функции будут сохранять 1 , если удалить 1 , то они будут сохранять 0 . Класс функ• ций K без функции xy состоит из линейных функций, а без последней функции – из монотонных. Определение 3.17. Замкнутый класс K называется предполным ес• ли K – неполный класс, но для любой функции f / K класс K является полным. Теорема 3.10. Предполными являются классы T 0 , T 1 , S, M и L и только они. Определение 3.18. Система функций C называется базисом за• мкнутого класса K , если замыкание C совпадает с K , но замыкание лю• бой собственной подсистемы C уже не совпадает с K . Упражнение 3.15. Доказать, что система образует базис в классе всех монотонных функций.

    Упражнение 3.16. Сведением к известным полным классам дока• зать полноту классов функций: а) ; б) ; в) ; г) ; д) ; е) . Упражнение 3.17. Используя теорему Поста, доказать полноту классов функций:

    Упражнение 3.18. Функцию назовем полной, если класс, единствен• ным элементом которого является эта функция, будет полным. Дока• зать, что штрих Шеффера и стрелка Пирса – единственные полные функ• ции среди всех двухместных функций. Задача 3.6. Будут ли полными следующие классы функций:

    а) ; б) ;
    в) ; г) ;
    д) ; е)
    x, xy xz yz> ;
    ж)

    Ответ: в случаях г, ж, и з классы будут полными, в остальных нет. Список рекомендуемой литературы Гиндикин С. Г. Алгебра логики в задачах. М., Наука, 1972. Клини С. Математическая логика. М., Наука, 1973. Лавров И. А., Максимова Л. Л. Задачи по теории множеств, математи• ческой логике и теории алгоритмов. М.: Наука, 1975. Чень Ч., Ли Р. Математическая логика и автоматическое доказательст• во теорем. М., Наука, 1983. Мендельсон Э. Введение в математическую логику. М.: Наука, 1984. Яблонский С. В. Введение в дискретную математику. М.: Наука, 1986. Кузнецов О. П., Адельсон-Вельский Г. М. Дискретная математика для инженера. М.: Энергоатомиздат, 1988. Нефедов В. Н., Осипова В. А. Курс дискретной математики. М.: Изд-во МАИ, 1992. Лихтарников Л. М., Сукачева Т. Г. Математическая логика. СПб.: Лань, 1999. Новиков Ф. А. Дискретная математика для программистов. СПб.: Пи• тер, 2002.

    Оглавление
    1. Бинарные отношения и графы 3
    1.1. Введение. Постановка задачи . . . . . . . . . . . . . . . . . . . . . . . . . . 3
    1.2. Свойства бинарных отношений . . . . . . . . . . . . . . . . . . . . . . . . . 5
    1.3. Способы задания отношений . . . . . . . . . . . . . . . . . . . . . . . . . . 7
    1.4. Отношение эквивалентности . . . . . . . . . . . . . . . . . . . . . . . . . . 9

    1.5. Отношение порядка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.6. Алгоритм топологической сортировки . . . . . . . . . . . . . . . . . . . . . 12 1.7. Транзитивное замыкание бинарного отношения. Алгоритм Уоршелла . . 13 1.8. Индивидуальное задание по теме “Бинарные отношения” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

    2. Логика высказываний 17

    2.1. Высказывания и операции над ними . . . . . . . . . . . . . . . . . . . . . . 18 2.2. Формулы логики высказываний, интерпретация . . . . . . . . . . . . . . . 19 2.3. Равносильность и законы логики высказываний . . . . . . . . . . . . . . . 22 2.4. Логическое следствие . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.5. Нормальные формы в логике высказываний . . . . . . . . . . . . . . . . . 30 2.6. Контактные схемы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 2.7. Метод минимизирующих карт . . . . . . . . . . . . . . . . . . . . . . . . . 39

    3. Булевы функции 44
    3.1. Замкнутость и полнота . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
    3.2. Самодвойственные функции . . . . . . . . . . . . . . . . . . . . . . . . . . 53
    3.3. Монотонные функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
    3.4. Линейные функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
    3.5. Критерий полноты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
    Список рекомендуемой литературы 63

    Поздняков Сергей Николаевич Рыбин Сергей Витальевич Математическая логика и теория алгоритмов. Учебное пособие Редактор И. Г. Скачек Подписано в печать . 04. Формат 60 × 84 1/16. Бумага офсетная. Печать офсетная. Печ. л. 4,0. Тираж 400 экз. Заказ . Издательство СПбГЭТУ „ЛЭТИ“ 197376, С.-Петербург, ул. Проф. Попова, 5

    Определение линейной функции в дискретной математике

    khokku.ru

    Дискретная математика является одной из основных дисциплин в области вычислительной математики, анализа данных и алгоритмов. Одной из важных задач в этом направлении является определение линейной функции.

    Линейная функция представляет собой математическую модель, которая описывает прямую зависимость между двумя переменными. В дискретной математике линейная функция определяется по ряду ключевых признаков.

    Первый признак линейной функции — ее график представляет собой прямую линию. Иными словами, если значения переменных изменяются линейно (пропорционально), то их зависимость можно описать линейной функцией.

    Существует несколько способов определения линейной функции в дискретной математике. Один из них основывается на вычислении коэффициентов уравнения прямой. Другой основывается на анализе изменения значений переменных и их отношений.

    Понятие и определение линейной функции

    Линейная функция является одной из основных и наиболее простых функций в математике. Она описывает отношение между двумя переменными, где каждому значению одной переменной соответствует единственное значение другой переменной.

    Основное свойство линейной функции состоит в том, что ее график всегда представляет собой прямую линию на плоскости или в пространстве. Это означает, что все точки, принадлежащие графику линейной функции, лежат на одной прямой.

    Линейная функция может быть определена алгебраически с помощью уравнения вида:

    y = ax + b

    где a и b — константы, а x и y — переменные. Коэффициент a называется коэффициентом наклона или угловым коэффициентом, а коэффициент b — свободным членом или y-интерсептом.

    Значение коэффициента a определяет угол наклона прямой, а значение коэффициента b — точку пересечения с осью y. Если значение a равно 0, то график будет горизонтальной прямой, если значение b равно 0, то график будет вертикальной прямой.

    Для определения линейной функции также может быть использован графический способ. Для этого необходимо построить график функции и проверить, является ли он прямой линией.

    В дискретной математике линейные функции играют важную роль при решении различных задач, таких как моделирование, прогнозирование, анализ данных и другие.

    Первый признак линейной функции

    Первый признак линейной функции позволяет определить, является ли функция линейной или нет. Линейная функция является одним из основных понятий в дискретной математике и имеет определенные свойства, которые помогают отличить ее от других типов функций.

    Первым признаком линейной функции является прямая пропорциональность между изменением аргумента и изменением значения функции. Если при увеличении аргумента на единицу значение функции также увеличивается на постоянное число, то функция является линейной.

    Формально, первый признак линейной функции можно записать следующим образом:

    1. Для любых двух значений аргументов x1 и x2, где x1x2 и y1 и y2 — соответствующие значения функции, должно выполняться следующее условие:
    x2 — x1 | y2 — y1 | k
    ——— = ——— = const

    где k — константа.

    k — константа, представляющая производную или угловой коэффициент линейной функции.

    Если данный признак выполняется для всех пар значений аргументов и соответствующих значений функции, то можно утверждать, что функция является линейной.

    Наличие прямой пропорциональности между изменением аргумента и изменением значения функции позволяет использовать линейные функции в решении различных задач, включая моделирование, оптимизацию и прогнозирование.

    Второй признак линейной функции

    Второй признак линейной функции в дискретной математике связан с изменением пропорциональности значений независимой и зависимой переменных. Линейная функция обладает следующим свойством: если при изменении значения независимой переменной на некоторую величину, значение зависимой переменной также изменяется пропорционально.

    Более точное определение второго признака линейной функции можно дать с помощью таблицы значений функции. Рассмотрим таблицу значений, в которой значения независимой переменной обозначены как x, а значения зависимой переменной — как y:

    x y
    x1 y1
    x2 y2
    x3 y3

    Если значения зависимой переменной изменяются пропорционально значениям независимой переменной, то можно записать следующее равенство:

    где m — некоторая постоянная величина, которая является коэффициентом пропорциональности между значениями x и y.

    Если для любых пар значений x1, y1 и x2, y2 выполняется указанное равенство, то можно сделать вывод о линейности функции.

    Таким образом, второй признак линейной функции заключается в пропорциональном изменении значений независимой и зависимой переменных.

    Третий признак линейной функции

    Третий признак линейной функции состоит в том, что она имеет постоянную разность между значениями функции на двух разных точках.

    Формально, если для двух различных точек A и B выполняется условие:

    где f(B) и f(A) — значения функции в точках B и A, а k — константа, то функция является линейной.

    Этот признак определяет, что каждое следующее значение функции можно получить, прибавив к предыдущему значению постоянное значение.

    Подобно другим признакам, третий признак линейной функции позволяет определить ее формулу или задать ее график в случае дискретной математики.

    Способ 1: Графическое определение

    Графическое определение линейной функции в дискретной математике основано на анализе графика.

    Для определения линейной функции по графику необходимо выполнить следующие шаги:

    1. Выяснить, является ли график прямой.
    2. Проверить, выполняется ли условие постоянства приращения.

    1. Выяснение, является ли график прямой:

    Чтобы установить, является ли график, представленный на дискретной математике, прямой, следует проверить, что все точки графика лежат на одной прямой линии. Для этого можно построить график с помощью точек и провести прямую через эти точки. Если все точки лежат на этой прямой, то график является прямой и, следовательно, функция линейная.

    2. Проверка условия постоянства приращения:

    Постоянство приращения обозначает, что изменение значения функции между двумя любыми точками графика является постоянным. Для проверки этого условия можно выбрать две различные точки на графике и вычислить их разность по оси y и разность по оси x. Затем необходимо сравнить эти значения для каждой пары точек. Если разность по оси y всегда соответствует разности по оси x, то график является линейным.

    Если оба условия выполнены, то можно сделать вывод, что функция является линейной в дискретной математике.

    Способ 2: Аналитическое определение

    В дискретной математике линейная функция может быть определена аналитически с использованием формулы.

    Для того, чтобы определить линейную функцию, необходимо проверить, существуют ли две константы A и B, такие что для любых двух значений x и y выполняется следующее равенство:

    y = Ax + B

    Где x — значение аргумента функции, y — соответствующее значение функции. A и B являются параметрами функции.

    Для определения линейной функции аналитически нужно сравнить каждую пару значений из известных данных и провести вычисления для определения констант A и B.

    Полученная формула y = Ax + B может быть далее использована для предсказания значений функции для новых аргументов x.

    Примеры и практическое применение линейных функций

    Линейные функции играют важную роль в различных областях математики, науки и инженерии. Они широко применяются для моделирования и анализа различных процессов. Рассмотрим несколько примеров и практических применений линейных функций.

    1. Экономика и финансы:

    • Линейные функции используются для моделирования зависимости между спросом и ценой, спросом и доходом и другими экономическими переменными.
    • Они также используются для анализа и прогнозирования финансовых данных, таких как доходность инвестиций и рост цен акций.

    2. Физика:

    • Линейные функции используются для моделирования движения тела с constnt скоростью, например, прямолинейного движения объекта.
    • Линейные функции также могут быть использованы для моделирования общего закона Ома в электрических цепях.

    3. Инженерия:

    • Линейные функции используются для моделирования и анализа электрических сигналов, сетей и цепей.
    • Они также могут быть применены для моделирования и анализа пропускной способности сетей передачи данных и трафика.

    4. Социальные науки:

    • Линейные функции используются для моделирования и анализа социальных процессов, таких как рост населения, уровень безработицы и общественное благосостояние.
    • Они также могут быть применены для анализа влияния различных факторов на социальное поведение.

    5. Компьютерная графика:

    • Линейные функции используются для создания и анимации трехмерных объектов и их движения.
    • Они также могут быть использованы для обработки и сжатия изображений.

    Это только небольшая часть областей, в которых применяются линейные функции. В каждой из этих областей линейные функции позволяют анализировать данные, предсказывать результаты и строить модели, которые помогают понять и описать протекающие процессы.

    Вопрос-ответ

    Способы определения линейной функции в дискретной математике?

    Одним из способов определения линейной функции в дискретной математике является анализ самих данных, представленных в виде точек (кортежей) на графике. Если эти точки образуют прямую линию, то функция является линейной.

    Какие особенности имеют линейные функции?

    Линейные функции обладают несколькими ключевыми признаками. Во-первых, график линейной функции представляет собой прямую линию. Во-вторых, уравнение линейной функции имеет стандартный вид y = mx + b, где m — коэффициент наклона прямой, b — свободный член. В-третьих, приращение (разность значений функции) между любыми двумя точками на графике является постоянной величиной.

    Есть ли другие способы определения линейной функции, кроме анализа графика?

    Да, существуют и другие способы определения линейной функции. Например, можно рассмотреть ее алгебраическое уравнение и проверить, соответствует ли оно стандартному виду y = mx + b. Если да, то функция линейная. Также можно проанализировать приращения функции между различными парами точек и проверить их постоянство. Если разность значений функции между любыми двумя точками одинакова, то функция линейная.

    Может ли функция быть линейной, если ее график не является прямой линией?

    Нет, линейная функция определяется именно прямой линией графика. Если график функции имеет другую форму, например, кривую линию, параболу или синусоиду, то такая функция не является линейной. Линейные функции имеют строго прямолинейный график.

    Как определить линейную функцию в дискретной математике: особенности и примеры

    Узнайте, как распознать линейную функцию в дискретной математике. Определите, является ли функция линейной, воспользовавшись полезными советами и примерами. В дискретной математике, функции играют важную роль, их использование необходимо во многих задачах. Одной из ключевых характеристик функции является её линейность. Линейные функции имеют множество применений, в том числе в экономике, физике, информатике и других областях, где их можно использовать для моделирования и анализа данных. В этой статье мы подробно рассмотрим, что означает линейность функции в дискретной математике. Мы объясним, как определить линейную функцию с помощью графиков и формулы. Также мы рассмотрим связь между линейной функцией и её графиком, что поможет лучше понять эту важную характеристику функции. Знание линейности функции является важным для многих математических задач. Поэтому, данная статья будет полезна как профессиональным математикам, так и начинающим студентам, изучающим дискретную математику и связанные с ней дисциплины.

    Определение линейности функции

    1. Аддитивность: f(a+b) = f(a) + f(b) для всех a и b
    2. Однородность: f(kx) = kf(x) для всех x и k (константа)

    Однородность означает, что изменение входного значения на k приведет к изменению выходного значения на k раз больше. Аддитивность означает, что сумма на входе приведет к сумме на выходе.

    Это позволяет нам определять линейную функцию в дискретной математике, убедившись, что функция удовлетворяет этим двум свойствам.

    Видео по теме:

    Что такое линейная функция

    Читать далее«Арбуз кримсон руби F1: отзывы, сроки и правила посадки».

    Линейная функция — это функция, график которой является прямой линией. Она также известна как функция первой степени и имеет следующий вид:

    f(x) = ax + b

    где a и b — константы, называемые коэффициентами функции. Коэффициент a определяет угловой коэффициент графика (наклон прямой), а коэффициент b определяет точку пересечения прямой с осью y.

    Если значение коэффициента a равно 0, то функция вырождается в константу f(x) = b. Если значение коэффициента b равно 0, то функция проходит через начало координат.

    Линейная функция широко используется в математике, физике и экономике, где она используется для моделирования прямолинейных зависимостей между переменными.

    График линейной функции

    График линейной функции

    Линейная функция задается уравнением y = kx + b, где k и b — константы.

    График линейной функции представляет собой прямую линию на плоскости. Ее наклон (угол, под которым она наклонена относительно оси ОХ) определяется коэффициентом k:

    • Если k > 0, то прямая наклонена вправо.
    • Если k < 0, то прямая наклонена влево.
    • Если k = 0, то прямая параллельна оси ОХ.

    Точка пересечения прямой с осью OY имеет координату (0, b). Если константа b равна 0, то прямая проходит через начало координат.

    Читать далее«Где и как делают ключи: название специализированного места».

    График линейной функции помогает визуально представить, как ведет себя функция в зависимости от изменения аргумента.

    Формула линейной функции

    Линейная функция — это функция, которая может быть выражена в виде y = kx + b, где k и b — постоянные числа, а x — переменная. Формула линейной функции показывает, что зависимость между входными и выходными данными линейна — при изменении входной переменной на единицу, переменная выхода изменяется на k единиц, а b — это константа, которая задает точку пересечения графика функции с осью Y.

    Например, если у нас есть линейная функция y = 3x + 2, то при x = 0, y равно 2, а когда x увеличивается на 1, y увеличивается на 3. При этом график функции проходит через точку (0,2).

    Кроме того, можно задать линейную функцию в виде y = mx, где m — это угловой коэффициент, который определяет, насколько быстро переменная выхода изменяется относительно переменной входа. В этом случае, b = 0 и график функции проходит через начало координат.

    Как определить, является ли функция линейной

    Как определить, является ли функция линейной

    Функция является линейной, если она удовлетворяет двум условиям:

    • Принцип суперпозиции: f(x+y) = f(x) + f(y)
    • Соотношение масштабирования: f(kx) = kf(x), где k — константа

    Если функция не удовлетворяет хотя бы одному из этих условий, то она не является линейной. Эти условия можно использовать для проверки линейности любой функции.

    Пример линейной функции:

    Пример нелинейной функции:

    Проверка линейности функции может быть полезна при решении различных задач в дискретной математике, таких как решение систем линейных уравнений, определение оптимальных решений задачи линейного программирования и других.

    Разница между линейной и нелинейной функцией

    Линейная функция — это функция, график которой представляет собой прямую линию. Она имеет следующий вид: y = mx + b, где m — коэффициент наклона прямой, а b — смещение по оси y. Примерами линейных функций могут служить уравнение прямой или закон Ома в электрических цепях.

    Нелинейная функция — это функция, график которой не является прямой линией. Она может иметь различные формы: кривую, гиперболу, параболу и так далее. Примерами нелинейных функций могут служить квадратичная функция (y = x^2), синусоидальная функция (y = sin(x)) или экспоненциальная функция (y = e^x).

    Основное отличие между линейной и нелинейной функцией заключается в том, что линейная функция всегда имеет постоянный наклон на всем своем графике, в то время как нелинейная функция может иметь различный наклон в разных точках. Кроме того, линейная функция всегда проходит через начало координат (то есть имеет значение y = 0 при x = 0), в то время как нелинейная функция может не иметь такого свойства.

    Важно понимать, что в дискретной математике по определению функция не может быть нелинейной. Все функции в этой области математики являются линейными. Таким образом, определить линейность функции в дискретной математике проще, так как это ее особенность.

    Как использовать линейную функцию

    Линейная функция является одной из самых простых и понятных функций в математике. Она представляет собой прямую линию на графике, которая имеет уравнение вида y = mx + b, где m — наклон прямой, а b — точка пересечения с осью y.

    Линейные функции могут использоваться для решения различных задач, например, для вычисления расходов по определенной формуле, для определения зависимости между двумя переменными и для прогнозирования результатов декартовых координат. Кроме того, линейные функции встречаются в многих областях жизни, таких как экономика, физика, инженерия и т.д.

    Для использования линейной функции необходимо знать ее уравнение и значения переменных. Если известны значения x, то можно легко вычислить соответствующие значения y с помощью уравнения функции. Например, если уравнение y = 2x + 3, а значение x = 5, то значение y можно вычислить следующим образом:

    y = 2x + 3

    y = 2 * 5 + 3

    y = 10 + 3

    y = 13

    Таким образом, значение функции при x = 5 будет равно 13.

    Также, с помощью графика можно отслеживать изменения функции при изменении переменных. Например, при изменении наклона прямой в функции y = mx + b, можно увидеть, как изменится положение прямой на графике.

    В общем, использование линейных функций в математике настолько просто и удобно, что они используются практически везде в рамках дискретных математических задач.

    Примеры задач на линейные функции

    Пример 1: Найти уравнение прямой, проходящей через точки (2,3) и (4,7).

      • Найдем угловой коэффициент прямой:

      m = Δy / Δx = (7-3) / (4-2) = 2

        • Найдем свободный коэффициент:

        b = y — mx = 3 — 2*2 = -1

        Пример 2: Определить, является ли функция f(x) = 3x + 2 линейной.

        • Функция f(x) является линейной, если ее уравнение имеет вид y = kx + b.
        • Уравнение функции f(x) имеет вид y = 3x + 2, следовательно, она является линейной.

        Пример 3: Найти точку пересечения двух прямых: y = 2x + 3 и y = -x + 5.

        y = 2x + 3 y = -x + 5
        2x + 3 = -x + 5
        3x = 2
        x = 2/3
        y = 2 * 2/3 + 3 = 4/3 + 9/3 = 13/3
        • Точка пересечения двух прямых имеет координаты (2/3, 13/3).

        Что такое дискретная математика

        Дискретная математика – это раздел математики, который занимается исследованием дискретных объектов и структур, таких как целые числа, конечные множества, комбинаторика, графы и теория кодирования. Главной отличительной чертой дискретной математики является то, что она работает с конечными множествами, а не с бесконечными континуумами, как это делается в дифференциальных и интегральных уравнениях, анализе и других разделах математики.

        Дискретная математика широко применяется в информатике, теории компьютерных наук, криптографии, алгоритмике, теории баз данных, системах передачи данных, телекоммуникациях, искусственном интеллекте и других областях, где важным является работа с абстрактными структурами данных и алгоритмами.

        Среди тем, которые изучаются в дискретной математике, можно выделить такие, как теория множеств, булева алгебра, теория графов, теория чисел, комбинаторика, теория вероятностей и математическая логика. Понимание дискретной математики является необходимым для многих работ в сфере IT и многих других научных областей.

        Применение дискретной математики для определения линейности функции

        Линейная функция является одной из самых простых и базовых функций в математике и экономике. С ее помощью можно рассчитывать, как будет изменяться значение функции в зависимости от ее аргумента. Для определения линейности функции можно использовать дискретную математику.

        Одним из ключевых инструментов дискретной математики является изучение бинарных или двоичных отношений между объектами. В случае функций, бинарное отношение связывает значения аргументов и значений функции. Если при изменении значения аргумента на единицу значение функции также изменяется на постоянную величину, то можно утверждать, что функция линейна.

        Другим способом определения линейности функции является изучение ее производной. Если производная функции постоянна, то можно утверждать, что она линейна. Однако, этот метод предполагает знание математического анализа и производных, что делает его более сложным для понимания для начинающих.

        Таким образом, применение дискретной математики для определения линейности функции является более простым и удобным методом. Оно позволяет быстро и легко определить, является ли функция линейной и использовать эту информацию для дальнейших расчетов и анализа.

        Как использовать знания дискретной математики в реальной жизни

        Дискретная математика — это математическая дисциплина, которая занимается изучением дискретных структур, таких как графы, матрицы, комбинаторика и теория алгоритмов. И хотя некоторые могут думать, что это лишь теоретические концепции, на самом деле знания из этой области очень важны в реальной жизни.

        Например, знания дискретной математики могут быть очень полезны при работе с базами данных. При проектировании баз данных, необходимо правильно организовать данные и связи между ними. И вот здесь на помощь приходят графы и теория алгоритмов.

        Также, знания дискретной математики могут быть полезны при программировании. Многие алгоритмы и структуры данных, используемые в программировании, основаны на принципах дискретной математики. Это может быть полезно, например, при создании приложений для обработки больших объемов данных.

        Наконец, знания дискретной математики могут помочь при решении проблем в бизнесе. Например, при принятии решений о распределении ресурсов, оптимизации производства или создании математических моделей для исследований.

        Таким образом, знания дискретной математики могут быть применимы во многих областях жизни, от технических наук до бизнеса. Рекомендуется изучать эту дисциплину не только для того, чтобы овладеть теоретическими знаниями, но и для того, чтобы применять их на практике.

        Вопрос-ответ:

        Что такое линейная функция в дискретной математике?

        Линейная функция в дискретной математике — это функция, которая имеет вид f(x)=ax+b, где a и b — константы, а x — переменная. Она представляет собой прямую на координатной плоскости.

        Как определить, является ли функция линейной?

        Для того чтобы определить, является ли функция линейной, необходимо проверить, выполняется ли для нее свойство аддитивности и однородности.

        Что такое свойство аддитивности и однородности функции?

        Свойство аддитивности означает, что f(x+y)=f(x)+f(y) для любых x и y. Свойство однородности означает, что f(kx)=kf(x) для любых x и k.

        Как проверить свойство аддитивности линейной функции?

        Для проверки свойства аддитивности необходимо подставить в функцию значения x и y и проверить, совпадает ли сумма f(x)+f(y) с f(x+y).

        Как проверить свойство однородности линейной функции?

        Для проверки свойства однородности необходимо подставить в функцию значение x и константу k и проверить, совпадает ли произведение f(kx) с kf(x).

        Как определить коэффициенты a и b в линейной функции?

        Коэффициент a можно определить, вычислив разность f(x2)-f(x1)/(x2-x1), где x1 и x2 — две различные точки на прямой. Коэффициент b можно определить, подставив в функцию координаты одной из точек и выразив b.

        Как использовать знание о линейных функциях в дискретной математике в повседневной жизни?

        Линейные функции используются в экономике для моделирования производства и продажи товаров, в физике для моделирования движения тел, в статистике для анализа данных и т.д.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *