java随机数的产生

两种产生随机数的方法:

1、通过import java.util.Random来实现

2、Math.random()

 

一、第一种的话就是导入Random之后,先生成一个Random对象r,之后再利用r这个对象生成随机数

在生成Random对象r的时候你可以向里面放一个随机数种子,当然也可以不放,不放的话默认就是把当前时间当为随机数种子

下面代码比较一下放置随机数种子和不放随机数种子所产生Random对象r的不同

 

import java.util.Random;
import java.io.*;
import java.util.Scanner;
public class smile {

    public static void main(String[] args) throws IOException {
        
        Random rr = new Random(1);
        for(int i=1;i<=5;++i)
        {
            int num = rr.nextInt(50);
            System.out.println("随机数为:"+num);
        }    
        Random rrr = new Random(1);
        for(int i=1;i<=5;++i)
        {
            int num = rrr.nextInt(50);
            System.out.println("随机数为:"+num);
        }    
    }

}

 

结果为:

随机数为:35
随机数为:38
随机数为:47
随机数为:13
随机数为:4


随机数为:35
随机数为:38
随机数为:47
随机数为:13
随机数为:4

 

你会发现它的随机数其实并不是完全的随机

 

 

import java.util.Random;
import java.io.*;
import java.util.Scanner;
public class smile {

    public static void main(String[] args) throws IOException {
        
        Random rr = new Random();
        for(int i=1;i<=5;++i)
        {
            int num = rr.nextInt(50);
            System.out.println("随机数为:"+num);
        }    
        Random rrr = new Random();
        for(int i=1;i<=5;++i)
        {
            int num = rrr.nextInt(50);
            System.out.println("随机数为:"+num);
        }    
    }

}

 

 

 

结果:

随机数为:36
随机数为:22
随机数为:10
随机数为:33
随机数为:15


随机数为:42
随机数为:38
随机数为:49
随机数为:12
随机数为:30

 

这个相比较而言就是较彻底的随机

 

二、第二种方法返回的数值是double类型[0.0,1.0],但是double类型精度很高,可以在一定程度上看作随机数,借助(int)强制转化来转变成随机数

 

public static void main(String[] args)
    {
        int max=100,min=1;
        int ran2 = (int) (Math.random()*(max-min)+min);
        System.out.println(ran2);
    }

 

 

 

其实第一种方法也可以利用取余的方法生成一个范围内的数据

 

posted @ 2020-09-09 09:49  kongbursi  阅读(318)  评论(0编辑  收藏  举报