展开全部
思路如下32313133353236313431303231363533e58685e5aeb931333365643537:随即4个数字(1~6) 用来模拟4个色子
数字全部存入数组ary,.然后升序排列.
如果满足两两相等,那么已经排序好的数字,就是ary[0]=ary[1]; ary[2]=ary[3];
然后判断ary[0]+ary[2]==6 .如果等于6 那么满足要求,不等于6 ,那么继续下次循环
参考代码import java.util.Arrays;
public class RandomDemo {
public static void main(String[] args) {
int loop = 5;// 重复5次试验
for (int k = 0; k
int times = 0;// 循环的次数
int[] ary;// 数组,存储4个随机数
while (true) {
times++;// 次数+1
ary = new int[4];
for (int i = 0; i
ary[i] = getNum();// 添加随机数
}
Arrays.sort(ary);// 用数组工具类进行排序
// 因为有两两相等的情况, 那么就是 ary[0]=ary[1] ary[2]=ary[3] 能减少很多的if else判断
// 如果两两相等.且两值和等于6 ,那么跳出循环
if (ary[0] == ary[1] && ary[2] == ary[3] && ary[0] + ary[2] == 6) {
break;//跳出
}
}
System.out.println("两个数字分别是" + ary[0] + "和" + ary[2] + "\t" + "循环了" + times + "次");
}
}
//该方法用于返回一个 [1,6]之间的数字
private static int getNum() {
return (int) (Math.random() * 6) + 1;// 1~6之间的随即数
}
}
测试结果两个数字分别是1和5循环了22次
两个数字分别是1和5循环了12次
两个数字分别是3和3循环了105次
两个数字分别是1和5循环了128次
两个数字分别是2和4循环了96次