永发信息网

java编程有n个红球,m个蓝球,k个绿球,同种颜色的球不作区分,把它们排成一行,几种方式

答案:1  悬赏:60  手机版
解决时间 2021-11-11 21:58
  • 提问者网友:流星是天使的眼泪
  • 2021-11-10 22:18
java编程有n个红球,m个蓝球,k个绿球,同种颜色的球不作区分,把它们排成一行,几种方式
最佳答案
  • 五星知识达人网友:持酒劝斜阳
  • 2021-11-10 23:46
共有n+m+k个球,
    把所有可能列出来,假设每个球都不一样,所以有(n+m+k)! 种排列。
    红球的顺序为n!,黄球的顺序为m!,蓝球的顺序为k!。
    因为三种球除颜色外无区别,所以(n+m+k)!/(n!×m!×k!)即为所求。
代码为:
public class Main {

    
    public static int factorial(int n) {
        if (n == 0 || n == 1) {
            return 1;
        }

        return n * factorial(n - 1);
    }


    
    public static int arrange(int n, int m, int k) {
        return factorial(n + m + k) / (factorial(n) * factorial(m) * factorial(k));
    }

    public static void main(String[] args) {
        // 各种颜色的球各一个共有6种排列方式
        System.out.println(arrange(1, 1, 1));
    }
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