C LANGUAGE TECHNOLOGY

【C言語】pow関数と自作関数でべき乗,累乗,2乗の計算

悩んでいる人

C言語でべき乗,累乗,2乗の計算方法を教えて!

こういった悩みにお答えします.

本記事の信頼性

  • リアルタイムシステムの研究歴12年.
  • 東大教員の時に,英語でOSの授業.
  • 2012年9月~2013年8月にアメリカのノースカロライナ大学チャペルヒル校コンピュータサイエンス学部2021年の世界大学学術ランキングで20位)で客員研究員として勤務.C言語でリアルタイムLinuxの研究開発
  • プログラミング歴15年以上,習得している言語: C/C++Solidity,Java,Python,Ruby,HTML/CSS/JS/PHP,MATLAB,Assembler (x64,ARM).
  • 東大教員の時に,C++言語で開発した「LLVMコンパイラの拡張」,C言語で開発した独自のリアルタイムOS「Mcube Kernel」GitHubにオープンソースとして公開

こういった私から学べます.

べき乗,累乗,2乗とは

\(a^n\)におけるべき乗,累乗,2乗の違いは以下になります.

  • べき乗:\(a^n\)(aをn回乗算)
  • 累乗:\(a^n\)(nが自然数の場合)
  • 2乗:\(a^2\)(nが2の場合)

2乗の自作コード

2乗の自作コードは以下になります.

簡単なのであなたも書いたことがあると思います.

累乗の自作コード

累乗の自作コードは以下になります.

累乗を計算するnpow関数では,n回乗算するためにfor文を利用しています.

実行結果は以下になります.

npow関数により,3の2乗,3乗,4乗をそれぞれ計算できていることがわかります.

べき乗の自作コード

べき乗の自作コードは複雑なので,本記事を順番に読み進めてもらうと幸いです.

すぐに知りたいあなたは,自作関数でべき乗の計算【exp/log/frexp関数も自作】をクリックして下さい.

pow関数でべき乗の計算

pow関数はxのy乗を計算するべき乗関数です.

pow関数を利用するコードは以下になります.

実行結果は以下になります.

自作関数でべき乗の計算【exp/log/frexp関数も自作】

自作関数でxのy乗を計算するべき乗を計算する方法を紹介します.

xのy乗は,以下の式で計算できます.

$$x^y = e^{y\ *\ log(x)} $$

つまり,pow関数の自作関数を作成するためには,exp関数log関数の自作関数が必要です.

また,log関数の自作関数を作成するためにはfrexp関数が必要なので,その自作関数も作成します.

xのy乗を計算するべき乗関数「mypow関数」は以下の関数から構成されています.

  • mypow関数:pow関数の自作関数
  • myexp関数:exp関数の自作関数
  • mylog関数:log関数の自作関数
  • myfrexp関数:frexp関数の自作関数
  • myiexp関数:第1引数をx,第2引数をkとした時に\(x * 2^k\)を返す関数

myexp関数のコードは以下になります.

実行結果は以下になります.

まとめ

C言語のpow関数と自作関数でべき乗を計算する方法を紹介しました.

pow関数の自作関数を作成するためには,exp関数,log関数,frexp関数の自作関数が必要なことがわかりました.

これらの実装は複雑なので,printfデバッグやGDB等で途中の計算結果を出力しつつ読み解くことをおすすめします.

printfデバッグやGDBを知りたいあなたは,以下の記事を読みましょう.

C言語 マクロ
【C言語】プリプロセッサ(マクロ)とは

こういった悩みにお答えします. こういった私から学べます. 目次1 C言語のプリプロセッサ(マクロ)とは2 #include:ファイルの取り込み3 #define:マクロ置換3.1 記号定数マクロ3. ...

続きを見る

C言語 Make
【C言語】Makeの使い方

こういった悩みにお答えします. こういった私が解説していきます. C言語はPython,Ruby,HTML/CSS/JS/PHPのようなアプリケーション系の言語と比較して難易度が高いですよね. 私がC ...

続きを見る

C言語を独学で習得することは難しいです.

私にC言語の無料相談をしたいあなたは,公式LINE「ChishiroのC言語」の友だち追加をお願い致します.

友だち追加

独学が難しいあなたは,C言語を学べるおすすめのオンラインプログラミングスクール5社で自分に合うスクールを見つけましょう.後悔はさせません!

-C LANGUAGE, TECHNOLOGY
-, , , , , , , , , , ,