java关于Random的用法
importjava.util.Random;publicclass测试{publicstaticvoidmain(String[]args){Randomin=newR...
import java.util.Random;
public class 测试{
public static void main(String[] args){
Random in=new Random();
int suiji=(int)(Math.random()*10);//这里的*10是什么意思。?为什么要乘10?
System.out.println("随机数为:"+suiji);
}
}
如果随机数是5那乘10也是50啊。为什么输出结果还是0~9......
我输入/10 还是10以内的。。。我晕了 展开
public class 测试{
public static void main(String[] args){
Random in=new Random();
int suiji=(int)(Math.random()*10);//这里的*10是什么意思。?为什么要乘10?
System.out.println("随机数为:"+suiji);
}
}
如果随机数是5那乘10也是50啊。为什么输出结果还是0~9......
我输入/10 还是10以内的。。。我晕了 展开
15个回答
2013-05-09
展开全部
要习惯翻阅JDK的文档,文档对Math.random方法的描述很清楚,就是生成一个[0,1)范围内的随机数,乘以10就是生成[0,10)的随机数,(int)取整就是0-9。
不过仍然建议使用Random.nextInt(int)方法。
不过仍然建议使用Random.nextInt(int)方法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public static int extractNumber(int max){
//系统生成随机数后与上限相乘再加一后转换为整型返回
return (int)(Math.random()*max+1);
}
这段代码我都不知道复制了多少遍了。
参数的值为你需要数字的最大值,0-100的随机数就写100进去。
构造方法
Random() 创建一个新的随机数生成器。
Random(long seed) 使用单个 long 种子创建一个新的随机数生成器。
常用的方法
boolean nextBoolean() 伪随机生成boolean值
nextBytes(byte[] bytes) 生成随机字节并将其置于用户提供的 byte 数组中。
double nextDouble() 返回下一个伪随机数,它是取自此随机数生成器序列的、在 0.0 和 1.0 之间均匀分布的 double 值。 (Math.random()方法调用的就是这个方法)
float nextFloat() 返回下一个伪随机数,它是取自此随机数生成器序列的、在 0.0 和 1.0 之间均匀分布的 float 值。
int nextInt() 返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。
nextInt(int n) 返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int 值。
nextLong() 返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的 long 值。
setSeed(long seed) 使用单个 long 种子设置此随机数生成器的种子。
上面的是api中的方法及解释。
个人使用此类的经验是,如果要一次性大量生成随机数,比较麻烦使用。
如果用java.util.Random类, int num = new Random().nextInt(3)+2,
如果用我提供的,直接调用方法 int num = extractNumber(3)+1。
//系统生成随机数后与上限相乘再加一后转换为整型返回
return (int)(Math.random()*max+1);
}
这段代码我都不知道复制了多少遍了。
参数的值为你需要数字的最大值,0-100的随机数就写100进去。
构造方法
Random() 创建一个新的随机数生成器。
Random(long seed) 使用单个 long 种子创建一个新的随机数生成器。
常用的方法
boolean nextBoolean() 伪随机生成boolean值
nextBytes(byte[] bytes) 生成随机字节并将其置于用户提供的 byte 数组中。
double nextDouble() 返回下一个伪随机数,它是取自此随机数生成器序列的、在 0.0 和 1.0 之间均匀分布的 double 值。 (Math.random()方法调用的就是这个方法)
float nextFloat() 返回下一个伪随机数,它是取自此随机数生成器序列的、在 0.0 和 1.0 之间均匀分布的 float 值。
int nextInt() 返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。
nextInt(int n) 返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int 值。
nextLong() 返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的 long 值。
setSeed(long seed) 使用单个 long 种子设置此随机数生成器的种子。
上面的是api中的方法及解释。
个人使用此类的经验是,如果要一次性大量生成随机数,比较麻烦使用。
如果用java.util.Random类, int num = new Random().nextInt(3)+2,
如果用我提供的,直接调用方法 int num = extractNumber(3)+1。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Random in=new Random();
这个没有什么用啊,in下面并没有用到啊?
*10,就是这个代码举的一个例子,因为Math.random()是JDK里Math工具类里的一个函数,返回一个0到1之间的1位小数,*10之后,输出的结果当然是0~9
上面这断代码中,既没有用到in,也没有用到args,楼主,你还晕吗?
这个没有什么用啊,in下面并没有用到啊?
*10,就是这个代码举的一个例子,因为Math.random()是JDK里Math工具类里的一个函数,返回一个0到1之间的1位小数,*10之后,输出的结果当然是0~9
上面这断代码中,既没有用到in,也没有用到args,楼主,你还晕吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Math.random()是随即产生[0,1)之间的数 乘以10那就是[0,10)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
static double random()
返回带正号的double值,该值大于等于0.0且小于1.0
返回带正号的double值,该值大于等于0.0且小于1.0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询