Pell Number in Java

2025 年 5 月 7 日 | 阅读 3 分钟

在本节中,我们将学习什么是佩尔数,并创建 Java 程序 来检查给定的数是否为佩尔数佩尔数程序经常在 Java 编码面试和学术中出现。

佩尔数

它是一个数字序列或数列,以 0 和 1 开始,后续数字是前一个佩尔数的两倍与前一个佩尔数之和。它是 OEIS 序列 A000129。有时也称为 lambda 数。它是一个递归定义的序列,类似于斐波那契数列。我们可以将佩尔数列用数学方式表示如下:

Pell Number in Java

其中 n>1。

佩尔素数是素数中的佩尔数。前几个佩尔素数是 2, 5, 29, 5741, 33461, 44560482149, 1746860020068409, 68480406462161287469 等。它是 OEIS 序列 A086383

它可用于查找 平方三角数,构建 直角等腰三角形 的整数近似值,以及解决某些 组合枚举 问题。

佩尔数示例

让我们看看佩尔数列是如何生成的。

我们知道数列的第一项和第二项是 0 和 1。基于这两项,我们可以计算出下一个佩尔数。

P0 = 0

P1 = 1

P2 = 1 * 2 + 0 = 2

P3 = 2 * 2 + 1 = 5

P4 = 5 * 2 + 2 = 12

P5 = 12 * 2 + 5 = 29

P6 = 29 * 2 + 12 = 70

P7 = 70 * 2 + 29 = 169

P8 = 169 * 2 + 70 = 408

P9 = 408 * 2 + 169 = 985

P10 = 985 * 2 + 408 = 2378

我们已经计算出了佩尔数列的前十项。类似地,我们可以计算出其他项,例如 5741, 13860, 33461, 80782, 195025, 470832, 1136689, 2744210, 6625109, 15994428, 38613965, 93222358, 225058681, 543339720, 1311738121, 3166815962, 7645370045, 18457556052, 44560482149, 107578520350, 259717522849。

查找佩尔数的步骤

  • 将数列的前两项初始化为 P0=0 和 P1=1。
  • 为了计算第三项 (P2),请执行以下操作:
    将前一项 (P1) 乘以 2,再加上前一项的佩尔数,即 P0。因此,我们得到数列的第三项。
  • 重复步骤 2,直到计算出所需的项数。

让我们在 Java 程序中实现上述步骤。

佩尔数 Java 程序

使用递归方法

PellNumberExample1.java

输出

The 7-th term of the series is: 169

让我们看看使用迭代方法查找佩尔数的另一种方法。

使用迭代方法

PellNumberExample2.java

输出

The 17-th term of the series is: 1136689

打印指定限制内的所有佩尔数

PellNumberExample3.java

输出

Enter the limit: 20
First 20 Pell numbers are: 
1, 2, 5, 12, 29, 70, 169, 408, 985, 2378, 5741, 13860, 33461, 80782, 195025, 470832, 1136689, 2744210, 6625109, 15994428