Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

半円に内接する長方形に内接する円の面積の求め方

半径 R の半円が与えられているとします。この半円の中に、長さ l、幅 b の長方形が内接しており、さらにその長方形の中に半径 r の円が内接しています。本記事では、この内側の円の面積を求める手順を、数式の導出からC++による実装例までわかりやすく解説します。

半円に内接する最大の長方形

半円に内接する長方形は、底辺が半円の直径上にあり、上側の2つの頂点が半円周上にあります。このとき、三平方の定理(ピタゴラスの定理)より、lb の間には次の関係が成り立ちます。

(l / 2)2 + b2 = R2

長方形の面積 A = l × b を最大化する条件を求めると、微分計算により次の値が得られます。

  • 長さ:l = R√2
  • 幅:b = R / √2

長方形に内接する最大の円

長さ l、幅 b の長方形に内接できる最大の円の半径は、短い方の辺の長さの半分に等しくなります。

r = min(l, b) / 2

ここで l = R√2 > b = R/√2 であるため、内接円の半径は次のようになります。

r = b / 2 = R / (2√2)

内側の円の面積の公式

以上より、内側の円の面積は次の公式で表されます。

面積 = πr2 = π × (R / (2√2))2 = πR2 / 8

C++による実装例

この公式をC++プログラムとして実装すると、以下のようになります。

#include <iostream>
#include <cmath>
using namespace std;

float innerCircleArea(float R){
    return 3.1415 * pow(R / (2 * sqrt(2)), 2);
}

int main() {
    float rad = 12.0f;
    cout << "Area: " << innerCircleArea(rad);
}

出力結果

Area: 56.547

半径 R = 12 の半円の場合、内側の円の面積は約 56.547 となります。これは理論値 π × 122 / 8 = 18π ≒ 56.55 と一致しており、公式が正しく機能していることが確認できます。

  1. 正方形に内接する円の面積を求めるC言語プログラム

    正方形に内接する円とは、正方形の四つの辺すべてに接する円のことです。このとき、内接円の直径は正方形の一辺の長さと等しくなります。内接円の面積は、次の公式で計算できます。面積 = (π / 4) × a × aここで「a」は正方形の一辺の長さです。これは、内接円の半径が「a / 2」になるため、一般的な円の面積の公式「π × r2」に代入すると「π × (a/2)2 = (π/4) × a2」となることに基づいています。プログラムのロジック内接円の面積は、公式「((π / 4) × a × a)」を用いて計算します。そのために、数学的に 22/7 すなわち 3.14 とされる円周率(π)の値をあ

  2. C++で2つの長方形が覆う合計面積を求めるアルゴリズム

    2次元平面上に置かれた2つの軸に平行な長方形について、それらが覆う領域の合計面積を求める問題を考えます。各長方形は、左下の頂点と右上の頂点の座標によって定義されます。下図のように、第1の長方形は左下 (A, B)・右上 (C, D)、第2の長方形は左下 (E, F)・右上 (G, H) として表されます。解き方のアプローチこの問題を解くための手順は以下の通りです。まず、2つの長方形が重なっているかどうかを判定します。C ≤ E、A ≥ G、B ≥ H、D ≤ F のいずれかが成り立つ場合、2つの長方形は重ならないため、それぞれの面積の和 (C − A) × (D − B) + (G − E)