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

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

Giới thiệu

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

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

Đường chéo của ngũ giác đều cạnh a:

d = a × φ = a × (1 + √5) / 2 ≈ a × 1.618

Lưu ý: Code gốc dùng hệ số 1.22 là không chính xác. Hệ số vàng φ ≈ 1.618.

Chứng minh

Trong ngũ giác đều, đường chéo và cạnh tạo thành tam giác vàng. Tỷ số đường chéo/cạnh = số vàng φ.

φ = (1 + √5) / 2 ≈ 1.618033988749895

Mã nguồn hoàn chỉnh (đã sửa hệ số)

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

float pentagonDiagonal(float side) {
    if (side < 0) return -1;
    const float GOLDEN_RATIO = (1 + sqrt(5)) / 2; // φ ≈ 1.618
    return GOLDEN_RATIO * side;
}

int main() {
    float s = 7;
    cout << fixed << setprecision(2) << pentagonDiagonal(s) << endl;
    return 0;
}

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

11.33

So sánh hệ số

Hệ sốGiá trịGhi chú
Code gốc1.22Sai
Số vàng φ1.618Đúng

Các đường chéo khác của ngũ giác

Ngũ giác đều có 5 đường chéo, tất cả cùng độ dài. Chúng tạo thành ngôi sao năm cánh (pentagram) bên trong.

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

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

Kết luận

Đường chéo ngũ giác đều liên quan đến số vàng φ. Cần sử dụng công thức chính xác (1+√5)/2 thay vì xấp xỉ 1.22.