Попытка кодировать сигма нотации и не совсем уверен, что делать - PullRequest
0 голосов
/ 01 февраля 2020

Я пытался создать код для домашнего задания, но безуспешно.

По сути, мы должны закодировать следующую формулу в python:

Уравнение для кодирования

Я пробовал возиться с функцией sum () и проверил другие потоки с более сложными примерами, хотя они не очень помогли.

 #x=sum(1/2^k)for krange(1,int(input())
 #k=range(1,(int(input('Enter N:'))))
 #for k in range(1,3,1):
 num_range=list(range(1,3,1))#
 total=0
 for i in num_range:
 total +=i
 total
 sum(num_range)
 print(sum(num_range))



 #k=list(1,3)
 #x=1/pow(2,k)
 #sum(x)
 #print(sum(x))
 #x=sum(k)

 #k=range(1,3)
 #x=sum(1/pow(2,k))
 #sum(x)
 #print(x)



 #sum+=([1/2**k])
 #print(sum(1/pow(2,k)))'

1 Ответ

0 голосов
/ 01 февраля 2020

Вы можете использовать встроенный метод суммирования Python и выражение генератора:

def series_sum(N):
    return sum(1.0 / 2**k for k in range(1, N + 1))

Это работает следующим образом:

  • range(1, N + 1) создает iterable , элементами которого являются значения 1, 2, ..., N последовательно.
    Ссылка: встроенный диапазон () .
  • 1.0 / 2**k for k in range(1, N + 1) создает новую итерацию который преобразует это в 1/2, 1/4, ..., 1 / (2 ^ N).
    Ссылка: выражения генератора .
  • sum(...) вычисляет сумму всех элементов итерируемого, что он передается.
    Ссылка: встроенный sum().

Хорошая вещь о Python в том, что если вы читаете закодируйте вслух, вы скажете что-то очень похожее на слова, которые вы произносите при чтении математического выражения.

...