-2

问题:

对于这部分作业,您将编写一个函数来评估数学指数函数,例如。你的 Python 函数将被称为 badexp(x),因为它真的不能很好地工作,至少对于某些 x 值。

使用 badexp 公式:term[i+1] = term * x / (i + 1)

对于您的 badexp 函数,您当然需要编写一个循环,但由于等式 (7),您不需要在循环内编写一个循环(“双重嵌套循环”)。

要编写 badexp,请对数学公式中的各项求和,从 i = 0 开始。你不能永远继续下去,所以只要在总和中添加新项不会改变总和,就立即停止。这肯定会最终发生,因为对于大 i 而言,这些术语变得非常小。

我可以弄清楚如何编写一个更好的 exp 函数,但是这个很荒谬,我无法弄清楚循环。到目前为止我所拥有的:

def badexp(x):
    i = 0
    term1 = 1.
    term2 = x
    temp = term1
    while term1 != term2:
        term1 = temp
        term2 = 1 + term1 * x / (i + 1)
        temp = term2
        i = i + 1
    print term2

但这不起作用:/

4

1 回答 1

2

我认为没有必要跟踪两个term变量。刚刚怎么样

def badexp(x):
    i = 0
    acc = 0
    term = 1.
    while True:
        newacc = acc + term
        i += 1
        term = term * x / i
        if acc == newacc:
            return acc # numbers stopped changing
        acc = newacc
于 2013-09-03T01:04:56.387 回答