Реализовать итерационную функцию на python
import math
def main(n, m, a):
f = 0
for i in range(1, a + 1):
for k in range(1, m + 1):
for j in range(1, n + 1):
f += (94 * k ** 5 - 67 * math.log10(j) ** 6 - 83 * i ** 4)
f = "{:.2e}".format(f)
print(f)
return f
main(8, 3, 5)
Не работает код, вместо -1.11e+06 выдает -9.14e+05
А при 7, 7, 6 верно выдает 1.05e+08
Ответы (1 шт):
Автор решения: denisnumb
→ Ссылка
Потому что в качестве функции натурального логарифма нужно использовать math.log, а не math.log10. Тогда будет правильный ответ.
Немного отрефакторил код:
from math import log
def f(n: int, m: int, a: int):
result = 0
for i in range(1, a+1):
for k in range(1, m+1):
for j in range(1, n+1):
result += (94 * k**5 - 67 * log(j)**6 - 83 * i**4)
return f'{result:.2e}'
Проверка:
print(f(8, 3, 5))
Вывод:
-1.11e+06
Проверка 2:
print(f(7, 7, 6))
Вывод:
1.05e+08
