首页 > 试题广场 >

用Java代码实现:从自然数1到1000中随机取900个不重

[问答题]
用Java代码实现:从自然数1到1000中随机取900个不重复的数并打印出来。
可以使用JDK中提供的用于生成随机数的类java.util.Random,其中: *构造方法Random() ,用于创建一个新的随机数生成器对象。 *public int nextInt(int n)方法返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int 值
set
发表于 2015-07-01 17:09:42 回复(0)
更多回答
public class TextA {
    
    private static List<Integer> list = new ArrayList<Integer>();
    
    public static void main(String[] args) {
        
        for(int i = 1; i < 1001; i ++){
            list.add(new Integer(i));
        }
        for(int i = 0; i < 900; i ++){
            int random = new Random().nextInt(list.size());
            System.out.println("第"+(i + 1)+"个:" + list.get(random));
            list.remove(random);
            
        }
    }
}
发表于 2015-06-10 17:22:52 回复(8)
public static void main(String[] args) {
        Set<Integer> set=new HashSet<Integer>();
        while (true) {
            Random ran=new Random();
            int i = ran.nextInt(1001);
            if(set.size()==900){
                for(Integer in:set){
                    System.out.println(in);
                }
                return;
            }
            if (i==0||!set.add(i)) {
                continue;
            }
        }

    }
发表于 2015-08-11 11:41:28 回复(3)
随机取走一个,然后删除这个即可
发表于 2015-10-02 18:22:03 回复(0)
public class Test
{
public static void main(String arg[])
{
Set<Integer> set = new HashSet();
while(set.size() < 900)
{
int temp = (int)(Math.random() * 1000);
System.out.println(temp);
set.add(Integer.valueOf(temp));
}
System.out.println("这时set的大小为"+set.size());
}
}
发表于 2015-07-21 16:45:04 回复(0)

import java.util.ArrayList;
import java.util.Random;

public class Solution {
public static void main(String[] args){
Random r=new Random();
int i=0;
int n=0;
ArrayList list=new ArrayList();
for(int j=1;j<=1000;j++)
{
list.add(j);
}
while(n<900)
{
i=r.nextInt(1000);
for(int j=0;j<list.size();j++)
{
if(i==Integer.parseInt(list.get(j).toString()))
{n++;
   list.remove(j);
   System.out.println("第"+n+"个"+i);
break;
}
}
}
System.out.println(n);
}
}
发表于 2015-07-14 20:49:40 回复(0)
//用来将一个数组中元素的顺序随机打乱
private static void shuffle(int[] arr){
        Random rand = new Random();//生成随机数产生对象
        //变量说明:randIndex用来记录随机产生的数组下标
        for(int i=0,temp=0,randIndex=0,len=arr.length;i<len;++i){
                temp = arr[i];
                arr[i]  = arr[randIndex=rand.nextInt(len)];
                arr[randIndex] = temp;
        }
}

public static void main(String[] args) {
        int[] arr = new int[1000];
        for(int i=0;i<1000;++i){
            arr[i] = i+1;
        }
        shuffle(arr);//将元素顺序打乱
        for(int i=0;i<900;++i){
                System.out.println(arr[i]);
        }
}

编辑于 2015-07-09 20:53:05 回复(0)
    public void random(int n) {
        // init
        int[] array = new int[n];
        for (int i = 0; i < n; i++)
            array[i] = i + 1;

        // core
        Random r = new Random();
        int count = n, index;
        while (count > 100) {
            index = r.nextInt(count);
            System.out.println(array[index]);
            array[index] = array[--count];
        }
    }
编辑于 2015-07-05 10:19:36 回复(0)
public class TestRandom {
public static void main(String[] args) {
Random r = new Random();
int[] a = new int[1000];

int i = 900;
while(i>0){
int b = r.nextInt(1000);
if(a[b]==0){
a[b] = 1;
i--;
System.out.println(b);
}
}
}
}
发表于 2015-07-13 14:45:04 回复(0)
    private static List<Integer> getResult(int args){
        
        args = 900;
        
        List<Integer> list = new ArrayList<Integer>();
        
        Random rm = new Random();
        
        for (int i = 0; i < args; i++) {
            
            int value = rm.nextInt(1000)+1;
            
            if (list.contains(value))
                continue;
            
            list.add(value);
        }
        return list;
    }
发表于 2015-07-08 13:00:52 回复(0)
public List geiList(){
ArrayList list = new ArrayList();
int x = 0;
Random ran = new Random();
while(true){
    x = ran.nextint(1000) + 1;
     if(list.isRmpty()){
        list.add(x);
         }
        if(list.size()==900){
    return list;
}
return list;
}
}

发表于 2015-06-30 13:50:15 回复(0)
javascript
var array = [],n,l = 1000;
for(var i = l + 1;--i;){
  array.push(i);
}
for(i = 0;i<l;i++){  
   n = parseInt(Math.random()*l);  
   array[i] = [array[n],array[n] = array[i]][0];//深度打乱  
}
array.length = l - 100;
console.log(array.join(","));

发表于 2015-06-11 21:09:22 回复(0)