Java产生900个1到1000不重复的随机数

这是一到2015年阿里巴巴的笔试试题,题目就是输出900个1-1000的不重复的随机数,代码如下:

public class RandomTest{

    public static void main(String[] args){
        int[] result = RandomTest.randomNumber(1,1000,900);
        for(int k =0 ;k<result.length;k++){
            System.out.println(result[k]);
        }
    }

    /**
    * 功能:产生1-1000中的900个不重复的随机数
    *
    * min:产生随机数的其实位置
    * mab:产生随机数的最大位置
    * n: 所要产生多少个随机数
    *
    */
    public static int[] randomNumber(int min,int max,int n){

        //判断是否已经达到索要输出随机数的个数
        if(n>(max-min+1) || max <min){
            return null;
        }

        int[] result = new int[n]; //用于存放结果的数组

        int count = 0
        while(count <n){
            int num = (int)(Math.random()*(max-min))+min;
            boolean flag = true;
            for(int j=0;j<n;j++){
                if(num == result[j]){
                    flag = fasle;
                    break;
                }
            }
            if(flag){
                result[count] = num;
                count++;
            }
        }
        return result;
    }
}
时间: 2024-08-04 03:00:01

Java产生900个1到1000不重复的随机数的相关文章

JAVA:在0-99间产生100个不重复的随机数

Random rand = new Random(); boolean[] bool = new boolean[100]; int[] number = new int[100]; int randINT; for(int i = 0;i<100;i++){ do{ randINT = rand.nextInt(99); }while(bool[randINT]); number[randINT] = randINT; bool[randINT] = true; }

论 Java 中获取一组不重复的随机数之性能问题

今天在做一个Java项目, 用到了使用一组不重复的随机数问题, 不管怎么做随机数里面总有几个是重复的. 于是上网去找资料, 在网上找到的资料中大部分都是一个思路: 网上的思路一:(性能不理想) 先生成一个随机数, 然后在生成下一个随机数的时候和以前的随机数进行匹配, 如果里面有当前生成的随机数, 那么重新去生成, 直到之前所生成的随机数组中没有当前所生成的那个数字为止. 这样做虽然能实现生成一组不重复的随机数, 但是性能不是很理想, 假如我们需要生成10个数字, 在生成第一的时候, 不用匹配,

【Java】利用Collections类下的shuffle洗牌方法改进在一定的范围内产生不重复的随机数

上次在<[Java]在一定的范围内产生不同的随机数>(点击打开链接)上所提到的方法,尽管已经解决了一定范围内产生不同随机数的问题,运行速度已经可以的,至少不会弄很久都弄不好,其实利用Collections类下的shuffle方法思想可以更清晰.速度更快地在一定的范围内产生不同的随机数. Collections类下的shuffle方法是可以随机打乱一个数组中的元素的程序,也叫做洗牌方法. 有这个方法,配合我在<[Java]Java中的Collections类--Java中升级版的数据结构&

用java实现取1-100之间的99个不重复的随机数 然后输出没有被取出的数字

package cn.kgc.springtest2.demo1.dao; import java.util.BitSet; /** * @author * @create 2019-08-02 17:46 **/ public class sss { public static void main(String[] args) { BitSet bs = new BitSet(100); for (int count = 0; count < 99;) { int random = (int)

Java连载81-枚举类型,生成五个不重复的随机数,集合简介

一.枚举类型 1.枚举类型的格式就是enum+枚举类型的名称,可见下面的例子. package com.bjpowernode.java_learning; ? public class D81_1_ { public static void main(String[] args) { /** * 需求:定义一个方法,该方法的作用是计算两个int类型数据的商 * 如果计算成功则该方法返回1,如果执行失败则该方法返回0 * * 程序执行成功,但是该程序存在风险,分析:存在什么风险? * * 程序中

从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

Java 最常用类(前1000名) 来自GitHub 3000个项目

这篇文章主要介绍了最常用的1000个Java类(附代码示例),需要的朋友可以参考下 分析Github 3000个开源项目,粗略统计如下.括号内的数字是使用频率 0-3000. 下面的列表显示不全,完整的请看完整列表. 1.java.util.List (2889) 2.java.util.ArrayList (2831)3.java.io.IOException (2813)4.java.util.Map (2592)5.java.util.HashMap (2541)6.java.io.Fil

[Java拾遗五]使用Session防止表单重复提交

申明:此文章属于转载, 转自博客: http://www.cnblogs.com/xdp-gacl/p/3859416.html在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单重复提交. 一.表单重复提交的常见应用场景 有如下的form.jsp页面 1 <%@ page language="java" import="java.util.*&qu

Java求字符串数组交集 并集 差集 去重复并集

//系统方法 package com; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class Test { public static void main(String[] args) { List list1 =new ArrayList(); list1.add("1111"); list1.add("2222"); list1.add