C++ Stirling 数2025年3月21日 | 阅读 4 分钟 有趣的数字是特殊的组合对象,它们触发了许多计数问题。在严格的数学意义上,第一类和第二类**斯特林数**可以看作是两个不同的实体。然而,它们有其可理解的版本。存在这两种类型的数字是因为它们计算不同的组合结构,并且都可以解决分区和排列问题。 第一类斯特林数第一类斯特林数 c(n,k) 表示将 n 个元素排列成 k 个循环的方式数。换句话说,相同的数字表示我们可以排列 n 个对象的方式数,使得恰好有 k 个排列循环。 第二类斯特林数将 n 个元素分成 k 个非空、无序集合的方式数称为第二类斯特林数,表示为 **S(n,k)**。当事物被分成组,并且分组内对象的顺序不重要时,这些数字就会出现。 递归公式1. 第一类斯特林数 c(n,k) 通过使用此递归关系,即: 带有其基本情况 2. 第二类斯特林数 S(n,k) 通过使用此递归关系,即: 带有其基本情况 斯特林数的应用C++ 中斯特林数的几个应用如下:
第一类示例代码让我们以一个例子来说明 C++ 中的斯特林数。 输出 Stirling number of the first kind c(5, 2) is: 50 说明
第二类示例代码让我们以一个例子来说明 C++ 中的斯特林数。 输出 Stirling number of the second kind S(5, 3) is: 25 说明
结论总之,**斯特林数**(第一类和第二类)在解决关于排列、分区和循环的组合问题时经常出现。斯特林数有两种类型:一种可以将元素排列成循环,另一种可以将事物分成非空子集。在计算机科学和数学的各种应用中,使用递归公式和动态规划来计算值以实现高效实现,如 C++ 中的示例所示。组合枚举、概率和图论以及许多其他数学研究领域都需要斯特林数,因为它们构成了离散数学。 |
在数组操作和排序问题中,当涉及枢轴元素时,经典算法技术是三向分区。主要目标是根据指定的枢轴值重新排序数组,使其分为三个不同的部分:小于...的元素。
阅读 15 分钟
简介 卡特兰数也可以明确地定义为一串自然数,它们在许多计数问题中再次出现:有效括号表达式的数量、二叉搜索树结构的数量以及网格中的路径数量等等...
7 分钟阅读
引言 平面图的概念与图论的研究密切相关,主要涉及可视化和优化问题。平面图是指一个图可以在平面上绘制而其边不发生交叉,除非在顶点处相交……
阅读 12 分钟
C++ 和 COBOL 都是高级编程语言。C++ 用于系统级编程和开发高度复杂的应用程序。另一方面,COBOL 在公司和政府的业务和财务管理中仍然更广泛地使用。当...
5 分钟阅读
在本文中,我们将讨论 C++ 的居中九角数程序。但在其实现之前,我们必须了解 C++ 中的居中九角数。什么是居中九角数?表示有 K 个点的中心九边形的数字称为...
阅读 4 分钟
在数论中,卡迈克尔数(也称为伪素数)是复合数,它们相对于费马小定理表现出类似素数的行为。费马定理指出,对于素数 p 和任何整数 a(其中 a 不能被 p 整除),以下条件...
阅读 10 分钟
在竞争性编程、软件开发和系统编程的世界中,有效地管理独特的元素集合是一个常见的需求。C++ 标准模板库 (STL) 中的 set 容器完美地满足了这一需求。作为 STL 的基础数据结构之一,...
阅读 17 分钟
计算几何中最具挑战性的问题之一是最小外接圆,也称为最小包围圆。最小外接圆的定义很简单,它是能够完全包围给定集的最小圆...
7 分钟阅读
引言 G 的 G G G 适用于 G G 的 G。G 模 n 模 G G G G G G G G。G G 的 G G G G G G G G G G G。
7 分钟阅读
在本文中,我们将讨论 C++ 中的 multimap size() 函数。但在了解 size() 函数之前,我们必须了解 multimap。Multimap 是 C++ 中的一个排序容器,存在于标准模板库中。通常,map 存储键值对...
阅读 3 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India