Суперпозиция функций (сложная функция). Примитивно рекурсивная функция Линейные булевы функции

Функция f, получаемая из функций f 1 , f 2 ,…f n с помощью операций подстановки и переименования аргументов, называется суперпозицией функций.

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

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

Формулы F i и F j представляющие одну и ту же логическую функцию f i, называются эквивалентными . Так, эквивалентными формулами являются:

1. f 2 (x 1 ; x 2)=(x 1 ×`x 2)=ù(`x 1 Úx 2)= ù(x 1 ®x 2);

2. f 6 (x 1 ; x 2)=(`x 1 ×x 2 Úx 1 ×`x 2)= ù(x 1 «x 2)=(x 1 Åx 2);

3. f 8 (x 1 ; x 2)=(`x 1 ×`x 2)= ù(x 1 Úx 2)=(x 1 ¯x 2);

4. f 14 (x 1 ;x 2)=(`x 1 Ú`x 2)= ù(x 1 ×x 2)=x 1 ½x 2 ;

5. f 9 (x 1 ;x 2)=((`x 1 ×`x 2)Ú(x 1 ×x 2))=(x 1 «x 2) ;

6. f 13 (x 1 ;x 2)= (`x 1 Úx 2)=(x 1 ®x 2).

Если какая-либо формула F содержит подформулу F i , то замена F i на эквивалентную F j не изменяет значения формулы F при любом наборе булевого вектора, но изменяет форму её описания. Вновь полученная формула F` эквивалентна формуле F.

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

При написании формул булевой алгебры следует помнить:

· число левых скобок равно числу правых скобок,

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

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

· логическая связка “×” сильнее логической связки “Ú”,

· если “ù ” относится к формуле (F 1 ×F 2) или (F 1 Ú F 2), то прежде всего следует выполнить эти преобразования по закону де Моргана: ù(F 1 ×F 2)=`F 1 Ú`F 2 или ù(F 1 ÚF 2)=`F 1 ×`F 2 ;

· операция “× ” сильнее “Ú”, что позволяет опускать скобки.

Пример : выполнить эквивалентные преобразования формулы F=x 1 ×x 2 ×x 3 ×`x 4 Ú`x 1 ×x 3 Ú`x 2 ×x 3 Úx 3 ×x 4 .



· по закону коммутативности:

F=x 3 ×x 1 ×x 2 ×`x 4 Úx 3 ×`x 1 Úx 3 ×`x 2 Úx 3 ×x 4 ;

· по закону дистрибутивности:

F=x 3 ×x 1 ×x 2 ×`x 4 Úx 3 ×`x 1 Úx 3 ×(`x 2 Úx 4);

· по закону дистрибутивности:

F=x 3 ×x 1 ×x 2 ×`x 4 Úx 3 ×(`x 1 Ú`x 2 Úx 4);

· по закону дистрибутивности:

F=x 3 ×((x 1 ×x 2 ×`x 4)Ú(`x 1 Ú`x 2 Úx 4));

· по закону де Моргана:

F=x 3 ×((x 1 ×x 2 ×`x 4)Úù(x 1 ×x 2 ×`x 4));

· по закону противоречия:

Таким образом x 1 ×x 2 ×x 3 ×`x 4 Ú`x 1 ×x 3 Ú`x 2 ×x 3 Úx 3 ×x 4 =x 3 .

Пример: выполнить преобразования формулы

F=(x 1 ×`x 2 Ú`x 1 ×x 2)×ù(x 1 ×x 2)Ú(x 1 ×x 2)×ù(x 1 ×`x 2 Ú`x 1 ×x 2);

· по закону де Моргана

F=(x 1 ×`x 2 Ú`x 1 ×x 2)×(`x 1 Ú`x 2)Ú(x 1 ×x 2)×(`x 1 Úx 2)×(x 1 Ú`x 2);

· по закону дистрибутивности:

F=x 1 ×`x 2 Ú`x 1 ×x 2 Úx 1 ×x 2 ;

· по законам коммутативности и дистрибутивности:

F= `x 1 ×x 2 Úx 1 ×(`x 2 Úx 2);

· по закону противоречия:

F= `x 1 ×x 2 Úx 1 ;

· по закону Порецкого

Таким образом (x 1 ×`x 2 Ú`x 1 ×x 2)×ù(x 1 ×x 2)Ú(x 1 ×x 2)×ù(x 1 ×`x 2 Ú`x 1 ×x 2)= (x 2 Úx 1).

Пример: выполнить преобразование формулы F=ù(`x 1 Úx 2)Ú((`x 1 Úx 3)×x 2).

· по закону де Моргана:

F= ù(`x 1 Úx 2)×ù((`x 1 Úx 3)×x 2);

· по закону де Моргана:

F=x 1 ×`x 2 ×(ù(`x 1 Úx 3)Ú`x 2);

· по закону де Моргана:

F=x 1 ×`x 2 ×(x 1 ×`x 3 Ú`x 2);

· по закону дистрибутивности:

F=x 1 ×`x 2 ×`x 3 Úx 1 ×`x 2 ;

· по закону поглощения:

Таким образом ù(`x 1 Úx 2)×((`x 1 Úx 3)×x 2)= x 1 ×`x 2 .

Пример : выполнить преобразование формулы:

F=ù(x 1 ®x 2)×(`x 3 Ú`x 4)Ú(x 1 ¯x 2)×ù(x 3 ×x 4).

1) преобразовать формулу в базис булевой алгебры:

F=ù(`x 1 Úx 2)×(`x 3 Ú`x 4)Úù(x 1 Úx 2)× ù(x 3 ×x 4);

2) опустить знак “` “ до двоичных переменных:

F=(x 1 ×`x 2)×(`x 3 Ú`x 4)Ú(`x 1 ×`x 2)×(`x 3 Ú`x 4);

3) преобразовать формулу по закону дистрибутивности:

F=x 1 ×`x 2 ×`x 3 Úx 1 ×`x 2 ×`x 4 Ú`x 1 ×`x 2 ×`x 3 Ú`x 1 ×`x 2 ×`x 4 ;

4) вынести за скобку `x 2 по закону дистрибутивности:

F=`x 2 ×(x 1 ×`x 3 Úx 1 ×`x 4 Ú`x 1 ×`x 3 Ú`x 1 ×`x 4);

