Java: Random.nextInt() 和Math.random()的区别
来源:互联网 发布:java post 二进制 编辑:程序博客网 时间:2024/05/16 16:02
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了下 终于知道两者的区别了~,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.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()方法
- fragment里套viewpager然后viewpager里再套fragment
- SVN系列——操作入门
- ListView控件入门
- HDU5536 Chip Factory(01字典树)
- Opencv之二帧差法运动目标检测与轮廓提取
- Java: Random.nextInt() 和Math.random()的区别
- 现阶段对数据库中知识发现KDD、数据挖掘、集成学习、深度学习、机器学习、人工智能、统计学、大数据、云计算的个人理解:
- 给自己看的NIM
- Js实现京东大的轮播图及相关动画效果
- Android Studio – Cannot resolve symbol ‘R’
- catalan数
- $_SERVER详解
- POJ-1260 Pearls (dp)
- python——word2vec