最近在看一些排序算法,为了方便模拟数据,就写了一个方法用于生成指定个数,指定区间的 随机数
package com.util;
import java.util.Arrays;
import java.util.Random;
/**
* @author 文龙
* @version 2017-12-24 上午7:50:23
*/
public class SortTestHelper {
/**
* [3,7]
* @param n 生成的随机个数
* @param rangel 生成的范围 小的一个
* @param rangeR 生成的范围 大 的一个
* @return 返回一个数组
*/
public static int[] generateRandomArray(int n, int rangel,int rangeR) {
int[] a = new int[n];
//埋下种子,注意相同种子的不同Random对象,每次产生的随机数是一样的
Random random = new Random(System.currentTimeMillis());
for(int i = 0; i < n; i++) {
/**
* 比如[3,7]
* 调用.nextInt(rangeR)的取值范围是[0,rangeR),不包含rangeR --> [0,7)
* 对其取模(rangeR - rangel + 1)后的取值是[0,rangeR - rangel] --> [0,4]
* 到现在的取值范围是[0,4],所以想要取值的范围到[3,7],在原有基础上加上3(7-3)即可
*/
a[i] = random.nextInt(rangeR) % (rangeR - rangel + 1) + rangel;
}
return a;
}
public static void main(String[] args) {
int[] generateRandomArray = generateRandomArray(100, 3, 7);
System.out.println(Arrays.toString(generateRandomArray));
}
}