5) преобразовать по закону дистрибутивности:

F=`x 2 ×(`x 3 ×(x 1 Ú`x 1)Ú`x 4 ×(x 1 Ú`x 1));

6) использовать закон противоречия:

F=`x 2 ×(`x 3 Ú`x 4)

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

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

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

самодвойственной , если f(x 1 ;x 2 ;…x n)=`f(`x 1 ;`x 2 ;…`x n).

Например, функции f 3 (x 1 ;x 2)=x 1 , f 5 (x 1 ;x 2)=x 2 , f 10 (x 1 ;x 2)=`x 2 и f 12 (x 1 ;x 2)=`x 1 являются самодвойственными, т. к. при изменении значения аргумента они изменяют свое значение.

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

Монотонные булевы функции

Функция f(x 1 ; x 2 ;…x n) называется монотонной , если для каждого s 1i £s 2i булевых векторов (s 11 ; s 12 ;……;s 1n) и (s 21 ;s 22 ;……;s 2n) выполняется условие: f(s 11 ;s 12 ;…;s 1i ;…;s 1n)£f(s 21 ;s 22 ;…;s 2i ;…;s 2n).

Например, для функций f(x 1 ; x 2) монотонными функциями являются:

если (0; 0)£(0; 1), то f(0; 0)£f(0; 1),

если (0; 0)£(1; 0), то f(0; 0)£f(1; 0),

если (0; 1)£(1; 1), то f(0; 1)£f(1; 1),

если (1; 0)£(1; 1), то f(1; 0)£f(1; 1).

Таким условиям удовлетворяют следующие функции:

f 0 (x 1 ; x 2)=0; f 1 (x 1 ; x 2)=(x 1 ×x 2); f 3 (x 1 ; x 2)=x 1 ; f 5 (x 1 ; x 2)=x 2 ; f 7 (x 1 ;x 2)=(x 1 Úx 2); f 15 (x 1 ; x 2)=1.

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

Линейные булевы функции

Алгебра Жегалкина, опирающаяся на базис F 4 ={×; Å; 1}, позволяет любую логическую функцию представить полиномом, каждый член которого есть конъюнкция I булевых переменных булевого вектора в пределах 0£i£n:

P(x 1 ; x 2 ;…x n)=b 0 ×1 Å b i ×x i Å 1 £ j ¹ k £ n b j ×x j ×x k Å……Å b 2n-1 ×x 1 ×x 2 ×...×x n.

Например, для логических функций f 8 (x 1 ; x 2)

полином Жегалкина имеет вид: P(x 1 ; x 2)=1Å x 1 Å x 2 Å x 1 ×x 2 .

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

Полиномы Жегалкина, не содержащие конъюнкции двоичных переменных, т.е. P(x 1 ; x 2 ;…;x n)=b 0 ×1Åb 1 ×x 1 Å…Åb n ×x n называют линейными .

Например, f 9 (x 1 ; x 2)=1Åx 1 Åx 2 , или f 12 (x 1 ;x 2)=1Åx 1 .

Основные свойства операции сложения по модулю 2 приведены в таблице 1.18.

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

коэффициенты b i полинома Жегалкина, составив систему уравнений по всем известным наборам двоичных переменных.

Пример : дана булева функция f(x 1 ;x 2)=x 1 Úx 2 . Значение этой функции известны для всех наборов булевых переменных.

F(0;0)=0=b 0 ×1Å b 1 ×0 Å b 2 ×0 Å b 3 ×0×0;

f(1;0)=1=b 0 ×1Å b 1 ×1Å b 2 ×0Å b 3 ×1×0;

f(1;1)=1=b 0 ×1Å b 1 ×1Å b 2 ×1Å b 3 ×1×1;

Откуда находим b 0 =0; b 1 =1; b 2 =1; b 3 =1.

Следовательно, (x 1 Úx 2)=x 1 Åx 2 Åx 1 ×x 2 , т. е. дизъюнкция есть нелинейная булева функция.

Пример : дана булева функция f(x 1 ;x 2)=(x 1 ®x 2). Значение этой функции также известны для всех наборов двоичных переменных.

F(0;0)=1=b 0 ×1Å b 1 ×0 Å b 2 ×0 Å b 3 ×0×0;

f(0;1)=1=b 0 ×1Å b 1 ×0 Å b 2 ×1Å b 3 ×0×1;

f(1;0)=0=b 0 ×1Åb 1 ×1Åb 2 ×0Åb 3 ×1×0;

f(1;1)=1=b 0 ×1Åb 1 ×1Åb 2 ×1Åb 3 ×1×1;

Откуда находим b 0 =1; b 1 =1; b 2 =0; b 3 =1.

Следовательно, (x 1 ®x 2)=1Å x 2 Å x 1 ×x 2 .

В таблице 1.19 приведены полиномы Жегалкина для основных представителей булевых функций из таблицы 1.15.

Если дано аналитическое выражение логической функции и неизвестны ее значения для различных наборов двоичных переменных, то можно построить полином Жегалкина, опираясь на конъюнктивный базис алгебры Буля F 2 ={` ; ×}:

Пусть f(x 1 ; x 2)=(x 1 Úx 2).

Тогда (x 1 Úx 2)=ù(`x 1 ×`x 2)=((x 1 Å 1)×(x 2 Å 1))Å 1=x 1 ×x 2 Å x 1 ×1Å x 2 ×1Å 1×1Å1=

(x 1 Åx 2 Åx 1 ×x 2).

Пусть f(x 1 ;x 2)=(x 1 ®x 2).

Тогда (x 1 ®x 2)=(`x 1 Úx 2)=ù(x 1 ×`x 2)=x 1 ×(x 2 Å 1)Å 1=x 1 ×x 2 Å x 1 ×1Å 1= =(1Åx 1 Åx 1 ×x 2).

Пусть f(x 1 ;x 2)=(x 1 «x 2).

Тогда (x 1 «x 2)=(`x 1 ×`x 2 Úx 1 ×x 2)=ù(ù(`x 1 ×`x 2)×ù(x 1 ×x 2))=(((x 1 Å1)×(x 2 Å1))Å1)× ×(x 1 ×x 2 Å)Å1=(x 1 ×x 2 Åx 1 Åx 2 Å1Å1)×(x 1 ×x 2 Å1)Å1=x 1 ×x 2 Åx 1 ×x 2 Åx 1 ×x 2 Åx 1 Å

x 1 ×x 2 Åx 2 Å1=(1Åx 1 Åx 2).

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

1.5.6.4. Функции, сохраняющие “0”

Функция f(x 1 ; x 2 ;...x n) называется сохраняющей “0”, если для наборов значений двоичных переменных (0; 0;...0) функция принимает значение f(0; 0;…0)=0.

Например, f 0 (0; 0)=0, f 3 (0; 0)=0, f 7 (0; 0)=0 и др.

Любая функция, полученная с помощью операции суперпозиции из функций, сохраняющих “0”, сама является функцией, сохраняющей “0” Поэтому множество функций, сохраняющих “0”, не позволяет формировать функции, не сохраняющие “0”.

1.5.6.5. Функции, сохраняющие “1”

Функция f(x 1 ; x 2 ;…x n) называется сохраняющей “1”, если для наборов значений двоичных переменных (1; 1;…1) функция принимает значение f(1;1;…1)=1.

Например, f 1 (1; 1)=1, f3(1; 1)=1, f 5 (1; 1)=1 и др.

Любая функция, полученная с помощью операции суперпозиции из функций, сохраняющих “1”, сама является сохраняющей “1”. Поэтому множество функций, сохраняющих “1”, не позволяет формировать функции, не сохраняющие “1”.

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

можно переименовать любую переменную, входящую в функцию из K ;

вместо любой переменной можно поставить функцию из набора K или уже образованную ранее суперпозицию.

Суперпозицию еще иначе называют сложной функцией.

Пример 7. 1. Если дана одна функция х |y (штрих Шеффера), то ее суперпозициями, в частности, будут следующие функции x|x , x| (x|y ), x| (y|z ) и т. д.

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

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

Неизбыточный полный набор функций называется базисом (“неизбыточный” означает, что если какую-то функцию удалить из набора, то этот набор перестанет быть полным).

Пример 7.2. Конъюнкция, дизъюнкция и отрицание являются полным набором (в этом убедились в разд. 5), но не являются базисом, так как это набор избыточен, поскольку с помощью правил де Моргана можно удалить конъюнкцию или дизъюнкцию. Любую функцию можно представить в виде полинома Жегалкина (разд. 6). Ясно, что функции конъюнкция, сложение по модулю 2 и константы 0 и 1 являются полным набором, но эти четыре функции также не являются базисом, поскольку 1+1=0, и поэтому константу 0 можно исключить из полного набора (для построения полиномов Жегалкина константа 0 необходима, поскольку выражение “1+1” не является полиномом Жегалкина).

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

Существуют такие функции, что одна такая функция сама является базисом (здесь достаточно проверить только полноту, неизбыточность очевидна). Такие функции называются шефферовскими функциями. Это название связано с тем, что штрих Шеффера является базисом. Напомним, что штрих Шеффера определяется следующей таблицей истинности:

Так как очевидно , т. е. отрицание является суперпозицией штриха Шеффера, а дизъюнкция тогда , штрих Шеффера сам является базисом. Аналогично, стрелка Пирса является шефферовской функцией (студенты могут проверить это сами). Для функций 3-х или более переменных шефферовских функций очень много (конечно, выражение других булевых функций через шефферовскую функцию большого числа переменных сложно, поэтому в технике они редко используются).

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

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

  • Т 0 - это набор всех тех логических функций, которые на нулевом наборе принимают значение 0 (Т 0 - это класс функций, сохраняющих 0);
  • Т 1 - это набор всех логических функций, которые на единичном наборе принимают значение 1 (Т 1 - это класс функций, сохраняющих единицу ) (заметим, что число функций от п переменных принадлежащих классам Т 0 и Т 1 равно 2 2n-1);
  • L - класс линейных функций т. е. функций, для которых полином Жегалкина содержит только первые степени переменных;
  • М - класс монотонных функций. Опишем класс этих функций более подробно. Пусть имеются 2 набора из п переменных: s1 = (x 1 , x 2 ,..., x n)

s 1 = (х 1 , х 2 , , х п ) и s 2 = (y 1 , y 2, , y п) . Будем говорить, что набор s 1 меньше набора s 2 (s 1 £ s 2 ), если все х i £ y i . Очевидно, что не все наборы из п переменных сравнимы между собой (например, при п = 2 наборы (0,1) и (1,0) не сравнимы между собой). Функция от п переменных называется монотонной , если на меньшем наборе она принимает меньшее или равное значение. Разумеется, эти неравенства должны проверяться только на сравнимых наборах. Понятно, что несравнимые наборы - это те, в которых есть некоторые координаты типа (0,1) в одном наборе и (1,0) в другом на соответствующих местах (в дискретной математике монотонные функции это только как бы “монотонно возрастающие функции”, “монотонно убывающие” функции здесь не рассматриваются).

Пример. В нижеследующей таблице функции f 1 , f 2 являются монотонными функциями, а функции f 3 , f 4 - нет.

Естественный порядок переменных обеспечивает тот факт, что если какой-то набор меньше другого набора, то он обязательно расположен в таблице истинности выше “большего” набора. Поэтому если в таблице истинности () вверху стоят нули , а затем единицы , то эта функция точно является монотонной . Однако возможны инверсии, т. е. единица стоит до каких-то нулей , но функция является все равно монотонной (в этом случае наборы, соответствующие “верхней” единице и “нижнему” нулю должны быть несравнимы ; можно проверить, что функция, задаваемая таблицей истинности при естественном порядке набора переменных (00010101), является монотонной);

Теорема . Классы функций Т 0 , Т 1 , L , M , S замкнуты .

Это утверждение следует непосредственно из определения самих этих классов, а также из определения замкнутости.

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

Теорема Поста . Для того чтобы некоторый набор функций K был полным, необходимо и достаточно, чтобы в него входили функции, не принадлежащие каждому из классов T 0 , T 1 , L , M , S .

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

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

Из этой теоремы следует довольно простой способ выяснения полноты некоторого набора функций. Для каждой из этих функций выясняется принадлежность к перечисленным выше классам. Результаты заносятся в так называемую таблицу Поста (в нашем примере эта таблица составлена для 4-х функций, причем знаком “+” отмечается принадлежность функции соответствующему классу, знак “-” означает, что функция в него не входит).

В соответствии с теоремой Поста набор функций будет полным тогда и только тогда, когда в каждом столбце таблицы Поста имеется хотя бы один минус. Таким образом, из приведенной таблицы следует, что данные 4 функции образуют полный набор, но эти функции не являются базисом. Из этих функций можно образовать 2 базиса: f 3 , f 1 и f 3 , f 2 . Полными наборами будут любые наборы содержащие, какой-либо базис.

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

Познакомимся с понятием суперпозиции (или наложения) функций, которая состоит в том, что вместо аргумента данной функции подставляется некоторая функция от другого аргумента. Например, суперпозиция функций даёт функцию аналогично получаются и функции

В общем виде, предположим, что функция определена в некоторой области а функция определена в области причем значения ее все содержатся в области Тогда переменная z, как говорят, через посредство у, и сама является функцией от

По заданному из сначала находят соответствующее ему (по правилу, характеризуемому знаком значение у из У, а затем устанавливают соответствующее этому значению у (по правилу,

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

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

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

Здесь функция оказалась заданной в виде сложной функции.

Теперь, когда полностью выяснено понятие суперпозиции функций, мы можем точно охарактеризовать простейший из тех классов функций, которые изучаются в анализе: это, прежде всего, перечисленные выше элементарные функции а затем - все те, которые из них получаются с помощью четырёх арифметических действий и суперпозиций, последовательно применённых конечное число раз. Про них говорят, что они выражаются через элементарные в конечном виде; иногда их все также называют элементарными.

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


Суперпозиция функций

Суперпозицией функций f1, …, fm называется функция f, полученная с помощью подстановок этих функций друг в друга и переименования переменных.

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

Областью определения суперпозиции является множество.

Функция называется внешней, а -внутренней функцией для суперпозиции.

Функции, представленные в виде композиции "более простых", называются сложными функциями.

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

Рекурсивные функции

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

Примитивно рекурсивная функция

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

К числу базовых примитивно рекурсивных функций относятся функции следующих трёх видов:

Нулевая функция-- функция без аргументов, всегда возвращающая0 .

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

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

Операторы подстановки и примитивной рекурсии определяются следующим образом:

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

Оператор примитивной рекурсии. Пусть -- функция от n переменных, а -- функция от переменных. Тогда результатом применения оператора примитивной рекурсии к паре функций и называется функция от переменной вида;

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

Множество примитивно рекурсивных функций -- это минимальное множество, содержащее все базовые функции и замкнутое относительно указанных операторов подстановки и примитивной рекурсии.

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

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

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

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

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

Построить функцию

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

Преимущества построения графиков онлайн

  • Визуальное отображение вводимых функций
  • Построение очень сложных графиков
  • Построение графиков, заданных неявно (например эллипс x^2/9+y^2/16=1)
  • Возможность сохранять графики и получать на них ссылку, которая становится доступной для всех в интернете
  • Управление масштабом, цветом линий
  • Возможность построения графиков по точкам, использование констант
  • Построение одновременно нескольких графиков функций
  • Построение графиков в полярной системе координат (используйте r и θ(\theta))

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