1

在我书中的一个示例中,它创建了两种方法。一种称为组合,一种称为阶乘。组合方法的主体包含以下代码

private int combinations(int n, int k){
  return factorial(n) / (factorial (k) * factorial (n-k));
    }

在一个实际看到这个公式的数学如何计算的例子中,教科书给出了下面的例子。n = 5 和 k = 2。它给出了以下步骤,并说你应该得到 10。我很难理解逻辑。

做 !在这种情况下有特殊含义吗?5怎么了!= 120 !2 x !3 = 2 x 6 怎么算?

C (n,k)  =     n! 
           _________
           k! x (n - k)! 



C (5,2)  =     5! 
           ___________
             2! x !3 


         =   120 
           _________
             2 x 6 

         =  10
4

4 回答 4

1

!表示阶乘。

5! = 120 

因为

5! = 5 * 4 * 3 * 2 * 1

2! x 3! = 2 * 6 

因为

2! x 3! = (2 * 1) * (3 * 2 * 1)

阶乘

于 2012-10-26T05:30:51.240 回答
1

n!意味着factorial(n)。它等于: -

n! = n * (n - 1) * (n - 2) * .... * 1

所以,

5! = 5 * 4 * 3 * 2 * 1 = 120

而且!3是你书中的一个错字。它不代表一个factorial

于 2012-10-26T05:30:53.327 回答
0

!阶乘)符号表示直到并包括该数字的所有整数的乘积。因此,例如:

5! = 5 * 4 * 3 * 2 * 1 = 120

这应该有助于澄清该factorial(int)方法的作用。

顺便说一句,如果您的书实际上打印的是“!3”而不是“3!”,那是一个错字。

于 2012-10-26T05:29:47.953 回答
0

非负整数 n 的阶乘,记为n!. 和

n! = n * (n - 1) * (n - 2).... * 1

所以

5! = 5 * 4 * 3 * 2 * 1 == 120
3! = 3 * 2 * 1         == 6
2! = 2 * 1             == 2

C (5,2)  =     5!   
            __________
              2! x 3! 

等于

    =   120 
       _________
         2 x 6 
于 2012-10-26T05:38:55.753 回答