-3

我想用 C 写这个等式,但我不知道如何使用正确的括号。

Eq=sqrt(e^(-((T-thr))/T) )   + (1-a)/4
4

1 回答 1

3

在 C 中,^运算符不是求幂。相反,在 C 中,我们将 e x写为exp(x)。除此之外,您的方程式在 C 中是相同的。不过,我会在一些运算符周围放置空格:

Eq = sqrt(exp(-(T - thr) / T)) + (1 - a) / 4;

我假设您的变量(T、、thra)是浮点类型(floatdouble)。如果它们是整数,您可能希望强制编译器使用浮点运算,您可以(例如)这样做:

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 b c,我们可以将其应用于指数的平方根:√(e x ) = (e x ) 1/2 = e x/2。所以我们可以消除平方根:

Eq = exp((thr - (double)T) / (2 * T))) + (1 - a) / 4.0;
于 2015-05-06T01:14:10.110 回答