Предмет:
ИнформатикаАвтор:
celinaЯкщо ми хочемо знайти n-е число Фібоначчі, ми можемо використовувати рекурсію або ітерацію. Однак, якщо n буде дуже велике, це може вимагати багато обчислень, тому ми можемо скористатися формулою Бінета для швидкого обчислення n-го числа Фібоначчі:
= [ (1 + √5) / 2 ] ^ n / √5 - [ (1 - √5) / 2 ] ^ n / √5
Для обчислення факторіала ми також можемо використовувати рекурсію або ітерацію. Однак, якщо n буде дуже велике, це може призвести до переповнення стеку в рекурсивній функції. Тому ми можемо використовувати формулу Стірлінга для приблизного обчислення факторіала:
n! ≈ √(2πn) * (n / e) ^ n
Отже, наша функція може виглядати так:
import math
def fib_fact_sum(n):
phi = (1 + math.sqrt(5)) / 2
fib = int((phi ** n) / math.sqrt(5) + 0.5)
fact = int(math.sqrt(2 * math.pi * n) * ((n / math.e) ** n) + 0.5)
return fib + fact
Тепер ми можемо викликати нашу функцію зі значенням n:
print(fib_fact_sum(6)) # поверне 25
Автор:
jaxonzifxДобавить свой ответ
Предмет:
МатематикаАвтор:
ginger22Ответов:
Смотреть
Предмет:
Английский языкАвтор:
finneganbaxterОтветов:
Смотреть
Предмет:
Українська моваАвтор:
axleОтветов:
Смотреть