如何使用以下公式确定变量的值?
在有人建议这不在主题之前,我不会在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#
答案 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
如果将每个结果舍入为整数,那么这是您所需的序列。
答案 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
参考文献:
答案 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个值或更多?