public class Main {
//得到一个随机数组,长度是n
//数组中每个数,都在1~v之间,随机得到
public static int[] randomArray(int n,int v){
int[] arr=new int[n];
for (int i = 0; i < n; i++) {
arr[i]=(int)(Math.random()*v)+1;//等概率得到一个1~v之间的数
// Math.random()得到的是一个0~1,左闭右开范围内的一个小数00
}
return arr;
}
//为了验证
public static int[] copyArray(int[] arr){
int n=arr.length;
int[] ans=new int[n];
for (int i=0;i<n;i++){
ans[i]=arr[i];
}
return ans;
}
public static boolean sameArray(int[]arr1,int[]arr2){
for (int i=0;i<arr1.length;i++){
if (arr1[i]!=arr2[i]){
return false;
}
}
return true;
}
public static void main(String[] args) {
//随机数组最大长度
int N=100;
//随机数组每个值,在1~V之间
int V=1000;
//N V 自己根据需要设置
//testTime :测试次数
int testTime = 50000;
System.out.println("测试开始");
for (int i = 0; i < testTime; i++) {
//随机得到一个长度,长度在[0~N-1]
int n=(int) (Math.random()*N);
//得到随机数组
int[] arr=randomArray(n,V);
//根据测试方法的数量去确定复制数组的个数
int[] arr1=copyArray(arr);
//然后把这些数组作为参数传给暴力解跟想得到的最优解,判断执行后两数组是否相等
//if 不等 输出 “出错了”,然后缩小数据范围,得到一个比较小的错误数组,然后
//去debug,找出最优解的错误的地方
}
}
}
对数器——验证的重要手段
于 2024-01-21 16:03:47 首次发布