我试图在几个例子的帮助下理解递归。我发现这个例子使用递归打印r给定大小数组中所有可能的元素组合。n打印给定大小为 n 的数组中 r 个元素的所有可能组合。他们正在使用表达式背后的想法:我在这里试图理解的是这个表达的概念意义。我读过不同的文章,但找不到令人满意的解释。使用此表达式的数学或实际示例将非常有帮助。
1 回答
FFIVE
TA贡献1797条经验 获得超6个赞
首先,数学中的组合有不同的表示法:
使用第一个,你的公式是
它的左侧表示:我们可以从元素集中选择元素的方式的数量。r
n
让S
是一组n
元素。让它x
成为它的最后一个元素,所以集合S
是例如
+-------------+---+| a b c d e f | x |+-------------+---+
Let是集合中元素C
的任意组合。 r
S
(特别是,按照刚刚介绍的示例,您可以想象r = 3
, 和 n = 7
- 因为集合是{a, b, c, d, e, f, x}
。)
只有两种可能:
C
包含x
(例如C = {a, d, x}
),或C
不包含x
(例如C = {a, d, e}
)。
如果C
contains x
,则从剩余元素(r - 1)
(即2
在我们的示例中)中选择剩余(n - 1)
元素(即{a, b, c, d, e, f}
在我们的示例中) - 所以有
如何选择这样的组合。
如果C
不包含x
,则从剩余元素中选择所有 元素 - 所以有r
(n - 1)
如何选择这样的组合。
添加回答
举报
0/150
提交
取消