Это невозможно.
Вызов функции f : Z -> Z
в конечном итоге полином , если существует полином p
с целочисленными коэффициентами и порогом t
, таким образом, что для каждого x > t
мы имеем f(x) = p(x)
. Пусть d(x) = [x/2]
будет делением пола на два. d
не является в конечном итоге полиномом, потому что разностная последовательность d
имеет бесконечно много нулей (f(2y) = y = f(2y+1)
для всех y
), тогда как разностная последовательность каждого непостоянного полинома имеет конечное число. Достаточно показать, что все реализуемые функции в конечном итоге являются полиномами.
Доказательство проводится структурной индукцией. 0
и 1
являются полиномами. Нетрудно показать, что суммы, произведения и различия в конечном итоге полиномиальных функций в конечном итоге являются полиномами: используйте максимум двух порогов и тот факт, что множество полиномов замкнуто при этих операциях. Все, что остается, это закрытие под max
.
Пусть f
будет в конечном итоге многочленом через многочлен p
, а g
будет в конечном итоге многочленом через многочлен q
. Если p = q
, то ясно, что x |-> max(f(x), g(x))
в конечном итоге является полиномом через тот же полином. В противном случае обратите внимание, что p - q
имеет конечное число реальных корней. Устанавливая порог на верхнюю границу для корней, мы наблюдаем, что функция max в конечном итоге становится полиномиальной через p
или q
, поскольку другой случай max здесь никогда не срабатывает.