べき乗と平方根
pow、sqrtなどを使います。
「べき乗と平方根」はCoddyKit上の無料C Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはC Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 C Academyコースには全4レッスンが含まれています。
累乗と平方根
math.hで最も便利なツールの2つが、数値を累乗するpowと、平方根を求めるsqrtです。
どちらもdouble値を扱い、doubleの結果を返します。
pow関数
pow(base, exponent)は、baseをexponent乗した値を計算します。
たとえばpow(2, 3)は2 x 2 x 2を意味し、結果は8です。
#include <stdio.h>
#include <math.h>
int main(void) {
double result = pow(2.0, 3.0);
printf("2^3 = %.0f\n", result);
return 0;
}powで二乗する
数値を二乗するには、2乗します。
ここでは、部屋の一辺の長さを二乗して、正方形の部屋の面積を計算します。
#include <stdio.h>
#include <math.h>
int main(void) {
double side = 5.0;
double area = pow(side, 2.0);
printf("area = %.0f\n", area);
return 0;
}分数指数
powは分数の指数も受け取ります。0.5乗することは、平方根を求めることと同じです。
したがって、pow(9.0, 0.5)は3.0になります。
#include <stdio.h>
#include <math.h>
int main(void) {
double r = pow(9.0, 0.5);
printf("9^0.5 = %.1f\n", r);
return 0;
}sqrt関数
sqrt(x)は、xの平方根、つまり自身を掛けるとxになる数を返します。
平方根だけが必要な場合は、pow(x, 0.5)を使うよりも明確で高速です。
#include <stdio.h>
#include <math.h>
int main(void) {
double r = sqrt(144.0);
printf("sqrt(144) = %.0f\n", r);
return 0;
}sqrtへの負の値の入力
負の数の平方根は実数ではありません。
sqrt(-1.0)を呼び出すと、NaN(Not a Number)という特殊な値が返されます。入力が0以上であることを必ず確認してください。
#include <stdio.h>
#include <math.h>
int main(void) {
double r = sqrt(-4.0);
printf("result = %f\n", r);
return 0;
}cbrtで立方根を求める
立方根を求めるには、math.hのcbrtを使います。
sqrtとは異なり、すべての実数には実数の立方根があるため、cbrtは負の数にも問題なく使えます。
#include <stdio.h>
#include <math.h>
int main(void) {
printf("%.0f\n", cbrt(27.0));
printf("%.0f\n", cbrt(-8.0));
return 0;
}ピタゴラスの定理
図形では、累乗と根をうまく組み合わせて使えます。直角三角形の最も長い辺の長さは、他の2辺の平方の和の平方根です。
ここでは、3-4-5の直角三角形の斜辺を計算します。
#include <stdio.h>
#include <math.h>
int main(void) {
double a = 3.0, b = 4.0;
double c = sqrt(pow(a, 2.0) + pow(b, 2.0));
printf("hypotenuse = %.1f\n", c);
return 0;
}hypotヘルパー
このパターンは非常によく使うため、math.hには斜辺を直接返すhypot(a, b)が用意されています。
非常に大きい数や小さい数を扱う場合、平方を計算してから平方根を求めるよりも正確です。
#include <stdio.h>
#include <math.h>
int main(void) {
double c = hypot(3.0, 4.0);
printf("hypot = %.1f\n", c);
return 0;
}適切な関数を選ぶ
簡単な指針:
- 平方根:
sqrtを使います - 立方根:
cbrtを使います - 任意の累乗:
powを使います - 斜辺:
hypotを使います
専用の関数がある場合は、それを選んでください。コードが明確になり、多くの場合、より正確です。
練習プログラム
このプログラムは、数値を累乗してから、その結果の平方根を求めます。関数を連続して使う方法が分かります。
#include <stdio.h>
#include <math.h>
int main(void) {
double p = pow(10.0, 4.0);
double r = sqrt(p);
printf("%.0f -> %.0f\n", p, r);
return 0;
}クイックチェック
それぞれの関数が何を返すか考えてみましょう。
まとめ
powで数値を累乗し、sqrtで平方根を、cbrtで立方根を、hypotで斜辺を求める方法を学びました。
負の数に対するsqrtはNaNを返すことを覚えておいてください。次は三角関数と対数を見ていきます。
よくある質問
「べき乗と平方根」レッスンは無料ですか?
はい。「べき乗と平方根」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、C Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 C Academyコースには全4レッスンが含まれています。
「べき乗と平方根」で何を学びますか?
pow、sqrtなどを使います。 ブラウザで直接実行するハンズオンコードでC Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
C Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのC Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「べき乗と平方根」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このC Academyレッスンでコードを書いて実行できますか?
はい。すべてのC Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- math.hをインクルードする
- べき乗と平方根
- 三角関数と対数
- 丸めと絶対値