产生随机数的问题

来源:6-5 应用 Collections.sort() 实现 List 排序

Chengl

2016-08-29 22:19

k = (int) (Math.random() * 100);

Random random=new Random();  k=random.nextInt(100);

这两种办法都是产生一个100以内的随机数,两者的区别是什么?

写回答 关注

2回答

  • SteelIU
    2017-01-05 20:02:42

    我觉得你表达的意思是Random.nextInt()方法中调用了Math.random()方法吧!!!

    Math.random()是伪随机数,它是此Random随机数生成器序列中 0.0 和 1.0 之间均匀分布的 double 值

    Math.random()的函数区间[0.0 , 1.0)。Math.random(double d)与random.nextDouble(d)是等效的,而且Math.random(double d)的执行效率快于random.nextDouble(d),可能后者调用了前者的缘故吧!!!

    看到了觉得满意的话请采纳,谢谢!!!

  • ziom
    2016-08-30 00:47:36

    只是实现方式的区别,前者是利用了浮点型转整型会发生的向下取整获得[0, 99]区间的任意整数,后者是利用系统提供的API实现获取[0, 99]区间的任意整数。

    ziom 回复Chengl

    你想多了,跟包装类无关。还有,往list里添加基本类型数据,系统会自动帮你转换成相应包装类。

    2016-08-30 11:18:42

    共 2 条回复 >

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题