lisp编程怎么解决分糖问题?
将n(n<60)颗糖分给k(1 £ k < 20)个人,每人分到的数量至少1颗、至多m (1 £ m < 10)颗,一共有多少种分法?并列出所有分法。
例如:当n = 3,k = 2,m = 2时,只有1种分法:(1,2).其中(1,2)和(2,1)被认为是同一种分法.
再如:当n = 6,k = 3,m = 3时,有2种分法:(1,2,3),(2,2,2).
对于n=10,k=4,m=4的结果实际上只有5种方案:
1:1 1 4 4 2:1 2 3 4 3:1 3 3 3 4:2 2 2 4 5:2 2 3 3
|