美文网首页
随机数产生

随机数产生

作者: 喏喏2021 | 来源:发表于2022-02-13 20:47 被阅读0次

    1. Random产生

    这里示例,我们产生20个1000以内的整数

    import java.util.Random;
    
    public class RandomTest {
        public static void random1(){
            Random r = new Random();
            for(int i=0;i<20;i++){
                int num = r.nextInt(1000);
                System.out.print(num + " ");
            }
        }
    
        public static void main(String[] args) {
            random1();
        }
    }
    //输出
    383 205 604 568 525 418 759 558 804 728 205 723 866 567 521 592 399 434 221 68 
    

    注:
    1)这里的nextInt产生的数,包括[0,num),也就是这里是0-999
    2)Random初始化的时候,默认是没有参数的,也就是以当前时间为种子,
    而当然我们也可以指定一个long的参数作为种子,
    3)如果种子相同,产生的随机数序列也是相同的

    2. 使用Math.random产生

    产生一个指定范围的随机数

    public static void random2(){
            int min = 1;
            int max = 100;
            for(int i=0;i<20;i++){
                double d = Math.random();
                int v = (int)(d * (max-min) + min);
                System.out.print(v + " ");
            }
            System.out.println();
        }
    //输出
    74 88 65 13 34 72 13 14 13 75 62 92 9 73 45 47 16 64 74 52
    

    注:
    1)Math.random会产生一个[0.0-1.0)之间的随机数
    2)(int)(d(max-min) + min) 产生[min,max)之间的数,d(max-min)产生[0,(max-min)),
    d*(max-min) +min产生[min,max)之间的随机数

    3. ThreadLocalRandom产生

    public static void random3(){
            for(int i=0;i<20;i++){
                int num = ThreadLocalRandom.current().nextInt(1000);
                System.out.print(num + " ");
            }
            System.out.println();
        }
    //输出
    585 971 182 919 416 505 127 223 662 944 533 340 990 763 738 863 566 970 645 996
    

    使用方法类似于第一种

    4. 使用SecureRandom产生

    使用加密的强随机数生成器RNG,使产生的种子是真正的随机数,保证输出的不确定性

    public static void random4() throws NoSuchAlgorithmException {
            SecureRandom random = SecureRandom.getInstance("SHA1PRNG");
            for(int i=0;i<20;i++){
                int num = random.nextInt(1000);
                System.out.print(num + " ");
            }
        }
    //输出
    788 72 159 367 254 9 157 681 367 8 636 34 695 202 530 960 832 489 439 215
    

    相关文章

      网友评论

          本文标题:随机数产生

          本文链接:https://www.haomeiwen.com/subject/ptfqlrtx.html