Переменная не переопределяется правильно в цикле for (Python) - PullRequest
0 голосов
/ 05 февраля 2019

Мне нужно создать функцию, которая правильно вычисляет E m как E m = 1 - mE m-1 У меня возникли некоторые проблемы с выяснениемпочему моя переменная не возвращает правильные значения.Вот краткое изложение проблемы, которую я решаю

Напишите функцию, называемую интеграцией, которая принимает в качестве входных данных целое число m и, используя алгоритм, описанный ниже, возвращает значение E_m.Убедитесь, что вы указали это правильно, т.е. E 0 = 1 - 1 / e, а не E1 = 1 - 1 / e.Будьте очень осторожны с индексами Python, если вы пытаетесь сделать это как индексированный массив.

Set E = 1 - 1/e
    for j = 1, ... , m do
        E = 1 - j*E
    end for
    return E

Вот мой код

import numpy as np
def integration(m):
  E_m = 1 - 1/np.e
  for j in range(m):
    E_m = 1 - j*E_m
  return E_m

Мой код, if m > 0, возвращает неправильныйответ (например, integration(1) возвращает 1, когда должно быть 1 - 1*(1-1/e)).Кажется, что текст указывает, что я должен использовать массив, но я не понимаю, зачем мне это нужно. Почему мой код не переопределяет мою переменную E_m правильно? Я новичок в Python, поэтому я не уверен, есть ли проблема с именем переменной в переопределении или нет.

1 Ответ

0 голосов
/ 05 февраля 2019

Циклы Python начинаются с 0 и не включают.Попробуйте range(1, m+1)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...