C++ 中的二十边形数

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

在本文中,我们将讨论 C++ 中的二十边形数。在讨论 C++ 中的二十边形数之前,我们必须了解其公式、示例、时间复杂度、空间复杂度和应用。

什么是二十边形数?

二十边形数是从 20 边形(或具有 20 条边的多边形)的概念派生出来的。它属于图形数类,表示可以排列成 20 边形的多边形的均匀间隔点的几何图案。这些数字属于一个数学序列,其中每个项都由按特定可数模式排列的点图表示。

二十边形数中点的结构是独特的。排列通过图中心的一个中心共同点保持不变。围绕这个中心点系统地添加连续的层点。第 i 层中的每个点与其相邻层中的某些点具有一致的几何关系。这些点以形成类似于 20 边形多边形的图的方式排列。

二十边形数根据基于多边形属性的特定公式计算和建模。除了它们的数学美之外,这些数字还可用于几何学、组合学和艺术。可视化这些数字自然产生的对称性和组织使它们成为数学理论和设计研究的一个引人入胜的主题。

公式

第 n 个二十边形数的公式是

I(n)= (18.n^2 −16.n)/2

  • N: 它表示项在序列中的位置。
  • I(n) 是位置 n 处的二十边形排列中的点数。
  • 对于给定位置 n,该公式确定形成二十边形(或 20 边形多边形)所需的点数。
  • 它来自点在多边形形状中的几何排列方式。

此公式允许直接计算第 n 个二十边形数,无需迭代计算。

示例

1. 对于 n=4

将 n=4 代入公式

(4) = (18*4^2 − 16*4)/2

=(18*16 − 64)/2

=(288 − 64)/2

=224/2

=112

位置 4 的二十边形数是 112。

2. 对于 n=6

将 n=6 代入公式

(6) = (18*6^2 − 16*6)/2

=(18*36 −96)/2

= (648−96)/2

=552/2

=276

代码实现

让我们举一个例子来说明 C++ 中的二十边形数

输出

 
Enter the position of the term to find the Icosagonal number: 9
The 9th Icosagonal number is: 657   

说明

这个 C++ 程序确定序列中特定位置的二十边形数。二十边形数属于图形数序列,从 20 边形多边形中获得。 calculateIcosagonalNumber 函数使用数学公式 "(18⋅n^2-16⋅n)/2" 来有效计算二十边形数,其中 n 是序列的位置。用户必须输入所需位置 (termPosition)。如果输入不是正整数,程序将显示一条错误消息,指示输入无效。否则,应用程序使用该函数确定指定位置的二十边形数并显示它。应用程序根据用户输入动态生成输出以确保清晰度。这种结构在保持程序的简单性和效率的同时,使其强大、交互且用户友好。

复杂度分析

  • 时间复杂度 - O(1): 一个简单的数学公式,涉及乘法、减法、除法和 n^2 等基本算术运算,用于计算二十边形数。无论输入大小如何,计算都是常数时间,因为不使用递归或迭代方法。
  • 辅助空间 - O(1): 程序将输入 termPosition 和结果 icosagonalNumber 等变量存储在固定量的空间中。由于不需要额外的数据结构或动态内存分配,因此使用了固定量的辅助空间。

二十边形数的应用

C++ 中二十边形数的几个应用如下:

  1. 多边形数论: 二十边形数是图形数的一个子集,用于研究几何形状和数字之间的联系。它们的特性,包括可除性、与其他多边形数的关系以及它们在各种数学问题中的出现,是它们研究的原因。
  2. 算法问题解决: 二十边形数经常用于涉及数字序列、模式识别或算法挑战或竞争性编程中的几何问题解决的挑战中。在需要特定多边形数来模拟复杂场景的优化或组合情况下,生成二十边形数的方法很有用。
  3. 形状可视化: 20 边形多边形中的点集合可以用二十边形数表示。在计算机图形学、建筑或几何艺术领域,在生成正多边形的模拟或可视化时,它特别有用。