iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >Java 随机数的获得方法(5种)
  • 247
分享到

Java 随机数的获得方法(5种)

java开发语言 2023-10-25 17:10:00 247人浏览 独家记忆
摘要

1. Math.random() 静态方法 产生的随机数是 0 - 1 之间的一个 double,即 0

1. Math.random() 静态方法

产生的随机数是 0 - 1 之间的一个 double,即 0 <= random < 1

代码:

结果:

当调用 Math.random() 方法时,自动创建了一个伪随机数生成器,实际上用的是 new java.util.Random()。当接下来继续调用 Math.random() 方法时,就会使用这个新的伪随机数生成器

2. java.util.Random 工具类

基本算法:

linear congruential pseudorandom number generator (LGC) 线性同余法伪随机数生成器

缺点:可预测

Random类默认使用当前系统时钟作为种子:

Random类提供的方法:api

  • nextBoolean() - 返回均匀分布的 true 或者 false
  • nextBytes(byte[] bytes)
  • nextDouble() - 返回 0.0 到 1.0 之间的均匀分布的 double
  • nextFloat() - 返回 0.0 到 1.0 之间的均匀分布的 float
  • nextGaussian()- 返回 0.0 到 1.0 之间的高斯分布(即正态分布)的 double
  • nextInt() - 返回均匀分布的 int
  • nextInt(int n) - 返回 0 到 n 之间的均匀分布的 int (包括 0,不包括 n)
  • nextLong() - 返回均匀分布的 long
  • setSeed(long seed) - 设置种子

只要种子一样,产生的随机数也一样: 因为种子确定,随机数算法也确定,因此输出是确定的!

3. java.util.concurrent.ThreadLocalRandom 工具类

ThreadLocalRandomjdk 7 之后提供,也是继承至 java.util.Random。每一个线程有一个独立的随机数生成器,用于并发产生随机数,能够解决多个线程发生的竞争争夺。效率更高!

ThreadLocalRandom 不是直接用 new 实例化,而是第一次使用其静态方法 current() 得到 ThreadLocal 实例,然后调用 java.util.Random 类提供的方法获得各种随机数。

4. java.Security.SecureRandom

也是继承至 java.util.Random。

SecureRandom 提供加密的强随机数生成器 (RNG),要求种子必须是不可预知的,产生非确定性输出。SecureRandom 也提供了与实现无关的算法,因此,调用方(应用程序代码)会请求特定的 RNG 算法并将它传回到该算法的 SecureRandom 对象中。

  • 如果仅指定算法名称,如下所示:SecureRandom random = SecureRandom.getInstance("SHA1PRNG");
  • 如果既指定了算法名称又指定了包提供程序,如下所示:SecureRandom random = SecureRandom.getInstance("SHA1PRNG", "SUN");

5. 随机字符串

RandomStringUtils 类的实现上也是依赖了 java.util.Random 工具类:

来源地址:https://blog.csdn.net/darkhorsefly/article/details/133524887

--结束END--

本文标题: Java 随机数的获得方法(5种)

