我正在开发一个单独的程序,它有一堆gui
,所以我制作了一个更简单的程序,试图寻求帮助。
我真的不太了解permutations
和combinations
。
无论如何,我在这里有一段代码可以解决这个问题:
F (n,r) = n!/(r!(n-r)!)
您可以更改代码中的n和r,它会为您提供这两个输入的答案。
public class peanuts
{
static int n,r;
public static void main (String[] args)
{
n= 8;
r=3;
int m=1;
if(n>>1 < r)
r = n - r;
for(int o=n+1-r;o<n+1;o++)
m *= o;
for(int o=r;o>0;o--)
m /= o;
Math.round(m);
System.out.println ("C("+n+","+r+ ") is "+ m );
}}
我想略微修改它以解决这个排列函数:
F (n,r) = n!/(n-r)!)
答案 0 :(得分:2)
删除除以r!
的第二个for循环。
for(int o=r;o>0;o--)
m /= o;
这会将m
除以r!
。删除此循环。
答案 1 :(得分:2)
计算排列的公式为:
F (n,r) = n!/(n-r)!
计算组合的公式为:
F (n,r) = n!/(r!(n-r)!)
所以你只需删除第二个for
循环,在其中你用因子r除以,删除它:
for(int o=r;o>0;o--)
m /= o;