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个球,
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));
}
}
- 把所有可能列出来,假设每个球都不一样,所以有(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));
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