C++ Bertrand 假设

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

在本文中,我们将探讨伯特兰假说及其在 C++ 中的示例。

什么是伯特兰假说?

法国数学家 Joseph Bertrand 将伯特兰假说命名为一项重要的数学理论,这导致了伯特兰的名字。伯特兰在 1845 年首次提出该定理——英国数学家在 1845 年首次提出,然后由杰出的俄罗斯数学家 Pafnuty Lytovich Chebyshev1852 年真正证明。根据这个假设,素数的分布非常重要。这项研究将重点关注整个过程中如何有进一步的步骤,其中还涉及 C++ 应用程序。伯特兰假说指出,对于任何正整数 n 和任何大于 3 的整数 n/2,存在一个整数 p,使得 p 是素数。这导致了素数定理,即在 n 附近,素数大约是其值的两倍。就像数字越大,我们得到的素数就越少。因此,伯恩哈德·黎曼的假说奠定了数论的基础,它在许多不同的定理和应用中扮演着非常重要的角色。现在,让我们看看伯特兰假说的 C++ 版本。在迭代方法中,我们的程序将输出大于 n 的最小素数 p。

示例 1

让我们举一个例子来说明 C++ 中的伯特兰假说。

输出

The prime numbers in the range (20, 38)
23
29
31
37

说明

在下面的程序中,分配了 isprimeNum() 函数。这是一个以整数作为输入来检查它是否是素数的函数。它从 2 到该数的平方根执行迭代,并且该数只能有一个除数。如果检测到除数,该函数返回 False,表示该数不是素数。否则,它为 false,这意味着该数是合数。main() 函数接收 20 作为其素数范围的上限。然后,代码通过确定范围的最高元素来继续。它通过将 num - 2 乘以两次来执行。在此顶部语句之后,表示循环从 num + 1 到 2 * num − 2 开始工作,并遍历给定范围的每个元素。它为每个数字调用 isprimeNum() 函数来检查它是否是素数。如果该数字是素数,它将显示在控制台上。

示例 2

让我们再举一个例子来说明 C++ 代码中的伯特兰假说。

输出

Please enter the number: 24
The least(smallest) prime number which is greater than 24 is 29

说明

在此示例中,代码在 C++ 中实现了 伯特兰假说。它定义了两个函数:checkPrime(),用于确定值是否为素数并处理任何特殊情况,并遍历奇数。findtheNextPrimeValue() 是一种方法,用于查找大于输入的下一个素数,并处理特殊情况,并且必须以 2 为增量直到找到素数。在 main() 函数中,调用用户输入一个数字。此外,代码将使用 pVal 输入应用 findtheNextPrimeValue() 方法,该输入将存储在新的素数值中。之后,它回复最小的素数,该素数大于输入的数字。最后,当代码找到所有大于输入的最大素数时,它正确地实现了伯特兰勋爵的假设。

伯特兰定理被用来解释可能的 H 结果,例如市场上同质产品的单一价格均衡,其中完全弹性的需求可以导致整个供应中价格相同。

伯特兰假说或伯特兰定理的应用

伯特兰假说或伯特兰定理在 C++ 编程中有许多应用。其中一些应用如下

  1. 素数生成: 伯特兰假说的计算优势之一是它使在给定范围内查找素数的整个过程变得非常容易。通过使用循环范围并应用伯特兰假说,我们将能够非常高效地定位和存储素数。
  2. 素数测试: 针对非常大的数字进行素数测试的主要方法是伯特兰假说。使用名为“伯特兰假说检查”的过程,我们可以快速评估该数字是合数还是有可能是素数。
  3. 密码学: 伯特兰假说用于几个处理素数的加密算法。例如,它是一种为 RSA 加密和椭圆曲线密码学生成大素数的算法。
  4. 优化和算法设计: 尽管至今可能缺乏正式证明,但伯特兰假说作为一种启发式方法,在解决某些优化问题或启动算法方面具有更大的意义。此属性帮助我们对素数做出假设,并通过已经支持素数来设计更快的算法。

结论

总而言之,伯特兰假说,也可以表示为伯特兰猜想,是一个重要的数学定理,涉及素数的分布。它说对于任何整数 n>3,在 n < p < 2n 之间存在一个素数。Joseph BertrandPafnuty Chebyshev 等数学家证明了这一定理。伯特兰假说在 C++ 语言中通过用于素数生成、素数测试、密码学和优化算法而发挥着至关重要的作用。将伯特兰假说原理纳入程序设计使开发人员能够完成诸如在给定素数范围内生成素数、素数测试或为密码算法和算法优化生成素数等任务,这些任务都嵌入了关于素数的假设。