美文网首页
随机数生成几个的问题

随机数生成几个的问题

作者: 宝贝双双 | 来源:发表于2017-08-09 17:05 被阅读0次

    // min表示最小值,max表示最大值,n表示随机生成几个

    public static int[] randomArray(int min, int max, int n) {

    int len = max - min + 1;

    if (max < min || n > len) {

    return new int[0];

    }

    // 初始化给定范围的待选数组

    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;

    }

    相关文章

      网友评论

          本文标题:随机数生成几个的问题

          本文链接:https://www.haomeiwen.com/subject/xysqrxtx.html