C# 得到方程的可能输出范围

C# 得到方程的可能输出范围,c#,.net,range,equation,C#,.net,Range,Equation,我想问一下,在.Net中是否有一个内置函数可以从一个等式中获得输出的最小值和最大值。例如: float a,b,c,d,e,f,g; float result() { return a*b/c + d/(e-d) + f/g; } //how to know the possible min and max value of result()? 我知道域(a,b,c,d,e,f,g的最小值和最大值;其中c,(e-d),g不是0),如何从result()获得输出范围? 到目前为止,我尝试

我想问一下,在.Net中是否有一个内置函数可以从一个等式中获得输出的最小值和最大值。例如:

float a,b,c,d,e,f,g;

float result() {
 return a*b/c + d/(e-d) + f/g; 
} //how to know the possible min and max value of result()? 
我知道域(a,b,c,d,e,f,g的最小值和最大值;其中c,(e-d),g不是0),如何从result()获得输出范围? 到目前为止,我尝试手动运行基本嵌套循环,如:
(我们追求以下的极值(最小值和最大值)

a*b/c + d/(e-d) + f/g; 
在这种情况下,如果得到每个部分的局部最大值,那么我们可以得到全局最大值。因为你说你分别知道a,b,c,d,e,f,g的范围

Max(a*b/c) + Max(d/(e-d)) + Max(f/g);
所以

A = Max(a*b/c)   = Max(a) * Max(b) / Min(c)
B = Max(d/(e-d)) = Max(d) / (Max(e) - Min(d))
C = Max(f/g)     = Max(f) / Max(g)

X = Min(a*b/c)   = Min(a) * Min(b) / Max(c)
Y = Min(d/(e-d)) = Min(d) / (Min(e) - Max(d))
Z = Min(f/g)     = Min(f) / Min(g)
Max = A + B + C
Min = X + Y + Z
所以

A = Max(a*b/c)   = Max(a) * Max(b) / Min(c)
B = Max(d/(e-d)) = Max(d) / (Max(e) - Min(d))
C = Max(f/g)     = Max(f) / Max(g)

X = Min(a*b/c)   = Min(a) * Min(b) / Max(c)
Y = Min(d/(e-d)) = Min(d) / (Min(e) - Max(d))
Z = Min(f/g)     = Min(f) / Min(g)
Max = A + B + C
Min = X + Y + Z

然而,请注意,如果存在任何任意函数的最小值和最大值的算法,那么获取任意函数的最小值和最大值将是一个相当大的挑战

我不理解您的问题和代码。但我相信您可以使用
列表
数组
@mohithrivastava,假设我想知道eq的最小值和最大输出值有许多参数的运算。有没有比使用许多嵌套循环更好的方法?是的。你可以使用LINQ…而不是嵌套循环。如果你将输入放入列表或数组中。相信我,它将是一行或两行。如果没有一行,比如除以0,那么最小值可能是,最大值可能是。比好的,伙计们,我现在要把这些东西整理一下。