用java写一个随机数选取功能

用java写一个随机数选取功能,每次选取的几个数不能重复,并且每次与每次选取的也不能有重复,范围是1-226。比如,以每次选10个数为一组为例,可以选3次,但是每次都不能重复。

http://www.cnblogs.com/bersaty/archive/2013/09/11/3315371.html
java洗牌算法,不同的是,他的范围是1-54,你修改为1-226就可以了。

 import java.util.HashSet;
import java.util.Random;
import java.util.Set;

/**
 *
 * @author 凌晨
 * @since jdk1.6
 * @version 2016年8月5日 凌晨
 */
public class RandomDemo {

    /** 随机器 */
    private final Random random = new Random();

    /**
     * 获取随机数,范围1-max(不包括max)
     * 
     * @param max 范围最大数(不包括)
     * @return 返回的随机数
     */
    public int getRandomNumber(int max) {
        boolean isZero = true;
        int randomNumber = 0;
        while (isZero) {
            if (randomNumber != 0) {
                isZero = false;
            } else {
                randomNumber = random.nextInt(max);
            }
        }
        return randomNumber;
    }

    /**
     * @param args param
     */
    public static void main(String[] args) {
        RandomDemo demo = new RandomDemo();
        Set set = new HashSet();
        for (int i = 0; i < 500; i++) {
            // 生成随机数
            int k = demo.getRandomNumber(226);
            System.out.println("生成的随机数:" + k);
            if (!set.contains(k)) { // 如果之前未生成,则添加
                set.add(k);
            } else {
                System.out.println("随机数" + k + "已存在");
            }
        }

        System.out.println(set);
    }

}

public static String getRandom(int min, int max)
{
Random random = new Random();
int s = random.nextInt(max) % (max - min + 1) + min;
return String.valueOf(s);
}

你可以传入进来,获取随机数,然后判断吃否重复。

math.random()