1

S = 1 + 1/3! +...+ 1/(2*n-1)!
n от 1 до 100 в питоне, используя шаг с циклом. Не очень понимаю как это возможно написать:)

2 Answers2

2

Это же совсем просто. Если конечно считать в лоб. Но уже при n > 9 результат не меняется. По хорошему, нужно считать другими способами, с частными сумами, но это уже на собеседование в Яндекс спрашивают

s = 1
f = 1;
for n in range(2,100+1):
    f = f*(2*n-2)*(2*n-1)
    s = s+ 1/f

print (s)

почему там +1 в цикле - это домашнее задание.

KoVadim
  • 112,121
  • 6
  • 94
  • 160
0

Попробуйте так:

from  operator import mul
from functools import reduce
def factorial(n):
    return reduce(mul, [x for x in range(1,n+1)] ) if n>0 else 1

s=sum([ 1/factorial(2*n-1) for n in range(1,101) ])
print(s)

а если надо больше точных знаков - используйте модуль decimal =D

jfs
  • 52,361