23

Частично рекурсивные функции

[26/100%]
Показать
LaTeX
Задача 558

Пусть заданы три функции: f(x,y,z)=xy+z,g(x,y)=2x+yf(x, y, z)=x y+z, g(x, y)=2 x+y, h(x)=2x2h(x)=2 x^{2}. Определить, какой будет функция F(2)F^{(2)}, задаваемая так: f(h(id⁡12),g(h(id⁡22),id⁡22),id⁡22)f\left(h\left(\operatorname {id}_{1}^{2}\right), g\left(h\left(\operatorname {id}_{2}^{2}\right), \operatorname {id}_{2}^{2}\right), \operatorname {id}_{2}^{2}\right)? ⊛\circledast

?
Задача 559

Определить, чему равно значение следующих о.р.ф.:

?
(а)

f=Pr⁡[0,s(id⁡12+id⁡12)+id⁡22]f=\operatorname {Pr}\left[0, s\left(\operatorname {id}_{1}^{2}+\operatorname {id}_{1}^{2}\right)+\operatorname {id}_{2}^{2}\right];

(б)

f=Pr⁡[0,s(id⁡12)+s(id⁡12)+id⁡22]f=\operatorname {Pr}\left[0, s\left(\operatorname {id}_{1}^{2}\right)+s\left(\operatorname {id}_{1}^{2}\right)+\operatorname {id}_{2}^{2}\right];

(в)

f=Pr⁡[0,s(3⋅id⁡12⋅s(id⁡12))+id⁡22]f=\operatorname {Pr}\left[0, s\left(3 \cdot \operatorname {id}_{1}^{2} \cdot s\left(\operatorname {id}_{1}^{2}\right)\right)+\operatorname {id}_{2}^{2}\right]. ⊛\circledast

Задача 560

О. р. ф. f(x)f(x) задана следующим образом:

Pr⁡[0,s(id⁡12)+s(id⁡12)+id⁡12+id⁡12+id⁡22+id⁡22]. \operatorname {Pr}\left[0, s\left(\operatorname {id}_{1}^{2}\right)+s\left(\operatorname {id}_{1}^{2}\right)+\operatorname {id}_{1}^{2}+\operatorname {id}_{1}^{2}+\operatorname {id}_{2}^{2}+\operatorname {id}_{2}^{2}\right].

Доказать, что f(x)=3⋅2x+1−4x−6f(x)=3 \cdot 2^{x+1}-4 x-6. ⊛\circledast

?
Задача 561

Найти значение F(5)F(5) для следующих функций:

?
(а)

F=Pr⁡[1,h]F=\operatorname {Pr}[1, h], где h(y,z)=⌊2z/z2⌋h(y, z)=\left\lfloor 2^{z} / z^{2}\right\rfloor;

(б)

F=Pr⁡[1,h]F=\operatorname {Pr}[1, h], где h(y,z)=⌊2z/z⌋h(y, z)=\left\lfloor 2^{z} / z\right\rfloor;

(в)

F=Pr⁡[2,h]F=\operatorname {Pr}[2, h], где h(y,z)=3z÷(2y+1)h(y, z)=3 z \div (2 y+1). ⊛\circledast

Задача 562

Показать, что следующие функции являются о. р. ф.:

?
(а)

pow⁡(x,y)=xy\operatorname {pow}(x, y)=x^{y} — возведение в степень;

(б)

fact⁡(x)=x!\operatorname {fact}(x)=x! — факториал;

(в)

if⁡(x,y,z)\operatorname {if}(x, y, z) — условная операция,

