Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
TA_last_u3.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
2.69 Mб
Скачать

Рекурсія Алгоритм Евклида

Це один з найбільше давно відомих алгоритмів, розроблений понад 2000 років тому — рекурсивний метод відшукання найбільшого загального дільника двох цілих чисел.

int gcd(int m, int n)

{

if (n == 0) return m;

return gcd(n, m % n);

}

Рекурсивна програма для оцінки префіксних виразів

Для оцінки префіксного виразу або здійснюється перетворення числа з ASCII у двійкову форму (у циклі while) наприкінці, або над двома операндами, що оцінюються рекурсивно, виконується операція, зазначена першим символом виразу. Ця функція є рекурсивною, однак використовує глобальний масив, що містить вираз і індекс поточного символу виразу. Індекс змінюється після обчислення кожного підвиразу.

char *a; int i;

int eval()

{ int x = 0;

while (a[i] = ' ') i++;

if (a[i] == '+')

{ i++; return eval() + eval(); }

if (a[i] == '*')

{ i++; return eval() * eval(); }

while ((a[i] >= '0') && (a[i] <= '9'))

x = 10*x + (a[i++]-'0');

return x;

}

Рішення задачі про ханойські вежі

Ми зрушуємо вежу з дисків вправо, зрушуючи (рекурсивно) усі диски, крім нижнього, уліво, потім зрушуємо нижній диск вправо, після чого переміщаємо (рекурсивно) вежу поверх нижнього диска.

void hanoi(int N, int d)

{

if (N == 0) return;

hanoi(N-l, -d);

shift(N, d);

hanoi(N-l, -d);

}

  1. ВКАЗІВКИ ДО ВИКОНАННЯ КОНТРОЛЬНИХ І РОЗРАХУНКОВО-ГРАФІЧНИХ РОБІТ

Необхідно вибрати свій варіант завдання на контрольну роботу – функцію, обчислюваність якої потрібно встановити. Обчислюваність встановлюється за Т’юрингом, Марковим і рекурсивними функціями.

  1. Завдання на розрахункову роботу №1.

Варіанти функцій, які підлягають обчисленню

  1. 1

  1. 2

  1. 3

  1. 4

  1. 5

  1. Приклади виконання завдань розрахункової роботи №1.

Приклад 1.

Завдання

Побудувати машину Тьюрінга, яка по заданим цілим невід’ємним числам x, y, z значення функції z|xy|.

Формат вводу та виводу

На стрічці, нескінченній у правий бік, від початку зліва направо написано: 0, x+1 одиниць, 0, y+1 одиниць, 0, z+1 одиниць. Всі подальші символи є нулями. Машина Тьюрінга має після останньої одиниці вхідної стрічки та наступного нуля, а потім – відповідь у вигляді z|xy|+1 одиниць. Всі інші символи стрічки, крім тих, в які будуть записані вищезгадані z|xy|+1 одиниць, після завершення роботи машини мають залишитися незміненими, хоча, вони можуть змінюватися пртягом процесу роботи машини.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]