プロが教えるわが家の防犯対策術!

プログラミングの計算式において指数が出てきたときはどんな演算子を使えばいいんですか?
今やっていたのはM=(M+1/(1+(i+1/2)*h)^2)*hなんですが「^2」のところにエラーが発生します。ビット差演算子^は使えないみたいなことが出るのですが・・・どうしたらいいですか?

A 回答 (2件)

Cは,普通にはありそうな演算子が用意されてません.



「^」は,排他的論理和の演算子ですね.

教科書の演算子の優先順位のページを一度見てみませんか?

方法はいくつかありますので,具体的に説明していただければ,いいアドバイスがえられますよ.

> M=(M+1/(1+(i+1/2)*h)^2)*h

については,
X=(1+(i+1/2)*h)
M=(M+1/(X*X))*h
としますね.私なら.

一般的な,x^yを計算するとすれば,pow(x,y)を使うことになります.
標準関数にあります.
「pow」
で検索してみてください.

ちなみに,powerという単語には,「力」という意味が一般的ですが,「べき乗」という意味もあります.


double pow(double x,double y)
{
double A,B;

A = y * log(x);
B = exp(A);

return B;
}

上の関数はかなりいい加減ですが,こんなようなことをやってる関数です.

z = x^y
log(z)=y*log(x)
z = exp(y*log(x))
という関係を使ってます.
    • good
    • 1

C言語において「^」演算子はビットごとの排他的論理和をとる演算子です。


べき乗を求めたいときはpow()関数を使用します。
    • good
    • 2

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!