您的位置:首页 > 其它

2015阿里实习生招聘一题解析4

2015-05-06 09:16 281 查看
附加题2

用Java代码实现:从自然数1到1000中随机取900个不重复的数并打印出来。

可以使用JDK中提供的用于生成随机数的类java.util.Random,其中:

*构造方法Random(),用于创建一个新的随机生成器对象。

*public int nextInt(int n)方法返回一个伪随机数,它是取自此随机数生成器序列的、在0(包括)和指定值(不包括)之间均匀分布的int值。

解析:



使用java.util.Random类来产生一个随机数发生器,有两种形式的构造函数,分别是Random()和Random(long seed)。

Random()使用当前时间即System.currentTimeMillis()作为发生器的种子,Random(long seed)使用指定的seed作为发生器的种子。

随机数发生器(Random)对象产生以后,通过调用不同的method:nextInt()、nextLong()、nextFloat()、nextDouble()等获得不同类型随机数。 如果两个Random对象使用相
同的种子(比如都是25),并且以相同的顺序调用相同的函数,那它们返回值完全相同。



import java.util.HashSet;

import java.util.Random;



public class RandomDemo {



public static void main(String[] args) {



// 创建一个set集合用来接收要存储的数据

HashSet<Integer> hashset= new HashSet<Integer>();

// 创建一个随机数生成器

Random r = new Random();

// 循环生成随机数

while (true) {

// 判断当HashSet集合的大小为20时,结束生成随机数的循环

if (hashset.size() == 900) {

break;

}



// 如果HashSet集合的大小不等于20,产生一个随机数并添加到HashSet集合中

int j = r.nextInt(1000) + 1;

hashset.add(j);

}



// 打印最终的HashSet集合

System.out.println(hashset);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: