首先我说明下,第一你要准备的是N个骰子所有的排列组合数,这并不是编程问题,是数学问题,我一时忘记了算法...好像是A6n什么的...你去然后替代了下面的算法表达式就好了..我的算法的基本思路是,先对应N个骰子算出排列的组合数,然后随机1-7的数,判断,list中是否有,有就不放,没有就放,最后判断下list的大小是否等于你算出的组合总数,如果等于,就代表已经算出所有组合了.... int total = 0;
创新互联专注于泰州企业网站建设,成都响应式网站建设,商城建设。泰州网站建设公司,为泰州等地区提供建站服务。全流程按需求定制制作,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务
public void addTotal(int n){
this.total =算法表达式; }
public void count(List list){
int i = random.nextInt(7);
if(list.contains(i)){
count(list);
}else{
list.add(i);
}
if(list.size()==this.total){
return;
}
}
public static void main(String[] args) {
Test t = new Test();
int n = 3;
t.addTotal(n);
List list = new ArrayList();
}
Scanner sc = new Scanner(System.in);
int numA=4;//排列4个
int numC=3;//组合3个
System.out.println("请输入四个个位数:");
ListInteger list = new ArrayList();
for (int i = 0; i numA; i++) {
System.out.printf("第%d个:",i+1);
list.add(sc.nextInt());
}
int a=1;
int b=1;
for (int i = 0; i numC; i++) {
a=a*(numA-i);
b=b*(i+1);
}
System.out.println("组合数为:"+a/b);
如果是四个不同的数的话是这样
要计算 C_7^1+C_7^2+C_7^3+C_7^4+C_7^7+C_n^n 的值,可以使用 Java 中的组合数公式(即 n choose k 公式)来实现。具体方法如下:
首先,需要定义一个用于计算组合数的函数。可以使用以下代码实现:
public static int combination(int n, int k) { if (k == 0 || k == n) { return 1;
} else { return combination(n-1, k-1) + combination(n-1, k);
}
}
这个函数使用递归方式计算组合数,其中 n 为总数,k 为选择的数目。如果 k 等于 0 或者 k 等于 n,组合数就为 1。否则,递归地计算 C_{n-1}^{k-1} 和 C_{n-1}^k 的和。
然后,可以使用该函数计算给定的组合数和。可以使用以下代码实现:
public static void main(String[] args) { int sum = 0; for (int i = 1; i = 4; i++) {
sum += combination(7, i);
}
sum += combination(7, 7); // 在此处添加需要计算的 C_n^n 的值
System.out.println(sum);
}
这段代码使用一个 for 循环来计算 C_7^1、C_7^2、C_7^3 和 C_7^4 的和,并使用 combination 函数来计算每个组合数的值。然后,它添加 C_7^7 的值(即 1),并输出总和。
如果需要计算 C_n^n 的值,只需在代码中添加一个额外的计算语句,例如:
int cn = combination(n, n);
sum += cn;
这样就可以计算 C_n^n 的值,并将其添加到总和中。