Random中的nextInt和nextInt的区别是什么

 我来答
溥德容0JE
2017-08-05 · TA获得超过381个赞
知道小有建树答主
回答量:350
采纳率:100%
帮助的人:155万
展开全部
Random.nextint() 和Math.random()的区别

Java代码 收藏代码
Random rand = new Random();
long startTime = System.nanoTime() ;
int i1 = rand.nextInt();
System.out.println(i1);
long endTime = System.nanoTime();
System.out.println("Random.nextInt(): " + (endTime - startTime));

long startTime2 = System.nanoTime();
int i2 = (int) (java.lang.Math.random() * );
System.out.println(i2);
long endTime2 = System.nanoTime();
System.out.println("Math.random():" + (endTime2 - startTime2));

前者生成的随机数效率高于后者,时间上前者大约是后者50%到80%的时间.

造成这个原因如下:
Math.random()是Random.nextDouble()的一个内部方法.
Random.nextDouble()使用Random.next()两次,均匀的分布范围为0到1 - (2 ^ -53).

Random.nextInt(n)的使用Random.next()不多于两次, 返回值范围为0到n - 1的分布
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式