/*
* @(#)RandNumberUtil.java 2009-8-8
*
* Copyright (c) 2009 by jadmin. All Rights Reserved.
*/
package com.jsoft.util.random;
/**
* 随机数辅助类
*
* @author <a href="mailto:jadmin@126.com">jadmin</a>
* @version $Id: RandNumberUtil.java 2009-8-8 上午03:22:37$
* @see <a href="http://hi.baidu.com/jadmin">myblog</a>
*/
public class RandNumberUtil {
/**
* 随机生成count个不重复的并且介于min和max间的整数
*
* @param min
* @param max
* @param count
* @return
*/
public static int[] generate(int min, int max, int count) {
if(min > max) {
throw new IllegalArgumentException("参数min必须小于max...");
}
int n = max - min + 1;
if(count > n) {
throw new IllegalArgumentException("参数count超出范围...");
}
int[] span = new int[n];
for (int i = 0, j = min; i < n; i++, j++) {
span[i] = j;
}
// 存储要生成的随机数
int[] target = new int[count];
for (int i = 0; i < target.length; i++) {
int r = (int)(Math.random() * n);
target[i] = span[r];
span[r] = span[n - 1];
n--;
}
return target;
}
public static void main(String[] args) {
int[] a = generate(12, 68, 9);
for(int i : a) {
System.out.print(i + " ");
}
}
}
posted on 2009-08-08 03:29
jadmin 阅读(117)
评论(0) 编辑 收藏