C++ 中计算黄金分割率序列

2025 年 5 月 22 日 | 阅读 4 分钟

在本文中,我们将讨论在 C++ 中计算黄金比例序列,包括其方法、示例、时间复杂度和空间复杂度。

黄金比例

黄金比例 (ϕ),也称为神圣比例,是一个无理数,大约等于 1.6180339887。它来自二次公式

Compute the Golden Ratio Sequence in C++

因此,较大数 (A) 与较小数 (B) 之间应存在大约 1.618 的比例。如果计算出的比例接近 ϕ,则 A 和 B 处于黄金比例。

这种特殊比例是最重要的数学常数之一,可以在斐波那契数列、自然螺旋和经典设计中找到。

这种比例的自然示例可以在金融市场、艺术、建筑、几何甚至自然界中找到。几个世纪以来,它因其美学特性而吸引了数学家和艺术家。

示例

让我们举一个例子来说明 C++ 中的黄金比例序列。

输出

Enter the number of terms (minimum 2): 10
Golden Ratio Sequence using Fibonacci Numbers:
---------------------------------------------------
    n   Fibonacci(n)   Golden Ratio (ϕ)
---------------------------------------------------
    1              1                 N/A
    2              1                 N/A
    3              2            2.000000
    4       3.000000            1.500000
    5       5.000000            1.666667
    6       8.000000            1.600000
    7      13.000000            1.625000
    8      21.000000            1.615385
    9      34.000000            1.619048
   10      55.000000            1.617647
---------------------------------------------------
As n increases, the Golden Ratio converges to ≈ 1.618.   

复杂度分析

  • 时间复杂度:O(N)
  • 辅助空间: O(1)

说明

提供的 C++ 程序使用斐波那契数来计算黄金比例序列。首先初始化前两个斐波那契数 (prev = 1, curr = 1),由于它们的比率未定义,因此会打印出来。接下来,程序从 3 迭代到 n,计算每个斐波那契数作为其前两个数的和 (next = prev + curr)。计算当前斐波那契数与前一个斐波那契数之比 (next / curr) 近似黄金比例。Setw() 用于对齐,setprecision(6) 用于在显示结果的表格中进行精确的十进制表示。最后,它验证输入以确保用户提供一个大于或等于 2 的数字。

黄金比例的应用

下面列出了其中一些应用。

  1. 股票市场分析:技术分析经常采用斐波那契回撤水平,该水平源自 ϕ (1.618),以预测市场走势中可能的支撑位和阻力位。
  2. 乐理:许多音乐作品和节奏都使用了基于 ϕ 的结构,这增强了和声并创建了自然悦耳的编排。
  3. 物理学和宇宙学:在物理学和宇宙学中,黄金比例解释了螺旋星系形成、黑洞动力学和量子力学。它也影响基本的自然模式。
  4. 建筑与设计:建筑与设计中使用了基于 ϕ 的比例,以在帕特农神庙和吉萨金字塔等著名建筑中创建对称性和视觉平衡。
  5. 艺术与美学:为了在蒙娜丽莎等艺术作品中达到完美的构图,列奥纳多·达·芬奇等著名艺术家采用了黄金比例。