Java小记-“真”随机数

import java.util.Random;

种子确定,那么随机数序列也确定,就是所谓的伪随机数

int seed = 12;
Random r = new Random(seed);
...
...

想要更进一步达到随机效果,就有一个思路:每次调用都改变 seed 值。

再套一层随机?
显然不太行

那么,不妨设置 seed 为当下时间值。(从1970-0-0 至今过去的秒数、毫秒数、、)

import java.util.Date;
int seed = Integer.parseInt(String.format("%ts", new Date()));
Random r = new Random(seed);

import java.util.Date;
import java.util.Random;

public class GenFakers {

    public static int randint(int _min, int _max){
        Date date = new Date();
        Long seed = Long.parseLong(String.format("%tN", date));
        Random r = new Random(seed);
        return _min + r.nextInt(_max - _min);
    }
    public static void main(String[] args){
        for (int i=0;i<10;i++){
            System.out.println(randint(1, 60));
            try {
                Thread.sleep(200);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
}
48
6
22
25
33
12
33
12
54
19

你可能感兴趣的:(Java学习,java,随机数,random)