zoukankan      html  css  js  c++  java
  • 从1到1000中随机取出900个不重复的随机数

    思路
    用大小为1000的数组保存1-1000的整数,int nums[1000] = {1,2,3,...1000}。
    使用Random.nextInt()获取[0,999]下标值,即index = Random.nextInt(1000),交换坐标为0和index的值
    在使用Random.nextInt()获取[0,999]下标值,即index = Random.nextInt(1000),交换坐标为1和index的值
    ...
    在使用Random.nextInt()获取[0,999]下标值,即index = Random.nextInt(1000),交换坐标为899和index的值

    最后[0-899]保存的即为900个1-900

    import java.util.Random;
    
    public class RandomNums {
        
        /**
         * 从整数min~max中获取n个随机整数
         * @param min 随机整数最小值
         * @param max 随机整数最大值
         * @param n 随机数个数
         * @return 随机产生的n个整数
         */
        public void getRandomNums(int min, int max, int n){
            int length = max - min + 1;
            if(max < min || n > length)
                return;
            
            //将范围min~max范围的整数放到数组中
            int nums[] = new int[length];
            for(int i = min; i <= max; i++){
                nums[i - min] = i;
            }//for
            
            Random random = new Random();
            for(int i = 0; i < n;i++){
                int index = random.nextInt(max);                    //随机产生一个数组下标
                exchange(nums, i, index);                            //0~n-1存放n个随机数
            }//for
            
            for(int i = 0; i < n; i++)
                System.out.println(nums[i]);
        }
        
        /**
         * 交换数组中两个元素的值
         * @param nums
         * @param i
         * @param j
         */
        public void exchange(int nums[], int i, int j){
            int temp = nums[i];
            nums[i] = nums[j];
            nums[j] = temp;
        }
        
        public static void main(String args[]){
            RandomNums randomNums = new RandomNums();
            randomNums.getRandomNums(1, 1000, 900);
        }
    }
  • 相关阅读:
    redis你要知道的事
    Nginx七层负载均衡的几种调度算法
    JQuery的父、子、兄弟节点选择器
    laravel通用和万能路由
    jquery竖向企业组织结构图
    phpexcel功能操作
    animatext.js使用介绍
    Centos firewalld开放端口
    获取微信accesstoken并文件缓存方式
    css处理文字不换行、换行截断、溢出省略号
  • 原文地址:https://www.cnblogs.com/luckygxf/p/4388821.html
Copyright © 2011-2022 走看看