使用Random物件生成n個[a,b]區間的隨機數
阿新 • • 發佈:2019-01-04
最近在看一些排序演算法,為了方便模擬資料,就寫了一個方法用於生成指定個數,指定區間的 隨機數
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)); } }