三角形の成立条件と三角不等式
3本の線分が「本当に三角形を作れるか」を判定する不等式
- 1
- 3本の線分の長さ a, b, c で三角形を作れるのは、どの2辺の和も残りの1辺より大きいとき(三角不等式)に限る
- 2
- 最も長い辺を c としたとき、a + b > c さえ確認すれば(他の2つの不等式は自動的に満たされるため)三角形が作れるか判定できる
- 3
- この不等式は、衝突判定やバウンディングボックスなど、コンピュータグラフィックス・ゲーム開発における「範囲・妥当性チェック」の考え方の基礎になっている
なぜこれを学ぶのか? — 現実社会とテクノロジーでの価値
なぜ生まれたのか?
3本の線分の長さ a, b, c で三角形を作れるのは、どの2辺の和も残りの1辺より大きいとき(三角不等式)に限る
身につく武器・思考力
最も長い辺を c としたとき、a + b > c さえ確認すれば(他の2つの不等式は自動的に満たされるため)三角形が作れるか判定できる
実社会・ITでの活躍現場
- •ゲーム開発における衝突判定・パラメータ妥当性チェック
- •ITシステム・アルゴリズム実装における論理設計
- •データ分析やシミュレーションにおける数理モデリング
Layer 1 — 直感・シミュレーター
3つの頂点をドラッグして自由に三角形の形を変えてみよう。3辺の長さがリアルタイムに表示され、三角不等式(どの2辺の和も残りの1辺より大きい)が成り立っているかが常にチェックされる。頂点を一直線に近づけると、不等式が破れる瞬間に警告が表示される。
最大辺 AB = 6.00 に対して、残り2辺の和 = 11.66。残り2辺の和が最大辺より 大きいため、 三角形として成立します。
↑ 3つの頂点(緑・橙・赤)をドラッグして三角形の形を変えてみよう。「最も長い辺 < 残り2辺の和」が 破れる(頂点がほぼ一直線に並ぶ)と、警告表示に切り替わる。
長さ 3, 4, 8 の3本の線分で三角形を作ることはできるか?
Layer 2 — 定義・受験・証明
定義
3つの正の数 が三角形の3辺の長さになるためには、次の3つの不等式がすべて成り立つ必要がある(三角不等式)。
特に、 が3辺のうち最も長い辺であるとき、後半2つの不等式は自動的に成り立つため、実質的には (最大辺 < 残り2辺の和)だけを確認すればよい。
公式・数理モデル
証明・導出
三角不等式が必要である理由(幾何学的な証明): 平面上で長さ の辺 を固定し、頂点 を長さ の辺 と長さ の辺 を保ちながら動かすことを考える。 三角形が成立する(=三角形が「つぶれず」に閉じる)ためには、点 から点 、点 から点 へと2本の線分でたどり着く経路の長さの和 が、直接 から へ行く最短距離 (2点間の最短経路は直線)よりも長くなければならない。 もし ならば、 を通る経路では から まで届かない(届いたとしても一直線に潰れてしまう)ため、三角形にならず線分が一直線に重なるだけになる。 この議論をどの2辺の組み合わせについても行うと、3つの不等式 , , がすべて必要であることがわかる。 逆に、この3つの不等式がすべて成り立てば、必ず三角形を作ることができる(十分性はコンパスによる作図で確認できる)。
押さえておきたいポイント
- 3つの不等式のうち、実務上は「最も長い辺 < 残り2辺の和」の1つだけを確かめれば十分(他の2つは自動的に満たされる)
- 等号 が成り立つときは、三角形が「面積0」につぶれて一直線になる退化三角形(境界ケース)になる
- 三角不等式は三角形だけでなく、より一般的な「距離の公理(距離空間)」の一部としても成り立つ普遍的な性質
- 三平方の定理(pythagoras)が使えるのは直角三角形という特別な場合のみだが、三角不等式はすべての三角形(鋭角・直角・鈍角)に共通して成り立つ
本トピックの内容・数理モデルは、文部科学省学習指導要領(算数・数学・情報)および国際標準カリキュラムに準拠し、エンジニアリング現場の実装事例と照らし合わせてMath World Lab編集部により検証・作成されています。
Layer 3 — 工学応用・現場実装
ゲーム開発における衝突判定・パラメータ妥当性チェック
三角不等式のように「複数の値の関係が特定の条件を満たすか」を事前にチェックする考え方は、ゲームの衝突判定(当たり判定)やバウンディングボックスの妥当性検証、経路探索アルゴリズムの前処理など、幅広い場面で「無効な入力・不可能な形状」を早期に弾くために使われている。
1// 三角不等式による三角形の成立判定2function isValidTriangle(a: number, b: number, c: number): boolean {3 if (a <= 0 || b <= 0 || c <= 0) return false;45 // 3つの不等式をすべてチェック(どれか1つでも破れたら三角形は作れない)6 return (7 a + b > c &&8 b + c > a &&9 c + a > b10 );11}1213console.log(isValidTriangle(3, 4, 5)); // true (直角三角形として成立)14console.log(isValidTriangle(3, 4, 8)); // false (3+4=7 < 8 のため潰れる)1516// 応用: ゲームの経路探索(パスファインディング)で、17// 三角不等式は「A*アルゴリズムのヒューリスティック関数が正しく機能するための条件」としても現れる。18// ヒューリスティック h(n) が距離関数として妥当であるためには、19// 三角不等式 h(a, c) <= h(a, b) + h(b, c) を満たす必要がある。20function isValidHeuristic(distAB: number, distBC: number, distAC: number): boolean {21 // 直接距離が、中継地点を経由した距離の和を超えてはならない22 return distAC <= distAB + distBC;23}2425console.log(isValidHeuristic(3, 4, 5)); // true: 5 <= 3+426console.log(isValidHeuristic(3, 4, 8)); // false: 8 > 3+4 (距離関数として不正)
次に学ぶならコレ!おすすめトピック
この単元と深い繋がりを持つ、あわせて学ぶと理解が深まるおすすめ単元