当前位置: 代码迷 >> java >> 使用数组中所有可能的组合了解递归
  详细解决方案

使用数组中所有可能的组合了解递归

热度:17   发布时间:2023-07-31 10:58:14.0

我试图借助几个示例来理解递归。 我发现了使用递归在给定大小为n数组中打印r元素的所有可能组合的示例。

他们正在使用表达式背后的想法:

我在这里想要理解的是该表达的概念含义。 我读过不同的文章,但找不到令人满意的解释。

使用此表达式的数学或实际示例将非常有帮助。

首先,数学上的组合有不同的表示法:

使用第一个,您的公式是

它的左侧表示:从n元素集中选择r元素的方式的数量

Sn元素的集合。 x为它的最后一个元素,因此集合S例如

+-------------+---+
| a b c d e f | x |
+-------------+---+

C是集合Sr元素的任意组合。

(特别是,按照刚刚介绍的示例,您可以想象r = 3n = 7因为集合是{a, b, c, d, e, f, x} 。)

只有两种可能性:

  1. C包含x (例如C = {a, d, x} ),或
  2. C不包含x (例如C = {a, d, e} )。

如果C包含x ,则从剩余的(n - 1)元素中选择剩余的(r - 1)元素(在我们的示例中为2元素)(例如,在我们的示例中的{a, b, c, d, e, f}中) -所以有

如何选择这样的组合。

如果C不包含x ,则从其余(n - 1)元素中选择所有 r (n - 1)元素-因此有

如何选择这样的组合。

  相关解决方案