zoukankan      html  css  js  c++  java
  • java随机生成n个不相同的整数

    使用java的 java.util.Random

    import java.util.Random;

    /**
    * 随机生成n个不同的数
    *
    * @author 张俊峰
    *
    */
    public class ArrayRandom {

    /**
    * 随机生成n个不同的数
    *
    * @param amount
    * 需要的数量
    * @param max
    * 最大值(不含),例:max为100,则100不能取到,范围为0~99;
    * @return 数组
    */
    public static int[] random(int amount, int max) {

    if (amount > max) { // 需要数字总数必须小于数的最大值,以免死循环!
    throw new ArrayStoreException(
    "The amount of array element must smallar than the maximum value !");
    }
    int[] array = new int[amount];
    for (int i = 0; i < array.length; i++) {
    array[i] = -1; // 初始化数组,避免后面比对时数组内不能含有0。
    }
    Random random = new Random();
    int num;
    amount -= 1; // 数组下标比数组长度小1
    while (amount >= 0) {
    num = random.nextInt(max);
    if (exist(num, array, amount - 1)) {
    continue;
    }
    array[amount] = num;
    amount--;
    }
    return array;
    }

    /**
    * 判断随机的数字是否存在数组中
    *
    * @param num
    * 随机生成的数
    * @param array
    * 判断的数组
    * @param need
    * 还需要的个数
    * @return 存在true,不存在false
    */
    private static boolean exist(int num, int[] array, int need) {

    for (int i = array.length - 1; i > need; i--) {// 大于need用于减少循环次数,提高效率。
    if (num == array[i]) {
    return true;
    }
    }
    return false;
    }

    /**
    * 随机生成一个数
    *
    * @param max
    * 最大值(不含)
    * @return 整型数
    */
    public static int random(int max) {

    return random(1, max)[0];
    }
    }

    使用:

    int[] arr = ArrayRandom.random(20, 100);
    for (int i = 0; i < arr.length; i++) {
    System.out.print(arr[i] + " ");
    }
    ---------------------

    原文:https://blog.csdn.net/u013271384/article/details/51766300

  • 相关阅读:
    BZOJ-2743: [HEOI2012]采花(树状数组 or TLE莫队)
    BZOJ-1122: [POI2008]账本BBB (单调栈神题)
    2017年10月18日23:54:18
    [校内自测 NOIP模拟题] chenzeyu97要请客(单调栈)
    BZOJ-1057: [ZJOI2007]棋盘制作(单调栈)
    [校内自测] 奶牛编号 (递推+智商)
    [校内自测] Incr (LIS+智商)
    BZOJ1486 [HNOI2009]最小圈
    BZOJ2400 Spoj 839 Optimal Marks
    BZOJ2595 [Wc2008]游览计划
  • 原文地址:https://www.cnblogs.com/jdbn/p/10089753.html
Copyright © 2011-2022 走看看