问题描述
我试图借助几个示例来理解递归。
我发现了使用递归在给定大小为n数组中打印r元素的所有可能组合的示例。
他们正在使用表达式背后的想法:
我在这里想要理解的是该表达的概念含义。 我读过不同的文章,但找不到令人满意的解释。
使用此表达式的数学或实际示例将非常有帮助。
1楼
首先,数学上的组合有不同的表示法:
使用第一个,您的公式是
它的左侧表示:从n元素集中选择r元素的方式的数量 。
令S为n元素的集合。
令x为它的最后一个元素,因此集合S例如
+-------------+---+
| a b c d e f | x |
+-------------+---+
令C是集合S中r元素的任意组合。
(特别是,按照刚刚介绍的示例,您可以想象r = 3 , n = 7因为集合是{a, b, c, d, e, f, x} 。)
只有两种可能性:
-
C包含x(例如C = {a, d, x}),或 -
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)元素-因此有
如何选择这样的组合。