方法1
(数据类型)(最小值+Mathrandom()(最大值-最小值+1))
例:
(int)(1+Mathrandom()(10-1+1))
从1到10的int型随数
方法2
获得随机数
for (int i=0;i<30;i++)
{Systemoutprintln((int)(1+Mathrandom()10));}
(int)(1+Mathrandom()10)
通过javaMath包的random方法得到1-10的int随机数
公式是:最小值---最大值(整数)的随机数
(类型)最小值+Mathrandom()最大值
方法3
Random ra =new Random();
for (int i=0;i<30;i++)
{Systemoutprintln(ranextInt(10)+1);}
通过javautil包中的Random类的nextInt方法来得到1-10的int随机数
生成0到1之间的任意随机小数:
生成[0,d)区间的随机小数,d为任意正的小数,则只需要将nextDouble方法的返回值乘以d即可。
[n1,n2]
也就是 ranextDouble() (n2-n1)+n1
public static void main(String[] args) {
int max=20;
int min=10;
Random random = new Random();
int s = randomnextInt(max)%(max-min+1) + min;
Systemoutprintln(s);
}
1此函数,生成min到max之间的随机"整数"数
2如果需要小数,建议你也以整数开始,最后再除10,或者除100,您明白我意思么
举例,要生成5-10之间的保留两位的小数点
那就将min设置成50,max设置成100,这样就可以得到50-100之间的数,输出前除10,就能得到5-10之间的小数了
public static int extractNumber(int max){
//系统生成随机数后与上限相乘再加一后转换为整型返回
return (int)(Mathrandom()max+1);
}
这段代码我都不知道复制了多少遍了。
参数的值为你需要数字的最大值,0-100的随机数就写100进去。
构造方法
Random() 创建一个新的随机数生成器。
Random(long seed) 使用单个 long 种子创建一个新的随机数生成器。
常用的方法
boolean nextBoolean() 伪随机生成boolean值
nextBytes(byte[] bytes) 生成随机字节并将其置于用户提供的 byte 数组中。
double nextDouble() 返回下一个伪随机数,它是取自此随机数生成器序列的、在 00 和 10 之间均匀分布的 double 值。 (Mathrandom()方法调用的就是这个方法)
float nextFloat() 返回下一个伪随机数,它是取自此随机数生成器序列的、在 00 和 10 之间均匀分布的 float 值。
int nextInt() 返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。
nextInt(int n) 返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int 值。
nextLong() 返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的 long 值。
setSeed(long seed) 使用单个 long 种子设置此随机数生成器的种子。
上面的是api中的方法及解释。
个人使用此类的经验是,如果要一次性大量生成随机数,比较麻烦使用。
如果用javautilRandom类, int num = new Random()nextInt(3)+2,
如果用我提供的,直接调用方法 int num = extractNumber(3)+1。
有三种方法。
SystemcurrentTimeMillis() [最快]new Date()getTime()
CalendargetInstance()getTimeInMillis()
并且速度测试查看下面的链接
>java产生一个随机8位的数:
StringBuilder str=new StringBuilder();//定义变长字符串Random random=new Random();
//随机生成数字,并添加到字符串
for(int i=0;i<8;i++){
strappend(randomnextInt(10));
}
//将字符串转换为数字并输出
int num=IntegerparseInt(strtoString());
Systemoutprintln(num);
这个是产生100以内的数字
int x=(int)(Mathrandom()100);protectedint next(int bits)
生成下一个伪随机数。
boolean nextBoolean()
返回下一个伪随机数,它是从此随机数生成器的序列中取出的、均匀分布的 boolean 值。
void nextBytes(byte[] bytes)
生成随机字节并将其置于用户提供的字节数组中。
double nextDouble()
返回下一个伪随机数,它是从此随机数生成器的序列中取出的、在 00 和
10之间均匀分布的 double 值。
float nextFloat()
返回下一个伪随机数,它是从此随机数生成器的序列中取出的、在 00 和 10 之间均匀分布的 float 值。
double nextGaussian()
返回下一个伪随机数,它是从此随机数生成器的序列中取出的、呈高斯(“正常地”)分布的 double 值,其平均值是 00,标准偏差是 10。
int nextInt()
返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。
int nextInt(int n)
返回一个伪随机数,它是从此随机数生成器的序列中取出的、在 0(包括)和指定值(不包括)之间均匀分布的
int值。
long nextLong()
返回下一个伪随机数,它是从此随机数生成器的序列中取出的、均匀分布的 long 值。
void setSeed(long seed)
使用单个 long 种子设置此随机数生成器的种子。
希望能帮到你,求采纳
代码如下
public class Test {
public static void main(String[] args) {
Random random = new Random();
int num[] = new int[5];
for(int i=0; i<5; i++){
num[i]=randomnextInt();
}
}
}
以上就是关于Java产生随机数的几种方式全部的内容,包括:Java产生随机数的几种方式、java获取指定范围的随机数、关于Java的java.util.Random怎么使用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)