java实现生成一个随机数、一组随机数【】
随机生成N个不重复数
/** * 随机指定范围内N个不重复的数 * 在初始化的无重复待选数组中随机产生一个数放入结果中, * 将待选数组被随机到的数,用待选数组(len-1)下标对应的数替换 * 然后从len-2里随机产生下一个随机数,如此类推 * @param max 指定范围最大值 * @param min 指定范围最小值 * @param n 随机数个数 * @return int[] 随机数结果集 */ public static int[] randomArray(int min,int max,int n){ int len = max-min+1; if(max < min || n > len){ return null; } //初始化给定范围的待选数组 int[] source = new int[len]; for (int i = min; i < min+len; i++){ source[i-min] = i; } int[] result = new int[n]; Random rd = new Random(); int index = 0; for (int i = 0; i < result.length; i++) { //待选数组0到(len-2)随机一个下标 index = Math.abs(rd.nextInt() % len--); //将随机到的数放入结果集 result[i] = source[index]; //将待选数组中被随机到的数,用待选数组(len-1)下标对应的数替换 source[index] = source[len]; } return result; }
public class randomTest { public static void main(String[] args) { Random random = new Random(); //生成1-10内的随机数 int i = random.nextInt() * (10 - 1 + 1) + 1; /** * 生成 [m,n] 的数字 * int i1 = random.nextInt() * (n-m+1)+m; * */ //生成0-64内的数字 int i1 = random.nextInt() * (64-0+1); /** * 生成0-n之内的数字 * int i1 = random.nextInt() * (n-0+1); * * * */ }
上一篇:
IDEA上Java项目控制台中文乱码