gpt4 book ai didi

c++ - 程序帮助 - 求解 e(n)

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:27:24 24 4
gpt4 key购买 nike

我已经为这个问题苦苦挣扎了一个星期,我只需要一些关于它的数学部分的指导。如果我能理解它背后的数学原理,我就能将函数拼凑起来使其发挥作用。任务是;


设计和开发一个 C++ 程序,用于计算 delta <= 0.000001 时的 e(n)

  • e(n-1) = 1 + 1/1! + 1/2! + 1/3! + 1/4! + … + 1/(n-1)!
  • e(n) = 1 + 1/1! + 1/2! + 1/3! + 1/4! + … + 1/(n)!

增量 = e(n) – e(n-1)

您没有对程序进行任何输入。你的输出应该是这样的:

  • N = 2 e(1) = 2 e(2) = 2.5 增量 = 0.5
  • N = 3 e(2) = 2.5 e(3) = 2.565 增量 = 0.065...

您必须使用递归函数调用。


我的第一个问题是数学和包含它们的变量。

  • delta、e(n) 和 e(n-1) 变量必须加倍
  • 如果 e(n) = 1 + 1/1! = 2 然后 e(n-1) 必须等于 1,这意味着 delta = 1(无论如何这是我的想法)我只是不确定第一次 .5 delta 和第二次迭代中的 0.065 背后的数学。

有人能为我指明解决这个问题的正确方向吗?

谢谢,

T

最佳答案

来自wikipedia链接,你可以看到

enter image description here

我不会在这里解释极限的概念,但这基本上意味着,如果我们定义一个函数 e 其中 e(n) = 1 + 1/1! + 1/2! + 1/3! + 1/4! + … + 1/(n)!(这是您问题中给出的函数),我们能够近似常数 e 的真实值。n 越高,我们离 e 越近。

如果你仔细观察这个函数,你会发现每次我们都添加一个比前一个小的项:1 >= 1/1! >= 1/2! >= .... >= 1/(n)!

这基本上意味着,每当我们增加 n 时,我们就会越来越接近 e,但我们会放慢速度。

e 的实际值为 2.71828...

  • 在我们的第一步 e(1) = 1 中,我们是 1.71828...离实际值太远了
  • 在第二步 e(2) = 2,我们在 0.71828...,距离更近 1
  • 在第三步 e(3) = 2.5,我们现在在 0.21828...,距离更近 0.5

如您所见,我们正在到达那里,但我们离得越近,我们移动的速度就越慢。现在假设在每一步,我们想知道与之前的值相比我们移动了多近。然后我们简单地做 e(n) - e(n-1)。这基本上就是 delta 的意思。

在某些时候,我们的前进速度如此之慢,以致于继续前进已没有任何意义。我们几乎原地不动。在这一点上,我们认为我们的近似值与 e 足够接近。

在您的例子中,问题将最小进展速度定义为 0.000001

关于c++ - 程序帮助 - 求解 e(n),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22993395/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com