Java: Random.nextInt() 和Math.random()的区别
来源:互联网 发布:网络接线盒接法图解 编辑:程序博客网 时间:2024/05/16 17:32
2个Exp:
前者生成的随机数效率高于后者,时间上前者大约是后者50%到80%的时间.
造成这个原因如下:
Math.random()是Random.nextDouble()的一个内部方法.
Random.nextDouble()使用Random.next()两次,均匀的分布范围为0到1 - (2 ^ -53).
Random.nextInt(n)的使用Random.next()不多于两次, 返回值范围为0到n - 1的分布
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的分布
- Random.nextint() 和Math.random()的区别
- Java: Random.nextInt() 和Math.random()的区别
- Java: Random.nextInt() 和Math.random()的区别
- Random.nextInt()、Random.nextInt() 和 math.random()区别
- Java中的Math.random和random.nextInt区别
- 我也来谈谈Java: Random.nextInt() 和Math.random()的区别
- random.nextInt()与Math.random()区别
- java Random.nextInt()与Math.random()的比较
- java random.nextInt的坑
- java random.nextInt()的使用
- math.random()和Math.round的区别
- random.nextInt()与Math.random()基础用法
- random.nextInt()与Math.random()基础用法
- random.nextInt()与Math.random()基础用法
- random.nextInt()与Math.random()基础用法
- java中Math.random()与java.util.random()的区别
- java中Math.random()与java.util.random()的区别
- java Random.nextInt()方法
- matlab isnan function
- ORACLE调度(schedule)详解(转)
- 《算法》(第四版)第一章练习题Java实现[2]
- Apache Shiro 会话与主体状态的关系
- 很全面的程序员 开发工具箱[转]
- Java: Random.nextInt() 和Math.random()的区别
- java日期工具类DateUtil-续二
- android 游戏导引(3. 图形引擎之模型管理)
- C语言中给指定的内存地址赋值(通过指针)
- 数据库连接池
- Msysgit 快捷键
- php实现禁止缓存
- IT⼯工作的⼀一些经验和教训(转自http://bbs.nju.edu.cn/)
- jsp 隐藏textarea的滚动条