首页 > 编程语言 >JAVA随机数的产生

JAVA随机数的产生

时间:2022-11-16 12:44:51浏览次数:36  
标签:Random JAVA 2s 产生 random nextInt 随机数 LCG

 

产生随机数的类和方法

Random random=new Random();
//Random(long seed):使用单个 long 类型的参数创建一个新的随机数生成器。
random.nextBoolean();
random.nextDouble(); //返回0~1.0之间的浮点数
random.nextInt();
random.nextInt(int n); //返回0~n-1的随机数
random.setSeed(long seed);//重新设置种子数
random.nextLong();
random.nextFloat();
random.nextDouble();
random.nextInt(max-min+1)+min //得到min~max-1的随机数
//一般随机数的范围都是左闭右开
ThreadLocalRandom random=new ThreadLocalRandom();
SecureRandom random=SecureRandom.getInstance("事件作为种子");
Math.random(); //产生0~1的随机浮点数
(int)Math.random()*length; //产生整数随机数

生成随机数的两种方法

平方取中法

给出一个2s位的随机种子,然后平方得到4s位的数字,取数字的中间2s位得到随机数,然后作为新的随机种子得到下一位随机数

例如:2333(不够2s补0) -> 05442889(不够4s补零) -> 4428

线性同余法产生随机数

线性同余方法(LCG)是一种产生伪随机数的方法。

它是根据递归公式:RandSeed = (A * RandSeed + B) % M

线性同余法最重要的是定义了三个整数,乘数 A、增量 B和模数 M,其中A, B, M是产生器设定的常数。 LCG的周期最大为 M,但大部分情况都会少于M。要令LCG达到最大周期,应符合以下条件:

  1. B,M互质;
  2. M的所有质因数都能整除A-1;
  3. 若M是4的倍数,A-1也是;
  4. A,B,N[0]都比M小;
  5. A,B是正整数。

 

标签:Random,JAVA,2s,产生,random,nextInt,随机数,LCG
From: https://www.cnblogs.com/liyiyang/p/16895494.html

相关文章

  • 力扣374(java&python)-猜数字大小(简单)
    题目:猜数字游戏的规则如下:每轮游戏,我都会从 1 到 n随机选择一个数字。请你猜选出的是哪个数字。如果你猜错了,我会告诉你,你猜测的数字比我选出的数字是大了还是小了......
  • 【Java】zuul
    报错com.netflix.zuul.exception.ZuulException:HystrixReadedtimeout解决办法,zuul模块的yml配置文件增加ribbon:ConnectTimeout:5000#连接超时时间(ms)......
  • Java SpringBoot FTP 上传下载文件
    POM添加依赖<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.3.7</version></dependency><!--......
  • QT客户端与Java服务端进行https通信_F_hawk189_新浪博客
    网上也有一部分教程,不过我还是踩了许多的坑,所以整理了一下网上看到的和自己的一些收获。首先:,Tomcat.truststore(包含信任库),首先说明一下这个两个文件   cl......
  • 7.jenkins调用maven工具管理java代码实现滚动发布
    1.配置多jdk环境2.配置多maven环境3.配置maven项目3.1配置部署主机[root@jenkinswar_update]#cathosts_test[webservice]192.168.1.191[root@jenkinswar_......
  • Java-10接口与抽象类
    Java-10接口与抽象类抽象方法abstractmethod机制这是一个不完整的方法,它只有一个声明,没有方法体abstractvoidf();包含抽象方法的类被称为抽象类:如果一个类包含一......
  • 如何理解Java中眼花缭乱的各种并发锁?
    在互联网公司面试中,很多小伙伴都被问到过关于锁的问题。今天,我给大家一次性把Java并发锁的全家桶彻底讲明白。包括互斥锁、读写锁、重入锁、公平锁、悲观锁、自旋锁、偏向......
  • Java反应式编程(2)
    您好,我是湘王,这是我的51CTO博客,欢迎您来,欢迎您再来~看了前面对反应式编程的说明,可能很多人都会打退堂鼓了。Lambda都已经够难理解的了,又来了一个反应式编程!实在卷不动了~其实......
  • 还不懂Java线程池实现原理,看这一篇文章就够了
    线程池无论是工作还是面试都是必备的技能,但是很多人对于线程池的实现原理却一知半解,并不了解线程池内部的工作原理,今天一灯就带大家一块剖析线程池底层实现原理。1.为什......
  • Java反射
    反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的功能称为......