C# Lambda与数学运算

C# Lambda与数学运算,c#,C#,我需要一些帮助: 我有一个lambda函数,如下所示: Func<double, double> f = (x) => (Math.Pow(2 * x, 3) + Math.Pow(x, 2)) + ((5 * x) + 7); 然后把这些结果加在一起,有没有办法改变计算顺序,因为括号在这里似乎不起作用,如果你把它们设置在正确的位置,括号就起作用了 如果希望f(4)返回171而不是555,则正确的表达式为 2 * Math.Pow(x,3) + Math.Pow(x,2) +

我需要一些帮助:

我有一个lambda函数,如下所示:

Func<double, double> f = (x) => (Math.Pow(2 * x, 3) + Math.Pow(x, 2)) + ((5 * x) + 7);

然后把这些结果加在一起,有没有办法改变计算顺序,因为括号在这里似乎不起作用,如果你把它们设置在正确的位置,括号就起作用了

如果希望
f(4)
返回171而不是555,则正确的表达式为

2 * Math.Pow(x,3) + Math.Pow(x,2) + x * 5 + 7

您编写它的方式是
(2*x)^3
而不是
2*(x^3)
要解决您需要从Math.Pow()中提取常数2的问题

Func f=(x)=>2*Math.Pow(x,3)+Math.Pow(x,2)+(5*x)+7;

但加法是可交换的,所以它不重要,括号根本不需要。。。但是2x^3不是像@Selvin说的那样的(2x)^3(
Math.Pow(2*x,3)
),我认为你实际上想要
2*Math.Pow(x,3)
甚至
2*x*x*x
Func f=(x)=>新的双精度[]{2,1,5,7}。聚合((s,a)=>s*x+a)
2 * Math.Pow(x,3) + Math.Pow(x,2) + x * 5 + 7
Func<double, double> f = (x) => 2*Math.Pow(x, 3) + Math.Pow(x, 2) + (5 * x) + 7;