黑马程序员技术交流社区

标题: 求大神解惑!!一个面试题??? [打印本页]

作者: wsl123456    时间: 2016-6-23 11:09
标题: 求大神解惑!!一个面试题???
Java中除了Random能获得随机数,还有什么类或方法能获得随机数呢?
作者: 新晋猿工    时间: 2016-6-23 11:27
用Math类的random方法:Math.random(),你要随机数的范围是什么就乘以什么+1,例如你要一个0-100的整数的话,那就int number = (int) (Math.random() * 100) + 1
作者: syinys7    时间: 2016-6-23 16:54
两种获取随机数的方法:

1.(int)(Math.random()*100)+1

2.Random r=new Random();
   r.nextInt(100)+1;
作者: 迅雷    时间: 2016-6-23 22:34
本帖最后由 迅雷 于 2016-6-23 22:40 编辑

我知道的也是这两种一种是Random类的nextInt(int n)的方法调用,需要导包和创建一个新的Random对象再调用
另一种是Math类的random()方法,生成double类型的大于等于0.0小于1.0的随机数,使用的时候不用导包和创建对象,能够直接调用,但要注意随机数的数据类型,需要的话要强转为int类型再赋值

作者: 1316582449    时间: 2016-6-23 23:23
方法1(数据类型

)(

最小值

+Math.random()*(

最大值

-

最小值

+1))



:  

(int)(1+Math.random()*(10-1+1))





1



10



int

型随数



方法

2

  

获得随机数

  

for (int i=0;i<30;i++)  

{System.out.println

((int)(1+Math.random()*10));}



(int)(1+Math.random()*10)

  

通过

java.Math

包的

random

方法得到

1-10



int

随机数



公式是

:

最小值

---

最大值(整数)的随机数



(类型)最小值

+Math.random()*

最大值



方法

3

  

Random ra =new Random();



for (int i=0;i<30;i++)  

{System.out.println(

ra.nextInt(10)+1

);}  

通过

java.util

包中的

Random

类的

nextInt

方法来得到

1-10



int

随机数



   

生成

0



1

之间的任意随机小数:

  

生成

[0,d)

区间的随机小数,

d

为任意正的小数,则只需要将

nextDouble

方法的

返回值乘以

d

即可。



[n1



n2]

  

也就是

ra.nextDouble() * (n2-n1)+n1


作者: 1316582449    时间: 2016-6-23 23:30
方法1(数据类型)(最小值+Math.random()*(最大值-最小值+1))例:(int)(1+Math.random()*(10-1+1))从1到10的int型随数
方法2获得随机数for (int i=0;i<30;i++){System.out.println((int)(1+Math.random()*10));}(int)(1+Math.random()*10)通过java.Math包的random方法得到1-10的int随机数公式是:最小值---最大值(整数)的随机数(类型)最小值+Math.random()*最大值
方法3Random ra =new Random();for (int i=0;i<30;i++){System.out.println(ra.nextInt(10)+1);}通过java.util包中的Random类的nextInt方法来得到1-10的int随机数 生成0到1之间的任意随机小数:生成[0,d)区间的随机小数,d为任意正的小数,则只需要将nextDouble方法的返回值乘以d即可。[n1,n2]也就是 ra.nextDouble() * (n2-n1)+n1




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2