设 f(n, m, k) 表示从1到n 共n个数中取m个数,至多有k连号的所有可能数。
那么有以下递推公式
1. m<k 时 f(n, m, k)= f(n, m, m) = c(n,m) c(n,m) 表示从n个中取m个的组合数
2. m=0 f(n, m, k)=1
3. f(n, m, k) =∑ ∑ f(n - i - j, m - j, k) ( i=1 to n-m+1 , j=1 to k)
f(n - i - j, m - j, k) 表示从最小开始计算,第一个被取的数是i,与i相连的数有j个的可能性。