0Pricing
C Academy · レッスン

べき乗と平方根

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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. math.hをインクルードする
  2. べき乗と平方根
  3. 三角関数と対数
  4. 丸めと絶対値
← C Academyに戻る