• 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);
        }

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

  • 相关阅读:
    脱壳->模拟追踪脱壳法原理
    脱壳->内存断点法脱壳
    奇技淫巧技术-注册表的操作
    LoardPe与Import REC X64dbg脚本 脱壳 Upx
    VS快捷键一览表.常用快捷键整理.
    VS2019库头文件的使用
    PowerShell第一讲,别名,变量,命令。
    Debug技巧-启动调试附加原理
    strlen的另一种实现,可以作为ShellCode
    windows-遍历另一进程内存根据进程PID
  • 原文地址:https://www.cnblogs.com/kongbursi-2292702937/p/13637152.html
Copyright © 2020-2023  润新知