【问题标题】:infinite sum of arithmetic series c#算术级数的无限和#
【发布时间】:2021-04-27 02:35:57
【问题描述】:

我有方程1/cos1+1/(cos1+cos2)+...1/(cos1+...+cosN)

看起来像一个有限级数的求和。我做了这样的事情:

if(..)
{
    for (int i = 1; i < n; i++)
    {
        var formula = (1 / Math.Cos(1)) + (1 / (Math.Cos(1) + Math.Cos(n)));
        Console.WriteLine($"If user enters a random {n} number, then result of equation is {formula}");
    }
}

其中n 是一个自然整数。
然后我意识到我在公式中做错了,它没有计算出应有的值。我被困住了。我该如何解决?

【问题讨论】:

  • 你有一个以i作为迭代器值的循环,但你从不使用i,只是一个固定值n
  • 写出(纯文本):当i=1i=2i=3 等时会发生什么。然后尝试在代码中捕获它
  • 我用 do/while 循环写过,但我不懂方程,我怎么能做算术级数。如果 n=2,那么公式的结果将是 9.90。错误在这里 (1 / (Math.Cos(1) + Math.Cos(n)));我不知道如何解决这个问题......
  • 写出在纸上 n=1,2,3,4,.. 的公式应该是什么(就像数学公式一样)。我假设 n=3 需要三个术语,n=4 需要四个术语(等等)。也许从术语“n”(最里面的括号)开始,然后添加术语“n-1”(上一级)等(我不太清楚你的特定公式应该如何工作)
  • 您的问题太模糊,无法在此处正确回答,坦率地说,您的数学问题比编程问题多。 Stack Overflow 不是代码编写服务。也就是说,在您的方程式中,... 大概意味着您打算推断方程式的其他组件以填充序列,这意味着在每次迭代中,您还需要迭代来计算公式的分母,如以及全部金额。您目前既不做任何事情(即不迭代分母,也不跟踪总和)。你应该打印结果...

标签: c# math sum infinite arithmetic-expressions


【解决方案1】:

当你能理解这一点时,你就会学到:

var ans = Enumerable.Range(1, n)
                    .Aggregate(0.0,
                               (sum, n) => sum + 1.0 / Enumerable.Range(1,n)
                                                                 .Aggregate(0.0,
                                                                            (subSum,subN) => subSum+Math.Cos(subN)
                                                                 )
                    );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-05
    • 1970-01-01
    • 1970-01-01
    • 2011-07-31
    • 1970-01-01
    相关资源
    最近更新 更多