小编See*_*ker的帖子

C# 中的 For 循环与 Python 中的 For 循环

我正在编写一个计算 e^x 值的方法。我在 python 中实现的方法如下。

import math

def exp(x):
    return sum([
        x**n/math.factorial(n)
        for n in range(0, 100)
    ])
Run Code Online (Sandbox Code Playgroud)

这将很好地返回 e^x 的值。但是当我尝试在 c# 中实现相同的方法时,它没有输出与 python 中相同的值。下面是c#中的实现。

static double exp(int x)
{
    double FinalAnswer = 0;
    for (int j = 0; j <= 100; j++)
    {
        FinalAnswer += (Math.Pow(x, j))/Factorial(j);
    }
    return FinalAnswer;
}
Run Code Online (Sandbox Code Playgroud)

该代码的输出最初是一个无穷大符号。为了解决这个问题,我只是减少了循环运行的次数。C# 中循环仅运行 10 次的代码的输出与 Python 中循环运行 100 次的输出非常接近。我的问题是不同编程语言的两个循环之间发生了什么。起初我认为我在计算 e^x 的方法中使用的表达式收敛得很快。但是运行 10 次的循环如何产生与运行 100 次循环的输出相匹配的输出。

另外,当我将 c# 中的 for 循环增加到 20 和 30 时,x > 3 的 e^x 值相差很大。有人可以解释一下这是怎么回事吗?

c# python for-loop computation

14
推荐指数
1
解决办法
1673
查看次数

标签 统计

c# ×1

computation ×1

for-loop ×1

python ×1