Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Đường chéo của lục giác đều trong C++

Giới thiệu

Tính độ dài đường chéo của lục giác đều (regular hexagon) biết độ dài cạnh.

Công thức toán học

Lục giác đều có 2 loại đường chéo:

  • Đường chéo ngắn (nối 2 đỉnh cách 1 đỉnh): d₁ = √3 × a ≈ 1.732 × a
  • Đường chéo dài (nối 2 đỉnh đối diện): d₂ = 2 × a

Code gốc dùng 1.73 cho đường chéo ngắn.

Chứng minh

Lục giác đều chia thành 6 tam giác đều cạnh a.

  • Đường chéo dài = đường kính ngoại tiếp = 2a
  • Đường chéo ngắn = 2 × chiều cao tam giác đều = 2 × (a√3/2) = a√3

Mã nguồn hoàn chỉnh

#include <bits/stdc++.h>
using namespace std;

float hexagonShortDiagonal(float side) {
    if (side < 0) return -1;
    return sqrt(3) * side; // ≈ 1.732 * side
}

float hexagonLongDiagonal(float side) {
    if (side < 0) return -1;
    return 2 * side;
}

int main() {
    float s = 7;
    cout << fixed << setprecision(3);
    cout << "Duong cheo ngan: " << hexagonShortDiagonal(s) << endl;
    cout << "Duong cheo dai: " << hexagonLongDiagonal(s) << endl;
    return 0;
}

Kết quả chạy chương trình

Duong cheo ngan: 12.124
Duong cheo dai: 14.000

So sánh với code gốc

LoạiCode gốcChính xác
Đường chéo (giả sử ngắn)1.73 × 7 = 12.11√3 × 7 ≈ 12.124

Phân tích độ phức tạp

  • Thời gian: O(1)
  • Không gian: O(1)

Kết luận

Lục giác đều có 2 loại đường chéo với độ dài chính xác: a√3 (ngắn) và 2a (dài). Nên dùng sqrt(3) thay vì xấp xỉ 1.73.