java递归置换(计数规则)
我看了一大堆问题,没发现这个。我需要编写一个递归方法,返回一个置换,P(N,K)。意思是,20个对象的池,画3,你画它们的顺序有多少种可能性?答案是20*19*18
以下是我到目前为止得到的信息:
public double perm(long N, long K)
{
if (K == 1)
return N;
else
return perm((N*(N-1)), (K-1));
}
N是游泳池,K是拉力的多少。我的问题是如何制作“N*(N-1)*(N-2)…”小活儿。假设我这样做:
perm(10,3)
在我第一次通过我得到的代码之后,N将是10*9,或者90,这意味着在第二个循环中,它将计算90*89,而不是(10*9)*8。我不知道这是怎么回事,但教授指定了它,所以它一定是可能的
我可以用FOR-lop很容易做到这一点,但它不能是FOR-lop。 我不是真的想要解决方案,只是一些指导。谢谢
共 (0) 个答案