本文链接: https://www.lsjlt.com/news/442705.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java 随机数的获得方法(5种)
    1. Math.random() 静态方法 产生的随机数是 0 - 1 之间的一个 double,即 0 ...
    99+
    2023-10-25
    java 开发语言
  • Java 生成随机数的 5 种方式
    1. 使用Math类的random()方法生成0到1之间的随机数:```javadouble randomNum = Math.ra...
    99+
    2023-09-20
    Java
  • php怎么获得随机数组?多种方法解析
    PHP是一种非常流行的编程语言,由于其灵活性和易用性,它已经成为了很多开发人员的首选语言之一。在PHP中,随机数组是一个非常常见的操作,比如我们需要在一个数组中随机选择几个元素,或者我们需要随机生成一个数组来模拟一些数据。那么,PHP怎么获...
    99+
    2023-05-14
  • PHP 生成随机数的 5 种方式,你知道几种
    我知道五种PHP生成随机数的方式:1. 使用rand()函数:rand()函数可以生成一个指定范围内的随机整数。例如,生成1到10之...
    99+
    2023-09-21
    PHP
  • Java生成范围内随机整数的三种方法
    目录前言1. java.util.Random2.数学随机3. Java 8 Random.ints参考文献总结前言 在本文中,我们将向您展示三种生成范围内随机整数的方法。 java...
    99+
    2024-04-02
  • numpy产生随机数的几种方法
    目录1.np.random.rand 生成一个0到1之间的均匀分布2.np.random.randn 返回一个符合标准正态分布的数组。3.np.random.randint返回一定范...
    99+
    2023-02-10
    numpy 产生随机数 numpy 生随机数
  • Python随机数种子的使用方法
    本篇内容介绍了“Python随机数种子的使用方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!目录 随机数种子 numpy中的随机数种子 随...
    99+
    2023-06-20
  • java随机数生成的方法
    本文小编为大家详细介绍“java随机数生成的方法”,内容详细,步骤清晰,细节处理妥当,希望这篇“java随机数生成的方法”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。本教程操作环境:windows7系统、java...
    99+
    2023-06-30
  • oracle获取随机数的方法是什么
    Oracle数据库中获取随机数的方法有多种,下面列举其中几种常用的方法: 使用DBMS_RANDOM包:Oracle提供了一个D...
    99+
    2024-04-09
    oracle
  • java生成随机字符串的两种方法
    本文实例为大家分享了java生成随机字符串的具体代码,供大家参考,具体内容如下import java.util.Random;public class CharacterUtils {//方法1:length为产生的位数 public s...
    99+
    2023-05-31
    java 字符串 ava
  • Java创建随机数的四种方式总结
    目录c语言随机数java1.Random2.SecureRandom3.ThreadLocalRandom4.Math.Random完整代码第一次接触到随机数还是在c语言里面 使用的...
    99+
    2024-04-02
  • JAVA随机数的方法有哪些
    本篇内容介绍了“JAVA随机数的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!方法1://利用固定数组长度n,通过n的变化来实现。...
    99+
    2023-06-17
  • golang随机数的两种方式
    golang支持两种随机数生成方式: math/rand          // 伪随机crypto/rand   &nb...
    99+
    2024-04-02
  • C++产生随机数的几种方法小结
    目录使用cstdlib库1)使用srand()撒一个种子2)使用rand()产生随机数3)控制随机数范围4)示例代码使用random库:c++11 random library随机数...
    99+
    2023-03-09
    C++产生随机数 C++ 随机数
  • Java线程休眠的5种方法
    目录方法1:Thread.sleep方法2:TimeUnit方法3:wait方法4:Condition方法5:LockSupport总结前言: 在 Java 中,让线程休眠的方法有很...
    99+
    2024-04-02
  • Pytorch常用的4种随机数生成方法
    Pytorch常用的4种随机数生成方法 一、torch.rand():构造均匀分布张量的方法二、torch.randn():构造标准正态分布张量的方法三、torch.randint():构造区...
    99+
    2023-09-21
    pytorch python 随机数
  • JAVA中如何获取随机数
    JAVA中如何获取随机数,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。在Java中我们可以使用java.util.Random类来产生一个随机数发生器。它有两种形式的构造函数,...
    99+
    2023-06-03
  • javascript获取时间戳的5种方法详解
    js/javascript获取时间戳的5种方法 1.获取时间戳精确到秒,13位 const timestamp = Date.parse(new Date()); console.l...
    99+
    2023-03-19
    js获取时间戳 js时间戳
  • php产生随机数的两种方法实例代码 输出随机IP
    分享下php生成随机数的三种方法,生成1-10之间的不重复随机数,php生成不重复随机数的例子,需要的朋友参考下。 如何用php生成1-10之间的不重复随机数? 例1,使用shuff...
    99+
    2022-11-21
    php 随机数
  • java生成随机数的方法有哪些
    Java生成随机数的方法有以下几种:1. 使用`java.util.Random`类:可以使用`nextInt()`方法生成一个随机...
    99+
    2023-08-31
    java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作