有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案