Загальна рекурсивна функціяЗагальні рекурсивні функції, часткові рекурсивні функції, μ-рекурсивні функції — в математиці, це часткові функції з натуральних чисел в натуральні числа, введені як уточнення класу обчисленних функцій. Загальноприйнятою є теза про те, що клас функцій, для обчислення яких існують алгоритми, при найширшому розумінні алгоритму, збігається з класом рекурсивних функцій. У зв'язку з цим, рекурсивні функції грають важливу роль в математиці та її застосуваннях, в першу чергу, в математичній логіці, основах математики та кібернетиці, як ефективно обчислювані функції. Тільки такі функції можна обчислювати на електронних обчислювальних машинах та інших цифрових пристроях. При введенні класу ефективно обчислюваних функцій природним чином виникає питання уточнення конструктивних об'єктів, на яких визначено ці функції. Клас всіх таких об'єктів широкий. В той же час, з допомогою методу арифметизації, запропонованого австрійським математиком Куртом Геделем, всі такі об'єкти легко зводяться до натуральних чисел. Перенесення понять і методів вироблених в теорії рекурсивних функцій на функції визначені на складніших конструктивних областях (множини слів деякого алфавіту, формул деякої теорії, графів тощо) не створює принципових ускладнень. ВизначенняБазовими примітивними функціями, за визначенням, є:
Операція суперпозиціїКажуть, що функція виникає із функцій , , …, суперпозицією, якщо Операція примітивної рекурсіїФункція утворюється із функцій за допомогою примітивної рекурсії, якщо для всіх натуральних значень маємо Операція мінімізаціїПозначимо через найменше значення , для якого . Будемо вважати, що не визначено, якщо:
Таким чином, значення є функцією від змінних . Кажуть, що ця функція отримана від функції із допомогою мінімізації. Примітивно рекурсивна функціяФункція називається примітивно рекурсивною, якщо її можна отримати із функцій , та скінченною кількістю операцій суперпозиції та примітивної рекурсії. Частково рекурсивна функціяФункція називається частково рекурсивною, якщо отримана із вказаних функцій застосуванням скінченної кількості операцій суперпозиції, примітивної рекурсії та мінімізації. Всюди визначена частково рекурсивна функція називається загальнорекурсивною. Одним з популярних прикладів загальнорекурсивної, але не примітивно рекурсивної функції є функція Акермана. Дослідження рекурсивних функційРекурсивні функції, виступаючи як еквівалент поняття ефективно рекурсивних функцій з моменту їх введення піддавались інтенсивному дослідженню. Перш за все, в класі рекурсивних функцій були виділені та вивчені підкласи простіших функцій — примітивно рекурсивних, елементарних за Л. Кальмару. Доведено, що клас загальнорекурсивних функцій ширший класу примітивно рекурсивний: існують загальнорекурсивні функції, що не є примітивно рекурсивними. Очевидно, що клас частково ширший класу загальнорекурсивних функцій. Доведено, також, що будь-яка частково рекурсивна функція може бути представлена у вигляді:
Де і — примітивно рекурсивні функції, тобто, для отримання будь-якої частково рекурсивної функції оператор μ можна застосувати не більше одного разу. Робились спроби класифікації рекурсивних функцій. Ієрархія Гжегорчика примітивно рекурсивних функцій польського математика А. Гжегорчика, а класифікацію, основану на понятті звідності (в теорії алгоритмів), виконав американський математик Е. Пост. Алгебри рекурсивних функційТакож досліджувались алгебри рекурсивних функцій: на множині рекурсивних функцій визначались ті чи інші операції, відносно яких множини функцій утворювали універсальні алгебри. Як такі операції обирались операції суперпозиції (*), додавання (+) а також операція обернення визначена схемою , та операція ітерації i, що визначається схемою , . Нехай ,
де функція [α] означає максимальне ціле число, не більше за α. Доведено, що всі одномісні примітивно рекурсивні функції, і лише вони можуть бути отримані із функцій , скінченною кількістю операцій додавання, суперпозиції та ітерації. Аналогічно, кожну загальнорекурсивну функцію можна отримати із функцій , скінченною кількістю операцій додавання суперпозиції та обернення, при чому останню виконують лише тоді, коли її результатом є всюди визначена функція. Якщо зняти це обмеження, тоді можна отримати всі одномісні частково рекурсивні функції. Головним чином, досліджувались три алгебри: де , та — множини всіх одномісних примітивно рекурсивних, частково рекурсивних та загальнорекурсивних функцій. Досліджувались найприродніші питання: наявність скінченних базисів, приклади підалгебр, описання максимальних підалгебр, тобто, таких підалгебр, які не містяться в жодних інших підалгебрах самих алгебр, ізоморфізми та автоморфізми підалгебр, конгруенції на підалгебрах, питання скінченної визначеності алгебри тощо. Разом із дослідженням рекурсивних функцій, широко досліджуються рекурсивні предикати і пов'язані з ними множини — підмножини множини натуральних чисел. Рекурсивні функції в програмуванніБазисний приклад в мові PHP: При створенні нової функції f() в її тілі викликається та сама функція f() зі зміненим аргументом: function f($x){
# Обчислення та друк добутку числа на 2.
return $x*2;
$y=$x*2;
# Виклик функції f() в власному тілі ще раз, але з новим аргументом.
f($y);
}
# Приклад 1: Отримуємо числа добуток 1*2 яких ще раз перемножувався на 2:
# 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048 і т.д.
print f(1);
# Приклад 2: Отримуємо числа добуток 3*2 яких ще раз перемножувався на 3:
# 6, 12, 24, 48, 96, 192, 384, 768, 1536, 3072, 6144 і т.д.
print f(3);
Див. такожПримітки
Література
|