2015-05-06 39 views
-3

我想用C编写这个公式,但我不知道如何使用右括号。C中的括号,如何?

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

如果我正确地解释你的公式'EQ =开方(EXP(-1 *(T - THR)/ T))+((1 - A)/ 4 )'应该这样做。但我不确定 - 它可能是'eq =(sqrt(exp(-1 *(T-thr)/ T))+(1-a))/ 4'。我不确定你想用'/ 4'这个词做什么 - 你想把整个前面的表达式除以4,还是只用'(1-a)'?到底是什么,它只是软件 - 尝试两种方式,看看你更喜欢什么 - 除非你想建立一个类似核反应堆控制系统的东西,在这种情况下,你可能希望在实施任何事情之前仔细检查。祝你好运。 –

+0

“我不知道如何使用右括号”是什么意思? –

+0

@BobJarvis:为什么用'-1'乘以一元'-'? –

回答

3

在C中,^算子不是幂乘。相反,在C中,我们编写了e x作为exp(x)。除此之外,你的公式是C.同我会把周围的一些运营商的空间,但:

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

我假设你的变量(Tthra)是一个浮点类型(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ç =一个BC,我们可以应用到的指数的平方根:√(E X)=(E x1/2 = e x/2。因此,我们可以消除的平方根:

Eq = exp((thr - (double)T)/(2 * T))) + (1 - a)/4.0;