§ 5. Нумерация наборов чисел и слов
1
0
)
В теории алгоритмов получил распространение прием, позволяющий
сводить изучение функций от нескольких переменных к изучению функций
одной переменной. Он основан на нумерации наборов чисел так, что имеется
биективное соответствие между наборами чисел и их номерами, причем
функции, определяющие по набору чисел его номер и по номеру сам набор чисел
являются общерекурсивными.
Рассмотрим сначала множество
- множество пар натуральных
чисел. Рассмотрим следующее упорядочение этих пар, называемое
NN
0
∗
0
канторовским
:
(0,0),(0,1),(1,0),(0,2),(1,1),(2,0),... (1)
Здесь в порядке возрастания
упорядочиваются пары (x,y)с условием
x+y=n в виде последовательности
nN∈
0
(0,n),(1,n-1),...,(x,y),...,(n,0) (2)
Пусть c(x,y)- номер пары (x,у)в последовательности (1), причем считаем
c(0,0)=0. Если c(x,y)=n , то обозначим через
, - функции, удовлетворяющие: r
l
xln= ()
yrn= ()
и, следовательно,
cl
n rn n(( ),( ))=
Покажем, что функции
в явном виде выра-жаются через обычные
арифметические функции. Произвольная пара (x,у) находится на месте x+1 в
последовательности (2). Далее перед последователь-ностью (2) находятся
последовательности, отвечающие элементам (x
с lr,,
1
,y
1
) с условием x
1
+y
1
=t , где
t=0,1,2,...,x+y-1 , и каждый из них содержит t+1 элемент.
Следовательно, элемент (x,y) находится в после-довательности (1) на месте
1+2+...+x+y+x+1 . Поскольку нумерация начитается с нуля , то номер элемента
(x,y) в последовательности (1) равен
cx
(4)
y
xyxy
x
xy xy
(,)
()( ) ()
=
+++
+=
+++1
2
3
2
2
Пусть теперь c(x,y)=n и найдем
, .
xln
=
() yrn
=
()
Из (4) следуют равенства:
23
2
nxy x=+ ++() y
x
8
81
2 2 1 8
2
nxy+= + + +()
81
2 2 3 8
2
nxy y+= + + − −()
Следовательно
[]
1 8122xy n xy++≤ +<++22
3
или
[]
xy
n
xy++≤
++
<++1
811
2
2
37