我编写了一些代码来计算正弦和余弦,但是,代码不太好,我想知道是否可以使用 Linq 编写代码来计算值。
这是我计算正弦的代码
var primes = PrimeNumbers(3, 15);
bool SumSub = false;
decimal seno = (decimal)(nGrau * nSeno);
foreach (var a in primes)
{
if (SumSub == false)
{
seno -= (decimal)Math.Pow(nGrau, (double)a) / Factorial(a);
SumSub = true;
}
else
{
seno += (decimal)Math.Pow(nGrau, (double)a) / Factorial(a);
SumSub = false;
}
}
Console.WriteLine(seno);
是否可以编写代码来使用 linq 计算度数的正弦?
最佳答案
也许是这样的:
var sineResult = listDouble.Select((item, index) =>
new {i = (index%2)*2 - 1, o = item})
.Aggregate(seno, (result, b) =>
result - b.i * ((decimal)Math.Pow(nGrau, (double)b.o) / Factorial(b.o)));
代码
i = (index%2)*2 - 1
给你交替的1和-1。
Aggregate 语句对值进行求和,将每个值乘以 -1 或 1。
关于c# - 使用 Linq 计算余弦和正弦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20040802/