Java中的组合函数

Java中的组合函数,java,math,statistics,Java,Math,Statistics,在我书中的一个例子中,它创建了两种方法。一个叫组合,一个叫阶乘。combinations方法的主体包含以下代码 private int combinations(int n, int k){ return factorial(n) / (factorial (k) * factorial (n-k)); } 在一个实际看到这个公式的数学结果的例子中,教科书给出了以下例子。n=5,k=2。它给出了以下步骤,并说你应该得到10。我很难理解逻辑 是的!在这种情况下有特殊意义吗?5怎么样你

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

private int combinations(int n, int k){
  return factorial(n) / (factorial (k) * factorial (n-k));
    }
在一个实际看到这个公式的数学结果的例子中,教科书给出了以下例子。n=5,k=2。它给出了以下步骤,并说你应该得到10。我很难理解逻辑

是的!在这种情况下有特殊意义吗?5怎么样你怎么知道的!2倍!3=2x6

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



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


         =   120 
           _________
             2 x 6 

         =  10
(阶乘)符号表示数字之前所有整数的乘积。例如:

5! = 5 * 4 * 3 * 2 * 1 = 120
这应该有助于澄清
factorial(int)
方法在做什么


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

!表示阶乘

5! = 120 
因为

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

因为

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

n表示因子(n)
。它等于:-

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


!3
在你的书中是一个打字错误。它并不表示非负整数n的阶乘,由
n表示。
及

所以

相等于

    =   120 
       _________
         2 x 6 

哇!我觉得自己很愚蠢。我刚刚读了一节关于使用阶乘的内容。“我只是没有把这些点联系起来。”叶戈尔丘马科夫说。也许你不应该说得这么粗鲁。你甚至可以礼貌地说同样的话。@RohitJain也许我太无礼了,但我绝对建议Jessika学习一些数学,因为没有数学,她很难在cs中取得更大的进步。@YegorChumakov。没错。建议什么是正确的是好的。但要有礼貌,这就是我想说的。不管怎么说,这是常有的事。干杯:)我知道这是什么意思,但由于某种原因,当我在公式中看到它时,我忘记了。@JessicaM。。没关系。这是常有的事。很多时候,这个非常明显的概念从你的脑海中溜走了。:)我刚读了一节关于阶乘的内容,但我忘了!意思是阶乘。@JessicaM。我想是3!写错了!3在你的课本上。我错放了!3而不是3!当我打字的时候。
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