-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;

変数 ( Tthr、および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 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 に答える