if⁡(x,y,z)={y, если x≠0z, иначе  \operatorname {if}(x, y, z)= \begin{cases} y, & \text{ если } x \neq 0 \\ z, & \text{ иначе }\end{cases}
(г)

min⁡(n)(x1,…,xn)\min^{(n)}\left(x_{1}, \ldots , x_{n}\right) — наименьший из аргументов, n>0n>0;

(д)

max⁡(n)(x1,…,xn)\max^{(n)}\left(x_{1}, \ldots , x_{n}\right) — наибольший из аргументов, n>0n>0;

(е)

diff⁡=∣x−y∣\operatorname {diff}=\left|x-y\right| — модуль разности;

(ж)

 mod (x,y)\bmod (x, y) — остаток от деления xx на yy;

(з)

div⁡(x,y)=⌊x/y⌋\operatorname {div}(x, y)=\lfloor x / y\rfloor — целочисленное частное. ⊛\circledast

Задача 563

Доказать, что если функция f(x1,…,xn)f\left(x_{1}, \ldots , x_{n}\right) является ч.р. ф., то и функция g(x1,…,xn)=f(xi1,…,xin)g\left(x_{1}, \ldots , x_{n}\right)=f\left(x_{i_{1}}, \ldots , x_{i_{n}}\right) является ч.р. ф. для каждой перестановки (i1,…,in)(i_{1}, \ldots , i_{n}) чисел 1,2,…,n1,2, \ldots , n. ⊛\circledast

?
Задача 564

Говорят, что функция h(n+1)h^{(n+1)} получена ограниченной минимизацией функции f(n+1)f^{(n+1)} (это обозначается h=μlim⁡fh=\mu_{\lim } f), если h(xˉ,y)=yh(\bar{x}, y)=y, когда f(xˉ,y)≠0f(\bar{x}, y) \neq 0 для всех z<yz<y, иначе h(xˉ,y)h(\bar{x}, y) равняется наименьшему z<yz<y, для которого f(xˉ,z)=0f(\bar{x}, z)=0. Доказать, что функцию μlim⁡f\mu_{\lim } f можно построить из ff и базисных функций при помощи суперпозиции и примитивной рекурсии. ⊛\circledast

?
Задача 565

Пусть g(x1,…,xn−1,xn)g\left(x_{1}, \ldots , x_{n-1}, x_{n}\right) — ч.р.ф., aa и b>0b>0 — натуральные числа. Доказать, что функция

f(x1,…,xn−1,xn)={a, если xn<bg(x1,…,xn−1,xn−b), если xn⩾b f\left(x_{1}, \ldots , x_{n-1}, x_{n}\right)= \begin{cases} a, & \text{ если } x_{n}<b \\ g\left(x_{1}, \ldots , x_{n-1}, x_{n}-b\right), & \text{ если } x_{n} \geqslant b\end{cases}

тоже является ч.р.ф. ⊛\circledast

?
Задача 566

Найти значение F(9)F(9) и F(17)F(17) для F=μfF=\mu f и следующих функций f(2)f^{(2)}. Определить, для какой из них будет выполнено F(x)=⌊x⌋F(x)=\lfloor \sqrt{x}\rfloor :

?
(а)

f(x,y)=y2÷xf(x, y)=y^{2} \div x;

(б)

f(x,y)=x÷y2f(x, y)=x \div y^{2};

(в)

f(x,y)=(x+1)÷y2f(x, y)=(x+1) \div y^{2};

(г)

f(x,y)=(x+1)÷(y+1)2f(x, y)=(x+1) \div (y+1)^{2};

(д)

f(x,y)=x÷(y+1)2f(x, y)=x \div (y+1)^{2}. ⊛\circledast

Задача 567

Определить, для какой из следующих функций f(3)f^{(3)} будет выполнено F(x)=⌊y/x⌋F(x)=\lfloor y / x\rfloor, где F=μfF=\mu f и x≠0x \neq 0 :

?
(а)

f(x,y,i)=y÷ixf(x, y, i)=y \div i x;

(б)

f(x,y,i)=y÷(i+1)xf(x, y, i)=y \div (i+1) x;

(в)

f(x,y,i)=(y+1)÷ixf(x, y, i)=(y+1) \div i x;

(г)

f(x,y,i)=(y+1)÷i(x+1)f(x, y, i)=(y+1) \div i(x+1);

(д)

f(x,y,i)=(y+1)÷(i+1)xf(x, y, i)=(y+1) \div (i+1) x. ⊛\circledast

Задача 568

Какие из следующих выражений определяют количество τ(x)\tau (x) различных делителей числа xx?

?
(а)

x−∑i<xtest⁡( mod (x,s(i)))x-\sum_{i<x} \operatorname {test}(\bmod (x, s(i)));

(б)

x−∑i<xnot⁡( mod (x,s(i)))x-\sum_{i<x} \operatorname {not}(\bmod (x, s(i)));

(в)

∑i<xtest⁡( mod (x,s(i)))\sum_{i<x} \operatorname {test}(\bmod (x, s(i)));

(г)

∑i<xnot⁡( mod (x,s(i)))\sum_{i<x} \operatorname {not}(\bmod (x, s(i))). ⊛\circledast

Задача 569

Показать, что следующие функции являются ч.р. ф.:

?
(а)

rt⁡(n,x)=⌊xn⌋\operatorname {rt}(n, x)=\lfloor \sqrt[n]{x}\rfloor — целая часть корня nn-й степени из xx;

(б)

log⁡(i,x)=⌊log⁡ix⌋\log (i, x)=\left\lfloor \log_{i} x\right\rfloor;

(в)

p(x)=1p(x)=1, если xx — простое число, и p(x)=0p(x)=0 в противном случае;

(г)

pn⁡(k)−k\operatorname {pn}(k)-k-е простое число в порядке возрастания, pn⁡(0)=2\operatorname {pn}(0)=2;

(д)

σ(x)\sigma (x) — сумма делителей числа xx, считать, что σ(0)=0\sigma (0)=0;

(е)

digit⁡(n,m,i)\operatorname {digit}(n, m, i) - ii-я цифра в mm-ичном представлении числа nn : то есть если n=∑i=0∞aimin=\sum_{i=0}^{\infty } a_{i} m^{i}, где 0⩽ai<m0 \leqslant a_{i}<m, то digit⁡(n,m,i)=ai\operatorname {digit}(n, m, i)=a_{i};

(ж)

НОД(x,y)(x, y) — наибольший общий делитель чисел xx и yy. ⊛\circledast

Задача 570

Определить ч. р. ф. l(1)l^{(1)}, значение которой равно log⁡2x\log_{2} x, когда xx является степенью двойки, и неопределено в противном случае. ⊛\circledast

?
Задача 571

На евклидовой координатной плоскости дан круг CC с центром в точке (100,100)(100,100) радиусом 50. Доказать, что следующая функция r(2)r^{(2)} является частично рекурсивной: r(x,y)r(x, y) определено тогда и только тогда, когда точка (x,y)(x, y) находится вне круга CC, при этом её значение равно целой части расстояния от (x,y)(x, y) до круга (то есть до ближайшей к (x,y)(x, y) точки круга CC). ⊛\circledast

?
Задача 572

О. р. ф., которая может быть построена без использования минимизации, называется примитивно рекурсивной. Пусть функции gg и ff примитивно рекурсивны, h=μg,h−h=\mu g, h- о. р. ф., и hh мажорируется функцией f:h(xˉ)<f(xˉ)f: h(\bar{x})<f(\bar{x}) для всех xˉ\bar{x}. Доказать, что hh тоже является примитивно рекурсивной. ⊛\circledast

?
Задача 573

Доказать, что если значения о. р. ф. f(x)f(x) изменить на конечном множестве, то получившаяся функция f′(x)f^{\prime }(x) также будет о. р. ф. ⊛\circledast

?
Задача 574

Доказать, что из константы 0 и функций id⁡mn\operatorname {id}_{m}^{n} с помощью суперпозиции и примитивной рекурсии нельзя получить функцию s(x)=x+1s(x)=x+1 и функцию d(x)=2xd(x)=2 x. Указание. Индукцией по построению функции доказать, что для всех таким образом построенных функций выполнено неравенство f(x1,…,xn)<2f\left(x_{1}, \ldots , x_{n}\right)<2 для произвольных x1,…,xn<2x_{1}, \ldots , x_{n}<2. ⊛\circledast

?
Задача 575

Пусть ff — взаимно однозначная на ω\omega о.р. ф. Доказать, что обратная функция f−1f^{-1} тоже является о.р. ф., явно её построив. ⊛\circledast

?
Задача 576

Пусть g(x1,…,xn,y)g\left(x_{1}, \ldots , x_{n}, y\right) — о. р. ф. Доказать, что функция

f(x1,…,xn,y,z)={∑i=0zg(x1,…,xn,y+i), при y⩽z,0, при y>z f\left(x_{1}, \ldots , x_{n}, y, z\right)= \begin{cases} \sum _{i=0}^{z} g\left(x_{1}, \ldots , x_{n}, y+i\right), & \text{ при } y \leqslant z, \\ 0, & \text{ при } y>z\end{cases}

общерекурсивна. ⊛\circledast

?
Задача 577

Доказать, что если функции f(x1,…,xn,y),g(x1,…,xn,y)f\left(x_{1}, \ldots , x_{n}, y\right), g\left(x_{1}, \ldots , x_{n}, y\right) и h(x1,…,xn,y)h\left(x_{1}, \ldots , x_{n}, y\right) общерекурсивны, то функция

\begin{aligned} & F\left(x_{1}, \ldots , x_{n}\right)=\min \left\{ y: f\left(x_{1}, \ldots , x_{n}, y\right)=0 \text{ или } \\ & \quad g\left(x_{1}, \ldots , x_{n}, y\right)>h\left(x_{1}, \ldots , x_{n}, y\right)\right\} \end{aligned}

является ч.р.ф. ⊛\circledast

?
Задача 578

Допустим, что все пары (x,y)(x, y) натуральных чисел упорядочены по возрастанию суммы x+yx+y, а пары с одинаковой суммой — по возрастанию координаты xx. Этот порядок выглядит так:

(0,0),(0,1),(1,0),(0,2),(1,1),(2,0),……,(0,x+y),(1,x+y−1),…,(x,y),…,(x+y,0),… \begin{aligned} & (0,0),(0,1),(1,0),(0,2),(1,1),(2,0), \ldots \\ & \quad \ldots ,(0, x+y),(1, x+y-1), \ldots ,(x, y), \ldots ,(x+y, 0), \ldots \end{aligned}

Пусть ⟨x,y⟩\langle x, y\rangle — это номер пары (x,y)(x, y) в этом порядке (будем считать, что пара (0,0) имеет номер 0). Тогда функция ⟨,⟩\langle ,\rangle взаимно однозначно нумерует все пары натуральных чисел.

?
(а)

Доказать, что ⟨x,y⟩=(x+y)(x+y+1)2+x\langle x, y\rangle =\frac{(x+y)(x+y+1)}{2}+x.

(б)

Найти обратные функции ⟨⟩1\langle \rangle_{1} и ⟨⟩2\langle \rangle_{2} такие, что будут выполнены равенства ⟨⟨x,y⟩⟩1=x,⟨⟨x,y⟩⟩2=y\langle \langle x, y\rangle \rangle_{1}=x,\langle \langle x, y\rangle \rangle_{2}=y и, следовательно, ⟨⟨z⟩1,⟨z⟩2⟩=z\langle \langle z\rangle_{1},\langle z\rangle_{2}\rangle =z.

(в)

Показать, что все эти функции общерекурсивны.

Задача 579

Показать, что функция F(x)F(x) из задачи 547 на стр. 168 является o. p. ф.

Указание. Показать сначала, что функция g(x)=⟨F(x),F(x+1)⟩g(x)=\langle F(x), F(x+1)\rangle является о. р. ф. ⊛\circledast

?
Задача 580

Другая функция, позволяющая нумеровать пары натуральных чисел, выглядит так: c(x,y)=2x(2y+1)−1c(x, y)=2^{x}(2 y+1)-1. Доказать, что сама cc и обратные к ней функции c1c_{1} и c2c_{2} (то есть c1(c(x,y))=xc_{1}(c(x, y))=x и c2(c(x,y))=yc_{2}(c(x, y))=y) являются общерекурсивными. ⊛\circledast

?
Задача 581

Если задана взаимно однозначная нумерация пар kk (например, из задач 578 или 580), то можно индуктивно пронумеровать упорядоченные nn-ки произвольной длины:

K()=0K(x1,…,xn,xn+1)=k(k(k1(K(x1,…,xn)),xn+1),n+1) \begin{aligned} K() & =0 \\ K\left(x_{1}, \ldots , x_{n}, x_{n+1}\right) & =k\left(k\left(k_{1}\left(K\left(x_{1}, \ldots , x_{n}\right)\right), x_{n+1}\right), n+1\right) \end{aligned}
?
(а)

Доказать, что функция KK взаимно однозначна.

(б)

Доказать, что функции K(n)(x1,…,xn)K^{(n)}\left(x_{1}, \ldots , x_{n}\right) общерекурсивны.

(в)

Доказать, что обратная к KK функция K′K^{\prime } тоже является общерекурсивной: ⊛\circledast

K′(K(x0,…,xn),m)={xm, при m⩽n,0, иначе.  K^{\prime }\left(K\left(x_{0}, \ldots , x_{n}\right), m\right)= \begin{cases} x_{m}, & \text{ при } m \leqslant n, \\ 0, & \text{ иначе. }\end{cases}
Задача 582

Ещё один способ кодирования конечных последовательностей натуральных чисел использует двоичную запись: последовательность (n0,n1,…,nk)\left(n_{0}, n_{1}, \ldots , n_{k}\right) кодируется двоичным числом 1nk01nk−10…01n101n01^{n_{k}} 01^{n_{k-1}} 0 \ldots 01^{n_{1}} 01^{n_{0}} (последовательности, которые получаются добавлением или удалением конечных нулей, не различаются).

?
(а)

Найти коды последовательностей (2,3,0,1)(2,3,0,1) и (0,0,2,1,2)(0,0,2,1,2).

(б)

Определить, кодами каких последовательностей являются числа 169 и 19783.

(в)

Доказать, что функция k(x,y)k(x, y) является общерекурсивной. Здесь xx — код последовательности, yy — номер элемента, значение функции равно этому элементу. ⊛\circledast

Задача 583

Функция Аккермана задана следующим образом:

A(0,y)=y+1A(x+1,0)=A(x,1)A(x+1,y+1)=A(x,A(x+1,y)) \begin{aligned} A(0, y) & =y+1 \\ A(x+1,0) & =A(x, 1) \\ A(x+1, y+1) & =A(x, A(x+1, y)) \end{aligned}
?
(а)

Найти A(1,y)A(1, y) и A(2,y)A(2, y) для всех натуральных yy.

(б)

Доказать, что A(3,y)=2y+3−3A(3, y)=2^{y+3}-3.

(в)

Доказать, что функция Аккермана является общерекурсивной. Указание. С помощью функций KK и K′K^{\prime } (задача 581 на противоположной странице) строить последовательности (x1,x2,…,xn,z)(x_{1}, x_{2}, \ldots , x_{n}, z) такие, что ⊛\circledast

A(x,y)=A(x1,A(x2,…,A(xn,z)…)). A(x, y)=A\left(x_{1}, A\left(x_{2}, \ldots , A\left(x_{n}, z\right) \ldots \right)\right).