创建一个长度为6的int型数组,要求数组元素的值在1-30之间,且随机赋值。同时要求元素值各不相同。
要求1:random产生[ 0 , 1)的随机double型数据,乘以范围取整,得到数的范围为[左区间, 右区间 - 1],最后整体 + 1即为[左区间 + 1, 右区间]。
要求2:方法为用while循环刷随机数,这题还是比较简单的。
我测试了几遍自己的代码,没有超过1ms的,整体来说还是比较快的
package p1.text;
import java.util.*;
/**
* @author WitMoy
* @version V1.8
* @date : 2022-07-02 18:16
*/
public class Main {
public static void main(String[] args) {
long begin = System.currentTimeMillis();
int[] ans = new int[6];
for(int i = 0; i < 6; i++){
ans[i] = (int)(Math.random()* 30 + 1);
while(true){
boolean flag = true;
for(int j = 0; j < i; j++){
if(ans[i] == ans[j]){
flag = false;
break;
}
}
if(flag) break;
ans[i] = (int)(Math.random()* 30 + 1);
}
}
System.out.println(Arrays.toString(ans));
long end = System.currentTimeMillis();
System.out.println("\n用时: " + (end - begin) + "ms");
}
}