如何使用以下公式确定变量的值?

时间:2014-10-22 12:08:49

标签: c# math mathematical-optimization discrete-mathematics polynomial-math

如何使用以下公式确定变量的值?

在有人建议这不在主题之前,我不会在Stack-overflow上确定要使用的公式。 我在这里,所以我可以通过c#找出如何使用公式。

背景

我之前在math.stackexchange.com打开了一个帖子,所以有人可以帮助我生成一个论坛,它将创建以下序列:1,7,14,30。一个名为“Half-Blood prince”的用户建议我使用下面的公式来生成这个序列

an=A*n^3+B*n^2+C*n+D 

我过去曾使用 int double 等,然后在一个循环中说int i = i*7;但显然在这种情况下数学论坛更加复杂,所以我在这里问我怎样才能利用上面提到的C#

链接到线程: https://math.stackexchange.com/questions/985704/what-is-the-formula-to-generate-this-number-sequence-1-7-14-30

3 个答案:

答案 0 :(得分:1)

您可以在C#中使用该等式,如下所示:

public static double Calculate(double n)
{
    return (1.33*(n*n*n)) - (7.5 * (n*n)) + (19.16 * n) - 12;
}

并用

调用它
Console.WriteLine(Calculate(1)); 
Console.WriteLine(Calculate(2)); 
Console.WriteLine(Calculate(3)); 
Console.WriteLine(Calculate(4)); 

以上写道

  

0.99
  6.96
  13.89
  29.76

如果将每个结果舍入为整数,那么这是您所需的序列。

实例:http://rextester.com/TIU97590

答案 1 :(得分:0)

试试这个:

public static void PrintSerial(int _elements)
{
    for (int i = 1; i <= _elements; i++)
    {
        int value = (int)Math.Round(((1.33 * Math.Pow(i, 3)) -
                       (7.5 * Math.Pow(i, 2)) +
                       (19.166 * Math.Pow(i, 1)) - 12));
        Console.Write("{0} ", value);
    }
}

例如,您可以使用PrintSerial(5);来调用它。它将打印1 7 14 30 63

参考文献:

Math.Pow Math.Round

答案 2 :(得分:0)

您不需要对数字进行舍入,只需使用正确的计算:

((4.0/3.0)*Math.Pow(i, 3)) - (7.5 * Math.Pow(i, 2)) + ((115.0/6.0) * i) - 12);

检查.net fiddle here

问题是,为什么需要计算这个?您是否只需要序列中的4个值或更多?