我想用C语言写这个等式,但我不知道如何使用正确的括号。
Eq=sqrt(e^(-((T-thr))/T) ) + (1-a)/4
答案 0 :(得分:3)
在C中,^
运算符不是取幂。相反,在C中,我们将e x 写为exp(x)
。除此之外,你的等式在C中是相同的。我会在一些算子周围放置空格,但是:
Eq = sqrt(exp(-(T - thr) / T)) + (1 - a) / 4;
我假设您的变量(T
,thr
和a
)是浮点类型(float
或double
)。如果它们是整数,您可能希望强制编译器使用浮点运算,您可以这样做(例如):
Eq = sqrt(exp(-((double)T - thr) / T)) + (1 - a) / 4.0;
另外...... -(T - thr)
与(thr - T)
相同,因此我们可以简化:
Eq = sqrt(exp((thr - (double)T) / T)) + (1 - a) / 4.0;
和(a b ) c = a bc ,我们可以应用于指数的平方根:√(e < sup> x )=(e x ) 1/2 = e x / 2 。所以我们可以消除平方根:
Eq = exp((thr - (double)T) / (2 * T))) + (1 - a) / 4.0;