新手问题 在JAVA里怎么使用随机数啊,比如要生成1~31之间的随机整数怎么写?谢谢大家。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 好像Math类中有一个random(),你用它生成一个0——1之间的数,再乘以31。具体方法,请查API。 在j2se里我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我们可以把他乘以一定的数,比如说乘以100,他就是个100以内的随机,这个在j2me中没有。[ public static int getRandom(int n) { Random rdm = new Random(); return rdm.nextInt(n);//注:这里返回的是从0到n-1的随机数! } newRandom().nextInt(31) + 1; int i=new Random().newInt(31)+1;看看java API就明白了 new Random().nextInt(31)+1;因为new Random().nextInt(31)是0~30之间的随机数 public class test { public static void main(String[] args){ System.out.println(new Random().nextInt(31)); }} 还有一种方法int i=(int)(Math.random()*31)+1;其中Math.random()返回的数的范围是【0,1),乘以31,得到的范围是[0,31),强制转化为int之后是 [0,30]之间的任意整数,再加上1就是 1-31之间的任意整数 10楼的方法我试了,怎么不行啊,出现如下:“Test.java:3: 找不到符号符号: 类 Random位置: 类 Test System.out.println(new Random().nextInt(31)); ^1 错误” 最容易被初学者接受,也是经常看到的就是像13楼写的random()*31+1 Random*31产生的是从0~30之间的任意数,可能是整数,也可能是浮点数,要强制类型转换为int型 方法random称为伪随机数生成器,它返回一个大于等于0.0,小于1.0的数。我们可以通过对返回的数值进行转换,使它落在规定的区间去,比如我们需要的区间范围是【min,max】,如果x是返回的随机数,可以用以下公式将其转换成Y,使得Y落在区间【min,max】,Y=min+[X*(max-min+1)},其中{}表示向下取整。这样你要生成1~31的随机整数的话,应该是这样的: int randomNumber =(int)(Math.floor(Math.random()*31))+1; new Random().nextInt(31) + 1;copy and paste 做题时碰上的几个java问题 ██保留小数点后两位,不足两位补0 ???██ 请问super(title)是啥意思? 求问高手关于String[]的问题????急 package 线程生产者消费者的简单问题! JAVA的IO流问题。 高分求救——文件锁。 欲求一个JAVA版的围棋软件!包括文档,源码!! 高手到哪去了?????????????????????????????? 接口中为什么可以用Object中的方法 终于从会议室出来了
Random rdm = new Random();
return rdm.nextInt(n);//注:这里返回的是从0到n-1的随机数! }
看看java API就明白了
因为new Random().nextInt(31)是0~30之间的随机数
public static void main(String[] args){
System.out.println(new Random().nextInt(31));
}
}
符号: 类 Random
位置: 类 Test
System.out.println(new Random().nextInt(31));
^
1 错误
”