如何在java中产生随机数?
在j2se里我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我悉悄凯们可以把他乘以一定的数,比如说乘以100,他就是个100以内的随机,这个在j2me中没有。
在java.util这个包里面提供了一个Random的类,我们可以新建一个Random的对运困象来产生随机数,他可以产生随机整数、随机float、随机double,随机long,这个也是我们在j2me的程序里经常用的一个取随机数的方法。
在我们的System类中有一个currentTimeMillis()方法,这个方法返回一个从1970年1月1号0点0分0秒到目前的一个毫秒数,返回类型是long,我们可以拿他作为一个随机数,我们可以拿他对一些数取模,就可以把他限制在一个范围之内。
具体编程方法摘要:
Random()
创建一个新的随机数生成器。
Random(long seed)
使用单个 long 种子创建一个新随机数生成器: public Random(long seed) { setSeed(seed); } next
方法使用它来保存随机数生成器的状态。
protected int next(int bits)
生成下一个伪随机数。
boolean nextBoolean()
返回下一个伪随机数,它是从此随机数生成器的序列中取出的、均匀分布的 boolean 值。
void nextBytes(byte[] bytes)
生成随机字节并将其置于用户提供的字节数组中。
double nextDouble()
返回下一个伪随机数,它是从此随机数生成器的序列中取出的、在 0.0 和 1.0之间均匀分布的 double 值。
float nextFloat()
返回下一个伪随机数,它是从此随机数生成睁唤器的序列中取出的、在 0.0 和 1.0 之间均匀分布的 float 值。
double nextGaussian()
返回下一个伪随机数,它是从此随机数生成器的序列中取出的、呈高斯(“正常地”)分布的 double 值,其平均值是 0.0,标准偏差是 1.0。
int nextInt()
返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。
int nextInt(int n)
返回一个伪随机数,它是从此随机数生成器的序列中取出的、在 0(包括)和指定值(不包括)之间均匀分布的 int值。
long nextLong()
返回下一个伪随机数,它是从此随机数生成器的序列中取出的、均匀分布的 long 值。
void setSeed(long seed)
使用单个 long 种子设置此随机数生成器的种子。
java语言中产生随机数用什么方法?
要产生随机数,可以使用Java api中java.lang包中的Math类.Math类以静态方法的方蠢卜式提供常用的数学方则档誉法孙段, 其中Math.random()方法是一个可以产生[0.0,1.0]区间内的一个双精度浮点数的方法 如: 产生一个100以内的整数:int x=(int)(Math.random()*1…
请问java生成任意位数的随机数
是这样的,java里面是没有这样的直接的函数的,楼上的只是说输出一个小于1的固定小数点的随机数字毕档,我想楼主的意思是说随机生成随意的整数吧,我可以随机输出1-10位(计算机不可能输出没有位限雹老制的数字,它随机生成的后面一般都是固定的位数,我用代码实现了在1-10位随源数升机)的整数,如果你还要小数,就自己在代码上加上一个随机小数就ok啦,请看代码:public class RandomTest
{
public static void main(String[] args)
{
double rd=Math.random();
int max=(int)(Math.random()*10);
System.out.println(“此次生成的数字的位数为:”+max+”位”);
for(int i=0;imax;i++) {
rd=rd*10;
}
double result=rd-rd%1;
java.text.DecimalFormat df =new java.text.DecimalFormat(“#”);
String end=df.format(result);
System.out.println(“结果是: “+end);
}
}
java 如何创建一个类或方法能够给出产生指定位数的一个随机数?
可以用Math.random()函数生成一个随机数,然后检查位数,如果位数不符合要求,就重新碰铅蔽生成一个随机数,下面的程序是一个实现。
public class RandomTest
{
public static int rand(int n)
{
int ans = 0;
激枣 while(Math.log10(ans)+1n)
ans = (int)(Math.random()*Math.pow(10, n));
return ans;
}
public static void main(String[] args)
{
for(int i=0;i1000;i++)
{
笑州System.out.println(rand(4));
}
}
}