0

假设我们有两盒铅笔(第一个盒子是蓝色的,第二个盒子是红色的)。所以现在的问题是,我们可以用多少种方式将 x 支红色铅笔和 y 支蓝色铅笔排成一行?

示例:我们有 3 支红色铅笔和 1 支蓝色铅笔。然后我们有4种不同的方式。组合:BRRR、RBRR、RRBR、RRRB。

因此,使用 10 支红色铅笔和 10 支蓝色铅笔,我们有 184756 种不同的排列方式。那么伙计们,如何以递归方式编写这个?

非常感谢您的帮助。

4

3 回答 3

5

这听起来像是家庭作业,所以这里有一些提示:

在处理递归时,您需要考虑基本情况。这里这个基本情况是 0 支铅笔。您可以通过多少种方式订购 0 支铅笔?

好的,现在是递归案例:您可以通过多少种方式订购非零数量的铅笔?如果你有任何红色铅笔,那么你可以从一支红色铅笔开始,然后是其余的铅笔。如果你有任何蓝色铅笔,那么你可以从蓝色铅笔开始,然后是其余的铅笔。

于 2009-11-07T18:13:07.580 回答
0

Think binary tree, depth = # of pencils in the line.

The root is zero pencils. Level 1 had one blue pencil and one red pencil. Level 2....you see the pattern.

于 2009-11-07T19:41:44.813 回答
-1

there is no need to do it in recursion form since it can be calculated using (x+y)!/(x!y!) but if u're insistent u can use something like this: C(x,y)=C(x-1,y)+C(x,y-1) with base cases: C(z,0)=C(0,z)=1 that z is any natural number

于 2009-11-07T19:42:11.257 回答