Algorithm 每个函数有两个值的递归伪代码

Algorithm 每个函数有两个值的递归伪代码,algorithm,recursion,pseudocode,Algorithm,Recursion,Pseudocode,我正在研究这个问题,我认为这是一个递归问题。 每个函数的两个值(参数),而不是一个,是我遇到的问题 //前提条件:n和k是非负整数 int f(int n, int k) if (k * n == 0) return 1 else return f(n - 1, k - 1) + f(n - 1, k) end if end f 调用f(4,2)返回什么值 我已经搜索了相当广泛的,我画了一个空白。 如果你能给我指出一个方向,特

我正在研究这个问题,我认为这是一个递归问题。 每个函数的两个值(参数),而不是一个,是我遇到的问题

//前提条件:n和k是非负整数

int f(int n, int k)

    if (k * n == 0) 
        return 1 
    else 
        return f(n - 1, k - 1) + f(n - 1, k) 
    end if 
end f
调用f(4,2)返回什么值

我已经搜索了相当广泛的,我画了一个空白。
如果你能给我指出一个方向,特别是在处理这两个值时,我会非常感激。

如果我必须解决这个问题,我会为
f
的值创建一个表格,在你得到
f(4,2)
的答案之前填充一个小值。如果您想找出一个更通用的模式,这个表也应该有助于发现任何模式

对于初学者来说,在n=0或k=0的基本情况下很容易注入:

k\n | 0  1  2  3  4
----+----------------
  0 | 1  1  1  1  1
  1 | 1  ?  ?  ?  ?  ...
  2 | 1  ?  ?  ?  ?  
        ...
然后,您可以开始填写非递归案例。例如,
f(1,1)
等于
f(0,0)
+
f(0,1)


如果您仍在寻找实际答案,则答案为11:

$ python3
Python 3.5.1 (default, Mar 20 2016, 13:59:31)
[GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> def f(n, k):
...     if k * n == 0:
...         return 1
...     else:
...         return f(n-1, k-1) + f(n-1, k)
...
>>> f(4, 2)
11

你有代码,需要知道它返回什么。所以,运行代码,或者在纸上完成它。为什么要搜索它?步骤1:由于
4*2
不是
0
f(4,2)
返回
f(3,1)+f(3,2)
。您的问题已简化为两个更简单的问题。如果您认为某个答案解决了您的问题,您可以向上投票和/或将该问题标记为已接受,而不是用注释来回答。
$ python3
Python 3.5.1 (default, Mar 20 2016, 13:59:31)
[GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> def f(n, k):
...     if k * n == 0:
...         return 1
...     else:
...         return f(n-1, k-1) + f(n-1, k)
...
>>> f(4, 2)
11