您的位置:首页 > 其它

使用Random对象生成n个[a,b]区间的随机数

2017-12-24 09:50 330 查看
最近在看一些排序算法,为了方便模拟数据,就写了一个方法用于生成指定个数,指定区间的 随机数

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
;
//埋下种子,注意相同种子的不同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));
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: