Professional Documents
Culture Documents
Novikov Lab9
Novikov Lab9
Перевірив: Викладач
Мухін Віталій Вікторович
Запоріжжя
2022
Хід роботи
Завдання №1
Визначити значення функції
Код
import math
def func(n):
res = 1
for i in range(n+1):
res *= (-1**i-1)/(((2*i)-1)*3**i-1)
return 2*math.sqrt(3)*res
Результат
print(func(5))
print(func(2))
Завдання №2
Код
import time as t
def res_factorial(number):
if number == 0:
return 1
else:
return number * res_factorial(number - 1)
def factorial(number):
res = 1
for i in range(1, number+1):
res = res * i
return res
print(res_factorial(995), t.process_time())
print(factorial(1000), t.process_time())
Робота та порівняння
Основні відмінності
По результатам бачимо, що алогоритми працють майже одинаково, проте
якщо брати більші числа. Сам рекурсивний алгоритм вже не будет працювати, так
як в Python стоїть обмеження на рекурсію, з прикладу бачимо, що воно дорівнює
995. Ну навіть якщо не дивиться на це, виклик кожної функції декілька разів, це все
нове області бачення, нові змінні і тд. А це все пам'ять з цього робимо такий
висновок, рекурсивний алгоритм не є ефективним для обчислення великих чисел,
проте для малих між нічим не програє звичайному