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ại | Code gốc | Chí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.