Figurate Number in Java2025 年 5 月 9 日 | 阅读 8 分钟 形数是数字序列的经典来源。在本节中,我们将学习什么是形数,并创建Java 程序来检查给定的数字是否为形数。形数程序经常出现在 Java 编码面试和学术中。 形数或几何数具有丰富的历史和许多应用。一般来说,形数是可以由具有等距点的规则离散几何图案表示的数字。如果点的排列形成一个规则多边形,则该数字分别称为多边形数。下表描述了形数及其序列。 形数也可以构成其他几何形状,例如中心多边形、L 形、三维(和多维)实体等。 形数当圆上 n 个一般位置的点由直线连接时,形成的三角形(所有顶点都位于圆内)的数量。 形数,也称为几何数。它是可以用等距点的规则几何排列来表示的数字。如果排列形成规则多边形,则该数字称为多边形数。下表描述了形数及其序列。
让我们看一下形数的图形表示。下图说明了这一点。 ![]() 上面所示的多边形数分别称为三角形数、平方数、五边形数和六边形数。 它基于一个 6 维规则单形。它是 OEIS 序列A000579。它也称为二项式系数C(n, 6)。 根据Hyun Kwang Kim的说法,似乎每个非负整数都可以表示为g = 13个此类数字的总和。 ![]() 性质
计算形数的公式
其他一些公式是
Tn=n(n+1)/2 Sn=n2 Pn=n(3n-1)/2 Hn=n(4n-2)/2 HPn= n(5n-3)/2 On= n(6n-4)/2 NOn= n(7n-5)/2 上述公式引出了一个关于一般 N 边形数的猜想公式 Nn=n((N-2)n-(N-4))/2 注意:上述公式仅适用于 N=2、3 和 4。形数示例例如,考虑一个整数集Z = {1, 2, 3, 4, 5, 6}。让我们应用第五个属性来找到形数。 从给定的集合 Z 中,创建包含五个元素的子集。我们得到 {1, 2, 3, 4, 5}, {1, 2, 3, 4, 6}, {1, 2, 3, 5, 6}, {1, 2, 4, 5, 6}, {1, 3, 4, 5, 6}, {2, 3, 4, 5, 6} 从上面的子集中,确定最小的两个数字并将它们相加。即 a(6) = (1+2) + (1+2) + (1+2) + (1+2) + (1+3) + (2+3) = 21 同样,我们可以使用公式a(n) = 3*C(6+1,6)。让我们将 n=6 的值代入公式,我们得到 a(6) = 21 = 3*C(6+1,6) 让我们使用另一个公式来检查数字 84 是否为形数。 a(9) = (1, 3, 3, 1)。 (1, 6, 15, 20) = (1 + 18 + 45 + 20) = 84 因此,第 9 个形数是84。 前几个形数是 0, 0, 0, 0, 0, 0, 1, 7, 28, 84, 210, 462, 924, 1716, 3003, 5005, 8008, 12376, 18564, 27132, 38760, 54264, 74613, 100947, 134596, 177100, 230230, 296010, 376740, 475020, 593775, 736281, 906192, 1107568, 1344904, 1623160, 1947792, 2324784, 2760681, 3262623 使用差分法我们可以使用差分法计算形数。例如,考虑以下九边形数。 ![]() 但是上述方法并不总是有效。 形数类型4 维形数 (A002417)可以使用以下公式计算 a(n)=n*binomial (n+2, 3)。 它是 OEIS 序列A002417。 前几个4 维形数是 1, 8, 30, 80, 175, 336, 588, 960, 1485, 2200, 3146, 4368, 5915, 7840, 10200, 13056, 16473, 20520, 25270, 30800, 37191, 44528, 52900, 62400, 73125, 85176, 98658, 113680, 130355, 148800, 169136, 191488, 215985, 242760, 271950, 303696, 338143, 375440, 415740. 性质
a(n) = n^2*(n+1)*(n+2)/6
计算 4 维形数的公式
4 维形数 (A002418)还有另一个计算4 维形数的公式是 (5*n-1)*binomial(n+2,3)/4 它是 OEIS 序列A002418。 序列A002418的前几个形数是 0, 1, 9, 35, 95, 210, 406, 714, 1170, 1815, 2695, 3861, 5369, 7280, 9660, 12580, 16116, 20349, 25365, 31255, 38115, 46046, 55154, 65550, 77350, 90675, 105651, 122409, 141085, 161820, 184760, 210056, 237864, 268345, 301665, 337995. 性质
计算 A002418 序列形数的公式
其他公式有
4 维形数 (A002419)还有一个计算4 维形数(序列A002419)的公式。我们可以使用以下公式计算 (6*n-2)*binomial(n+2,3)/4。 序列A002419的前几个形数是 1, 10, 40, 110, 245, 476, 840, 1380, 2145, 3190, 4576, 6370, 8645, 11480, 14960, 19176, 24225, 30210, 37240, 45430, 54901, 65780, 78200, 92300, 108225, 126126, 146160, 168490, 193285, 220720, 250976, 284240, 320705, 360570, 404040, 451326 性质
假设我们必须计算 n=4。项是1,4,7,10,得到(1)+(4)+(7)+(10)=22; (1+4)+(4+7)+(7+10)=33; (1+4+7)+(4+7+10)=33; (1+4+7+10)=22;将 22+33+33+22 相加,我们得到110,这是一个形数。 计算 A002419 序列形数的公式
规则形数 (A090466)阶数大于 2 的 k-边形数的排序。如果包含秩 2 或 2-边形数,则每个数字都会出现。它也称为多边形数。它是 OEIS 序列A090466。 小于或等于 10^k 的项数,其中 k = 1, 2, 3, ...:3, 57, 622, 6357, 63889, 639946, 6402325, 64032121, 640349979, 6403587409, 64036148166, 640362343980,等等。 对于所有素数 p >= 5 的平方 p^2,至少存在一个 a(n) 使得p^2 = a(n) + 1。因此,秩为 3 的子集 P_s(3) 就足够了。 证明 对于p >= 5,p^2 == 1 (mod {3,4,6,8,12,24}) 并且 P_s(3) + 1 = 3*s - 2 == 1 (mod 3)。因此,集合 {p^2} 是 {P_s(3) + 1} 的子集。 对于所有素数p > 5,至少存在一个多边形数 P_s(k) + 1 = p,其中 k = 3 或 4,具体取决于 p mod 6。 数字 m,使得 r = (2*m/d - 2)/(d - 1) 是某个 d 的整数,其中 2 < d < m 是 2*m 的除数。如果 r 是整数,则 m 是第 d 个 (r+2)-边形数。 序列 A090466 的前几个数字是 6, 9, 10, 12, 15, 16, 18, 21, 22, 24, 25, 27, 28, 30, 33, 34, 35, 36, 39, 40, 42, 45, 46, 48, 49, 51, 52, 54, 55, 57, 58, 60, 63, 64, 65, 66, 69, 70, 72, 75, 76, 78, 81, 82, 84, 85, 87, 88, 90, 91, 92, 93, 94, 95, 96, 99, 100, 102, 105, 106, 108, 111, 112, 114, 115, 117, 118. 形数 Java 程序下面的 Java 程序检查给定的数字是否为平方数。 FigurateNumberExample1.java 输出 Enter a number: 100 100.0 is a square number. 让我们创建另一个 Java 程序来处理称为九边形数的形数。 NonagonalNumberExample.java 输出 Enter the term you want to find: 4 The 4 rd/th nonagonal number is: 46 |
这是 Google、Amazon、TCS、Accenture 等顶级 IT 公司面试中经常出现的问题。通过解决该问题,人们希望检查面试者的逻辑能力、批判性思维和解决问题的能力。因此,在本节中,我们将……
阅读 13 分钟
? 在这里,我们将检查使用循环来开发更高效的代码。普遍认为,实现循环来解决问题陈述是一种不明智的策略。尽管如此,这里仍有大量的试错空间。要放置...
阅读 6 分钟
在本节中,我们将学习什么是“strobogrammatic numbers”,并创建 Java 程序来检查给定的数字是否为 strobogrammatic numbers。Strobogrammatic numbers 的 Java 程序经常出现在 Java 编码面试和学术中。Strobogrammatic numbers,一个有趣的数学……
阅读 4 分钟
Java 是一种多功能编程语言,以其管理各种数据结构的灵活性而闻名。Java 中的一个重要概念,称为 padding,在管理内存、成功对齐记录和优化统计处理方面起着至关重要的作用。在本节中,我们将讨论 padding...
5 分钟阅读
Java 中的 " ^ " 符号表示 XOR 逻辑运算符,它对两个布尔值执行逻辑异或运算。如果其中一个操作数为 true,另一个为 false,则此运算符返回 true;否则返回 false。XOR 运算符是...
阅读 3 分钟
(用法和示例)Java `new` 关键字通过为新对象分配动态内存来创建类实例,并返回对该内存的引用。它也可以用于创建数组对象。当使用 `new` 关键字时,它会执行类的...
阅读 6 分钟
给出了两个字符串 S1 和 S2。我们的任务是找到子字符串 str,使得 S2 是 str 的子序列。如果存在多个有效子字符串,则考虑最小长度的子字符串。如果有多个有效子字符串...
阅读 4 分钟
在编程中,循环是一系列重复执行的指令,直到满足某个条件。在本节中,我们将通过示例讨论 Java 中的带标签循环。什么是 Java 中的带标签循环?标签是一个有效的变量名,它表示...
阅读 2 分钟
埃拉托斯特尼筛法是一种古老而有效的算法,用于查找小于给定限制的所有素数。该算法以古希腊数学家埃拉托斯特尼命名,经受住了时间的考验,仍然是数论和...中的基本概念。
阅读 4 分钟
Java 9 私有接口方法 在 Java 9 中,我们可以在接口中创建私有方法。接口允许我们声明私有方法,这些方法有助于在非抽象方法之间共享公共代码。在 Java 9 之前,在接口中创建私有方法会导致编译时错误。以下...
阅读1分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India