C++で正六角形の対角線を求める方法
正六角形の対角線の求め方
正六角形は、6つの正三角形を組み合わせた図形です。この幾何学的な性質を利用すると、正六角形の対角線(最も長い対角線)は、次の式で簡単に求められます。
対角線 = 2 × 辺の長さ
これは、正六角形の中心を通る対角線が、ちょうど2つの正三角形の边に相当するためです。
C++での実装例
それでは、辺の長さから正六角形の対角線を計算するC++プログラムを見てみましょう。
#include <iostream>
using namespace std;
int main(){
float side = 12;
if (side < 0)
return -1;
float diagonal = 2 * side;
cout << "正六角形の対角線 = " << diagonal << endl;
return 0;
}
このプログラムでは、まず入力された辺の長さが負の値でないかをチェックしています。辺の長さは負になりえないため、負の値が渡された場合は処理を終了します。その後、「2 × 边の長さ」を計算して対角線を求めています。
実行結果
上記のコードを実行すると、以下の出力が得られます。
正六角形の対角線 = 24
この例では、辺の長さが12のため、対角線は 2 × 12 = 24 と計算されます。
-
C++で対角行列・スカラー行列を判定するプログラムの書き方
行列 M[r][c] が与えられたとき、「r」は行数、「c」は列数を表し、r = c のとき正方行列となります。本記事では、与えられた正方行列が対角行列であるか、スカラー行列であるかを判定し、該当する場合には「yes」を出力する方法を解説します。 対角行列とは 正方行列 m[][] が対角行列であるのは、主対角線以外の要素がすべてゼロである場合、かつその場合に限ります。 下図のように、赤色で示された要素が主対角成分(非ゼロ)であり、それ以外の要素はすべてゼロになっているため、この行列は対角行列です。 入出力例 Input: m[3][3] = { {7, 0, 0}, {0, 8, 0}
-
C++で正六角形に内接する最大の三角形の面積を求める方法
本記事では、正六角形に内接する最大の三角形の面積を求める方法を解説します。正六角形の一辺の長さを「a」、その内側に描ける最大の三角形の一辺の長さを「b」とします。図から分かるように、六角形の一辺を利用して三角形を作ると、その一辺は2つの部分に分けられます。このとき、2つの直角三角形が現れます。三平方の定理(ピタゴラスの定理)を用いると、次の関係が成り立ちます。つまり、正六角形に内接する最大の三角形は正三角形となり、その一辺 b は b = √3 × a で表されます。この関係を正三角形の面積の公式に代入すると、最大の三角形の面積は次の式で求められます。面積 = (√3 ÷ 4) × b2 =