Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Болтушкин Л.С., группа 712-2, лабораторная 3.docx

.pdf
Скачиваний:
5
Добавлен:
04.10.2024
Размер:
706.31 Кб
Скачать

Приложение В

(обязательное)

# 3 - Взаимная рекурсия

def mutual_recursion_1(b2): if b2 == 0:

return "Четное число" else:

return mutual_recursion_2(b2 - 1)

def mutual_recursion_2(b2): if b2 == 0:

return "Нечетное число" else:

return mutual_recursion_1(b2 - 1)

print("Взаимная рекурсия:") n = int(input("Номер: "))

result = mutual_recursion_1(n) print(result)

print("\n")

11

Приложение Г

(обязательное)

# 4 - Каскадная рекурсия

def cascading_recursion(n, m):

if ((m == 0) and (n > 0)) or ((m == n) and (n > 0)): return 1

elif (m > n) and (n >= 0): return 0

else:

return cascading_recursion(n - 1, m - 1) + cascading_recursion(n - 1,

m)

print("Каскадная рекурсия:") m = int(input("Номер: "))

result = cascading_recursion(m, m) print(result)

print("\n")

12

Приложение Д

(обязательное)

# 5 - Удаленная рекурсия def far_recursion(n, m):

if n == 0: return m + 1

if m == 0:

return far_recursion(n - 1, 1) if m != 0 and n != 0:

return far_recursion(n - 1, far_recursion(n, m - 1)) return 0

print("Удаленная рекурсия:") n = int(input("Номер 1: ")) m = int(input("Номер 2: ")) result = far_recursion(n, m) print("Результат:", result) print("\n")

13

Приложение Е

(обязательное)

# 6 - Индивидуальное задание import math

def count_negative_sine_elements(X): if len(X) == 1:

return int(math.sin(X[0] / 2) < 0) else:

mid = len(X) // 2 + len(X) % 2 left_half = X[:mid]

right_half = X[mid:]

return count_negative_sine_elements(left_half) + count_negative_sine_elements(right_half)

X_example = [1.76405235, 0.40015721, 0.97873798, 2.2408932, 1.86755799, - 0.97727788, 0.95008842, -0.15135721]

count_result = count_negative_sine_elements(X_example) print("Индивидуальное задание:")

print("Результат", X_example, count_result)

14