C++ 中的中心立方数

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

在本文中,我们将讨论 C++ 中的中心立方数。在讨论 C++ 中的中心立方数之前,我们必须了解一些公式,例如时间复杂度和空间复杂度。

中心立方数

中心立方数是一种独特的图形数,它表示由围绕中心点的同心立方层创建的三维结构。这些数字表示可以以立方体中心排列的总点数,其中每个附加层都向各个方向对称地向外增长。

简而言之,中心立方数是创建中心立方体结构所需的球体(或晶格点)的数量,其中在每个层超出中心的方形侧面上添加的点都建立在其之前的点上。因此,3D 形状会增长,并且其点分布是对称且视觉平衡的。

中心立方数形成一个序列,其中每个项表示一种特定的递增值模式。该序列的前几项是 1、9、35、91、189、341、559、855、1241、1729、2355、3149、4131、5331 和 6789……

公式

中心立方数的数学公式

第 n 个中心立方数可以使用以下公式计算:

其中

  • Cn 代表第 n 个中心立方数。
  • 中心立方数的索引由 n 表示。
  • 在每一层中,立方体的增加尺寸由项 (2n+1) 表示。
  • 在结构化的立方体形成中,点的完整分布由表达式 (n^2+n+1) 考虑。
  • 这个公式有效地确定了创建具有 n 层的中心立方体所需的点数。

示例

一个计算示例。

让我们计算第六个中心立方数以展示该公式的工作原理:

C6=(2(6)+1)×(6*6+6+1)

C6 =(12+1)×(36+6+1)

C6=13×43=341

341 是序列中的第 6 个中心立方数。

编码

让我们举一个例子来说明 C++ 中的中心立方数。

输出

Enter the number of terms to compute: 10
Centered Cube Numbers for the first 10 terms:
C_1 = 9
C_2 = 35
C_3 = 91
C_4 = 189
C_5 = 341
C_6 = 559
C_7 = 855
C_8 = 1241
C_9 = 1729
C_10 = 2331   

说明

此 C++ 应用程序计算第 n 个中心立方数,它表示围绕中心点形成同心立方层的三维图形数。第 n 项由函数 computeCenteredCubeNumber(int term) 使用公式 (2n+1)(n^2+n+1) 计算。main() 方法提示用户指定要计算的项数。如果输入不是正数,则会出现错误通知,程序终止。否则,对于每个项,调用该函数并打印结果,因为循环从 1 迭代到 numberOfTerms。该应用程序有效地管理多个计算,从而确保可读性和易用性。

时间复杂度

该程序的时间复杂度为 O(n),其中 n 是用户输入的项数 (numberOfTerms)。原因在于程序通过在 for 循环中迭代每个项一次来计算并打印中心立方数。由于 computeCenteredCubeNumber 函数以常数时间 O(1) 运行,因此运行 n 次的迭代主导了整个时间复杂度。

空间复杂度

该程序的空间复杂度为 O(1),这意味着无论输入的大小如何,它始终使用相同数量的内存。程序只存储少量变量,例如 numberOfTerms 和 i,并且每个项的计算不需要随输入扩展的额外空间。因此,没有使用随项数变化的额外空间。

结论

在几何可视化和三维数论中,中心立方数很重要。它们具有同心层,类似于立方体,每个都为整个结构添加一个新点。这些数字增长的数学模式可以通过公式有效地计算,或编程到计算机中进行更复杂的计算。

鉴于它们在组合数学、晶体学和 3D 建模中的应用,这些数字是数论和计算几何中进一步探索的有趣主题。