java中随机数怎么生成

Python020

java中随机数怎么生成,第1张

java的三种随机数生成方式

随机数的产生在一些代码中很常用,也是我们必须要掌握的。而java中产生随机数的方法主要有三种:

第一种:new Random()

第二种:Math.random()

第三种:currentTimeMillis()

有三个小方法

方法1

(数据类型)(最小值+Math.random()*(最大值-最小值+1))

例:

(int)(1+Math.random()*(10-1+1))

从1到10的int型随数

方法2

获得随机数

for (int i=0i<30i++)

{System.out.println((int)(1+Math.random()*10))}

(int)(1+Math.random()*10)

通过java.Math包的random方法得到1-10的int随机数for (int i=0i<30i++)

{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=0i<30i++)

{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

由于你没有指定这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 = 0i <10i++) {

//获取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 = 0i <randoms.lengthi++) {

if (randoms[i] == num) {

return true

}

}

return false

}

}

运行结果:

输入的数字存在时:

输入的数字不存在时: