㈠ java获取随机数
很多朋友都想知道java怎么获取随机数?下面就一起来了解一下吧~
Java中的随机数的有三种产生方式:
(01). 通过System.currentTimeMillis()来获取一个当前时间毫秒数的long型数字。
(02). 通过Math.random()返回一个0到1之间的double值。
(03). 通过Random类来产生一个随机数。
第1种
通过System.currentTimeMillis()来获取随机数。实际上是获取当前时间毫秒数,它是long类型。使用方法如下:
final long l = System.currentTimeMillis();
若要获取int类型的整数,只需要将上面的结果转行成int类型即可。比如,获取[0, 100)之间的int整数。方法如下:
final long l = System.currentTimeMillis();final int i = (int)( l % 100 );
第2种
通过Math.random()来获取随机数。实际上,它返回的是0(包含)到1(不包含)之间的double值。使用方法如下:
final double d = Math.random();
若要获取int类型的整数,只需要将上面的结果转行成int类型即可。比如,获取[0, 100)之间的int整数。方法如下:
final double d = Math.random();final int i = (int)(d*100);
第3种
通过Random类来获取随机数。
使用方法如下:
(01) 创建Random对象。有两种方法可以创建Random对象,如下:
Random random = new Random();//默认构造方法Random random = new Random(1000);//指定种子数字
(02) 通过Random对象获取随机数。Random支持的随机值类型包括:boolean, byte, int, long, float, double。
比如,获取[0, 100)之间的int整数。方法如下: int i2 = random.nextInt(100);
㈡ java如何产生1-8的整数随机数
在java中,生成随机数使用的是Random类。要生成在[min,max]之间的随机整数,则可以如下:
import java.util.Random;
public class RandomTest {
public static void main(String[] args) {
int max = 8;
int min = 1;
Random random = new Random();
int s = random.nextInt(max)%(max-min+1) + min;
System.out.println(s);
}
}
其中,random.nextInt(max)表示生成[0,max]之间的随机数,然后对(max-min+1)取模。
㈢ java中 怎样实现随机4位的整数
可以借助Math类里的random方法或者借助Random类来实现
1、使用Math类的random方法实现产生1000-9999的随机数代码如下:
inta=(int)(Math.random()*(9999-1000+1))+1000;//产生1000-9999的随机数
2、使用Random类实现代码:
importjava.util.Random;//导入Random包
publicclassRanadd{
publicstaticvoidmain(String[]args){
intx;//定义两变量
Randomne=newRandom();//实例化一个random的对象ne
x=ne.nextInt(9999-1000+1)+1000;//为变量赋随机值1000-9999
System.out.println("产生的随机数是:"+x);//输出
}
}
说明:
1、Java中Math类中有random方法产生的随机数是一个伪随机选择的(大致)均匀分布在从0.0到1.0这一范围内的double类型数
2、java.util.Random类中实现的随机算法是伪随机,也就是有规则的随机,所谓有规则的就是在给定种(seed)的区间内随机生成数字;相同种子数的Random对象,相同次数生成的随机数字是完全相同的;Random类中各方法生成的随机数字都是均匀分布的,也就是说区间内部的数字生成的几率均等;
㈣ java如何产生1-10随机数
java代码方法一如下:
int random=(int)(Math.random()*10+1)
java代码方法二如下:
package bdqn_Empy;
import java.util.Random;
public class Text {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int a=0;
Random b=new Random();
a=b.nextInt(101);
System.out.println(a);
}
}
可以先通过 random方法生成一个随机数,然后将结果乘以10。此时产生的随机数字即为大于等于0小于10的数字。
然后再利用nt方法进行转换它会去掉小数掉后面的数字即只获取整数部分,不是四舍五入)。最后即可获取一个0到9的整数型随机数字。其实现方法很简单,就是对原有的 grandom方法按照如下的格式进行变型:(int( Math. Random0*10)即可。
其实我们还可以对这个方法进行扩展,让其产生任意范围内的随机数。至需要将这个10换成n即可,如改为( int(Math. Random0n)。此时应用程序就会产生一个大于等于0小与n之间的随机数。
如将n设置为5,那么其就会产生一个0到5之间的整数型的随机数。如果将这个写成一个带参数的方法,那么只要用户输入需要生成随机数的最大值,就可以让这个方法来生成制定范围的随机数。
㈤ 在java中随机生成10个整数,用户求输入一个数,判断是否存在于这10个整数中
由于你没有指定这10个整数的生成范围,所以我这里假定是0~99之间的整数,这样用户输入时有10%的几率命中。
整体代码为:
public class Main {
public static void main(String[] args) {
//声明长度为10的随机数数组
int[] randoms = new int[10];
Random random = new Random();
for (int i = 0; i < 10; i++) {
//获取0~99之间的一个随机整数,可通过调整nextInt的参数来修改随机数范围
int num = random.nextInt(100);
//如果新生成的数字已经存在于随机数数组中,则重新生成
if (checkDistinct(randoms, num)) {
i--;
continue;
}
randoms[i] = num;
}
//增序排序,好看
Arrays.sort(randoms);
System.out.println("请输入一个整数:");
Scanner scanner = new Scanner(System.in);
//严谨一点这里其实可以对输入的in进行校验,检验其是不是整数,校验方法很多搜一下就有我这就不校验了
int in = scanner.nextInt();
System.out.println("生成的随机数数组为:");
System.out.println(Arrays.toString(randoms));
if (checkDistinct(randoms, in)) {
System.out.println("输入的数字[" + in + "]在其中");
} else {
System.out.println("输入的数字[" + in + "]不在其中");
}
}
//检查新生成的数字是否存在于随机数数组中,若存在,返回true
private static boolean checkDistinct(int[] randoms, int num) {
for (int i = 0; i < randoms.length; i++) {
if (randoms[i] == num) {
return true;
}
}
return false;
}
}
㈥ Java怎么产生随机数
有三个小方法
方法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随机数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
㈦ java获取随机数的几种方法是什么
方法1x0dx0a(数据类型)(最小值+Math.random()*(最大值-最小值+1))x0dx0a例:x0dx0a(int)(1+Math.random()*(10-1+1))x0dx0a从1到10的int型随数x0dx0a方法2x0dx0a获得随机数x0dx0afor (int i=0;i<30;i++)x0dx0a{System.out.println((int)(1+Math.random()*10));}x0dx0a(int)(1+Math.random()*10)x0dx0a通过java.Math包的random方法得到1-10的int随机数x0dx0a公式是:最小值---最大值(整数)的随机数x0dx0a(类型)最小值+Math.random()*最大值x0dx0a方法3x0dx0aRandom ra =new Random();x0dx0afor (int i=0;i<30;i++)x0dx0a{System.out.println(ra.nextInt(10)+1);}x0dx0a通过java.util包中的Random类的nextInt方法来得到1-10的int随机数 x0dx0a生成0到1之间的任意随机小数:x0dx0a生成[0,d)区间的随机小数,d为任意正的小数,则只需要将nextDouble方法的返回值乘以d即可。x0dx0a[n1,n2]x0dx0a也就是 ra.nextDouble() * (n2-n1)+n1
㈧ Java中用Random类生成1到9的随机数该怎么写使用种子
写法:inttemp=m+(int)(Math.random()*(n+1-m));//Java生成从m到n的随机整数[m,n]。
random(),函数,random函数返回一个0~num-1之间的随机数。random(num)是在stdlib.h中的一个宏定义。num和函数返回值都是整型数。
(8)java整数随机数扩展阅读:
注意
如需要在一个random()序列上生成真正意义的随机数,在执行其子序列时使用randomSeed()函数预设一个绝对的随机输入,例如在一个断开引脚上的analogRead()函数的返回值。
反之,有些时候伪随机数的精确重复也是有用的。这可以在一个随机系列开始前,通过调用一个使用固定数值的randomSeed()函数来完成。