Jump to content

Рекурсия курса значений

В теории вычислимости рекурсия курса значений — это метод определения теоретико-числовых функций с помощью рекурсии . При определении функции f с помощью рекурсии курса значений значение f ( n ) вычисляется из последовательности .

Тот факт, что такие определения могут быть преобразованы в определения с использованием более простой формы рекурсии, часто используется для доказательства того, что функции, определенные с помощью рекурсии по ходу значений, являются примитивно-рекурсивными . В отличие от рекурсии хода значений, в примитивной рекурсии для вычисления значения функции требуется только предыдущее значение; например, для 1-арной примитивно-рекурсивной функции g значение g ( n +1) вычисляется только из g ( n ) и n .

Определение и примеры

[ редактировать ]

Функция факториала n ! рекурсивно определяется по правилам

Эта рекурсия является примитивной рекурсией , поскольку она вычисляет следующее значение ( n +1)! функции на основе значения n и предыдущего значения n ! функции. С другой стороны, функция Fib( n ), которая возвращает n- е число Фибоначчи , определяется с помощью уравнений рекурсии

Чтобы вычислить Fib( n последних +2), необходимы два значения функции Fib. Наконец, рассмотрим функцию g, определенную с помощью рекурсивных уравнений

Чтобы вычислить g ( n все предыдущие значения g +1) с помощью этих уравнений, необходимо вычислить ; никакое фиксированное конечное число предыдущих значений вообще не является достаточным для вычисления g . Функции Fib и g являются примерами функций, определяемых рекурсией курса значений.

В общем, функция f определяется рекурсией курса значений если существует фиксированная примитивно-рекурсивная функция h такая, что для всех n ,

где число Гёделя, кодирующее указанную последовательность.В частности

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

где s [ i ] обозначает извлечение элемента i из закодированной последовательности s ; Легко увидеть, что это примитивно-рекурсивная функция (при условии, что используется соответствующая нумерация Гёделя).

Эквивалентность примитивной рекурсии

[ редактировать ]

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

.

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

где правая часть считается нумерацией Гёделя для последовательностей .

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

,

где add ( n , s , x ) вычисляет, всякий раз, когда s кодирует последовательность длины n , новую последовательность t длины n + 1 такую, что t [ n ] = x и t [ i ] = s [ i ] для всех i < н . Это примитивно-рекурсивная функция в предположении соответствующей нумерации Гёделя; h изначально предполагается примитивно-рекурсивным. Таким образом, отношение рекурсии можно записать как примитивную рекурсию:

где g сама по себе является примитивно-рекурсивной, поскольку представляет собой композицию двух таких функций:

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

Приложение к примитивно-рекурсивным функциям

[ редактировать ]

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

,

где p i представляет i -е простое число. Можно показать, что при таком представлении все обычные операции над последовательностями являются примитивно-рекурсивными. Эти операции включают в себя

  • Определение длины последовательности,
  • Извлечение элемента из последовательности по его индексу,
  • Объединение двух последовательностей.

Используя это представление последовательностей, можно увидеть, что если h ( m ) примитивно рекурсивна, то функция

.

также является примитивно-рекурсивным.

Когда последовательность разрешено включать нули, вместо этого оно представляется как

,

что позволяет различать коды последовательностей и .

Ограничения

[ редактировать ]

Не каждое рекурсивное определение можно преобразовать в примитивно-рекурсивное определение. Одним из известных примеров является функция Аккермана , которая имеет форму A ( m , n ) и доказуемо не является примитивно-рекурсивной.

Действительно, каждое новое значение A ( m +1, n ) зависит от последовательности ранее определенных значений A ( i , j ), но i -s и j -s, для которых значения должны быть включены в эту последовательность, сами зависят от ранее вычисленные значения функции; а именно ( я , j ) = ( м , А ( м +1, п )). Таким образом, невозможно закодировать ранее вычисленную последовательность значений примитивно-рекурсивным способом предложенным выше способом (или вообще, как оказывается, эта функция не является примитивно-рекурсивной).

  • Хинман, П.Г., 2006, Основы математической логики , А.К. Петерс.
  • Одифредди, П.Г. , 1989, Классическая теория рекурсии , Северная Голландия; второе издание, 1999 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 5a7c0941e513dea9374420910cebfa98__1711987500
URL1:https://arc.ask3.ru/arc/aa/5a/98/5a7c0941e513dea9374420910cebfa98.html
Заголовок, (Title) документа по адресу, URL1:
Course-of-values recursion - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)