k = (int) (Math.random() * 100);
Random random=new Random(); k=random.nextInt(100);
这两种办法都是产生一个100以内的随机数,两者的区别是什么?
我觉得你表达的意思是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),可能后者调用了前者的缘故吧!!!
看到了觉得满意的话请采纳,谢谢!!!
只是实现方式的区别,前者是利用了浮点型转整型会发生的向下取整获得[0, 99]区间的任意整数,后者是利用系统提供的API实现获取[0, 99]区间的任意整数。