思路如下:
隨即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?<?loop;?k++)?{
int?times?=?0;//?循環的次數
int[]?ary;//?數組,存儲4個隨機數
while?(true)?{
times++;//?次數+1
ary?=?new?int[4];
for?(int?i?=?0;?i?<?ary.length;?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次