
- •Практикум Теория алгоритмов и сложность вычислений.
- •0 Иначе
- •0 Иначе
- •0 Иначе
- •0 Иначе
- •5. Целая часть от деления аргумента X на y
- •6. Остаток от деления аргумента X на y
- •7. Число различных делителей X (включая число 1)
- •1. Экспонента числа px в числе y
- •2. Квадратичный остаток числа X
- •3. Нумерация пар чисел
6. Остаток от деления аргумента X на y
rest (x,y)
Чтобы иметь дело с всюду определенными функциями, дополнительно положим, что
rest (x, 0)=x для всех x. Ясно, что так определенная функция связана с только что доказанной функцией div (x,y) тождеством
rest
(x,y)=x
(y ∙ div (x,y) )
и, значит, из примитивной рекурсивности функции div (x,y) напрямую вытекает и примитивная рекурсивность функции rest (x, y).
7. Число различных делителей X (включая число 1)
nd x
Говорят, что число x делится (без остатка) на число y, или что y делит x, если rest (x,y)=0.
Тогда соотношение nd x = unsg (rest(x,i))) (i =0..x)
Если x≠0, то делители числа x не превосходят x и потому для положительных значений x число nd x совпадает с числом различных делителей x (включая число 1). Из формулы видно, что функция nd примитивно рекурсивна.
8. (n+1)-е простое число в натуральном ряде чисел
pn
В арифметике натуральное число x называется простым, если оно имеет точно 2 различных делителя. Число 0 имеет бесконечно много, а число 1 лишь один делитель. Поэтому 0 и 1 – не простые числа. Для простых чисел 2, 3, 5, 7, … введем стандартные обозначения p0=2, p1=3,… Таким образом, pn есть (n+1)-е простое число в натуральном ряде чисел.
Обозначим через χp (n) характеристическую функцию свойства быть простым числом. Иначе говоря, положим χp (n)=0 для n простого и χp (n) = 1 для n непростого. Так как простые числа и только они имеют ровно 2 делителя, то
χp (x)=sg (nd x-2)
и, следовательно, функция χp (x) примитивно рекурсивна.
Одной из наиболее известных арифметических функций являются функция π (x), равная числу простых чисел, не превосходящих x. Формула
(x)= (unsg χp(i)) (i =0..x)
gоказывает, что функция π (x) примитивно рекурсивна.
Из определения функции π (x) непосредственно следует, что
π (pn)=n+1
π (x)<n+1, если x<pn
Отсюда видно, что x=pn есть минимальное решение уравнения π (x)=n+1. Поэтому
pn=p(n)=μx(׀ π (x)-(n+1)׀=0).
Стоящая под знаком μ-операции функция ׀ π (x)-(n+1)׀ примитивно рекурсивна. В силу теоремы о мажорируемых неявных функциях для доказательства примитивной рекурсивности функции p(n) остается лишь найти примитивно рекурсивную функцию α(n) такую, чтобы для всех n было pn<= α(n). Из теории чисел хорошо известно, что в качестве функции α(n) можно взять 22n.
В самом деле, требующееся нам неравенство
pn<=22n
заведомо истинно при n=0. По индукции далее предполагаем, что неравенство истинно для всех значений n, меньших некоторого числа s+1. Докажем, что оно истинно и для n=s+1.
По предположению имеем
p0p1…ps+1<= 220+21+…+2s+1<22s+1
Число a=p0p1…ps+1 больше 1 и потому должно иметь какой-то простой делитель pr. Этот делитель не может совпадать ни с одним из простых чисел p0, p1 ,…, ps, так как при делении числа a на любое из чисел p0, p1 , … , ps получаем остаток 1. Но все простые числа, не превосходящие ps, содержатся в последовательности p0, p1 , …, ps. Число pr в нее не входит и потому ps+1<=pr. Так как pr<=a, то
Ps+1<= a <= 22s+1
что и требовалось.
Итак, неравенство доказано, а вместе с ним доказана и примитивная рекурсивность функции p(x)=px.
СЕМИНАР 13
Примитивная рекурсивность функций (окончание).