Random
来源:互联网 发布:军事理论刷课软件 编辑:程序博客网 时间:2024/06/03 22:41
今天用了find bugs后查出来了个问题
Google了下
发现
Random.nextint() 和Math.random()的区别
(经下面朋友提醒,再去Google了下 终于知道两者的区别了~,E文不好真知道大体意思)
http://stackoverflow.com/questions/738629/math-random-versus-random-nextintint
2个Exp:
前者生成的随机数效率高于后者,时间上前者大约是后者50%到80%的时间.
造成这个原因如下:
Math.random()是Random.nextDouble()的一个内部方法.
Random.nextDouble()使用Random.next()两次,均匀的分布范围为0到1 - (2 ^ -53).
Random.nextInt(n)的使用Random.next()不多于两次, 返回值范围为0到n - 1的分布
Google了下
发现
Random.nextint() 和Math.random()的区别
(经下面朋友提醒,再去Google了下 终于知道两者的区别了~,E文不好真知道大体意思)
http://stackoverflow.com/questions/738629/math-random-versus-random-nextintint
2个Exp:
- Random rand = new Random();
- long startTime = System.nanoTime() ;
- int i1 = rand.nextInt(1000000000);
- 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() * 1000000000);
- 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的分布
阅读全文
0 0
- random
- Random();
- random
- Random
- Random
- random
- Random
- Random
- Random
- Random
- Random
- Random
- random
- random
- random
- Random
- random
- random
- jar包后台启动--nohup篇
- Hibernate和Mybatis的区别
- break和continue的使用
- 数据挖掘笔试题
- QNX学习笔记-Neutrino-QNX-boot启动流程分析
- Random
- Spring.Net框架学习错误集锦1
- Ignatius and the Princess IV
- Java知识(Set接口和集合工具类)
- 代码整洁之道——函数
- hdu 1272 小希的迷宫 【并查集】
- 第四篇:二十年亲历企业信息化(2)
- CSS布局 -- 圣杯布局 & 双飞翼布局
- 剑指Offer AccurateFactorial 计算精确的阶乘