`
buliedian
  • 浏览: 1243953 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

java.util.Random与Math.random区别

阅读更多

JDK API 1.6.0文档描述

  java.lang.Math

  random()

  public static double random()

  返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。

  第一次调用该方法时,它将创建一个新的伪随机数生成器,与以下表达式完全相同

  new java.util.Random

  之后,新的伪随机数生成器可用于此方法的所有调用,但不能用于其他地方。

  此方法是完全同步的,可允许多个线程使用而不出现错误。但是,如果许多线程需要以极高的速率生成伪随机数,那么这可能会减少每个线程对拥有自己伪随机数生成器的争用。

  返回:

  大于等于 0.0 且小于 1.0 的伪随机 double 值。

  java.util.Random

  此类的实例用于生成伪随机数流。此类使用 48 位的种子,使用线性同余公式 (linear congruential form) 对其进行了修改(请参阅 Donald Knuth 的The Art of Computer Programming, Volume 3,第 3.2.1 节)。

  如果用相同的种子创建两个 Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。为了保证此属性的实现,为类 Random 指定了特定的算法。为了 Java 代码的完全可移植性,Java 实现必须让类 Random 使用此处所示的所有算法。但是允许 Random 类的子类使用其他算法,只要其符合所有方法的常规协定即可。

  Random 类实现的算法使用一个 protected 实用工具方法,每次调用它最多可提供 32 个伪随机生成的位。

  很多应用程序会发现Math.random()方法更易于使用。

2
2
分享到:
评论

相关推荐

    浅谈java中Math.random()与java.util.random()的区别

    Java提供了两种主要的方法来生成随机数:`Math.random()` 和 `java.util.Random` 类。虽然两者都能生成随机数,但它们之间存在一些关键的区别。 首先,`Math.random()` 是一个静态方法,它直接位于 `Math` 类中,...

    关于java.util.Random的实现原理详解

    与 `java.lang.Math` 类中的 `Math.random()` 方法不同,`Random` 类提供了更多的灵活性,可以生成特定范围和类型的随机数值。 `Random` 类的工作原理基于线性同余法,这是一种常见的伪随机数生成算法。它的内部...

    java随机数

    Java提供两种主要的方式来生成随机数:`java.lang.Math.random()` 和 `java.util.Random` 类。这两种方法各有优劣,适用于不同的场景。 #### Math.random() `Math.random()` 是一个简单易用的方法,用于生成一个...

    28个java常用的工具类

    18. **`java.util.Random`**: 生成随机数。 19. **`java.util.Comparator`**: 定义自定义排序规则。 20. **`java.util.stream.*`** (Java 8+): 流式处理API,支持函数式编程。 21. **`java.util.concurrent....

    在Java中产生随机数的两个方法

    根据提供的文件信息,本文将详细介绍两种在Java中生成随机数的方法:通过`Math.random()`函数与`java.util.Random`类。这两种方法各有特点,适用于不同的场景。 #### 方法一:使用`Math.random()` `Math.random()`...

    java工具类

    6. **`java.util.Random`**:生成随机数,可用于各种随机行为的模拟。 7. **`java.io.File`**:处理文件和目录,包括创建、删除、重命名等操作。 8. **`java.io.FileReader`/`BufferedReader`** 和 **`java.io....

    Java中Random类.pdf

    java.util.Random r=new java.util.Random(); System.out.println(r.nextInt()); } } ``` 实例2:带种子 ```java public class Test5{ public static void main(String[] args) { java.util.Random r=new java....

    实例讲解Java中random.nextInt()与Math.random()的基础用法

    在Java编程语言中,生成随机数是常见的任务,这通常涉及到`java.util.Random`类和`java.lang.Math`类中的`random()`方法。本文将详细解释`random.nextInt()`和`Math.random()`的基础用法。 首先,`random.nextInt(n...

    Java产生随机数的两种方式

    本文将详细探讨Java中生成随机数的两种主要方法:`java.lang.Math.random()`静态方法和`java.util.Random`类。 首先,我们来看`java.lang.Math.random()`方法。这是一个静态方法,不需要实例化对象就可以直接调用。...

    java开发过程中常用的工具类

    5. **`java.util.Random`**: 提供随机数生成功能,常用于测试、游戏或模拟等场景。 6. **`java.io.File`**: 用于处理文件和目录操作,如创建、删除、重命名文件,以及获取文件属性等。 7. **`java.util.HashMap` ...

    Java中的Random()函数及两种构造方法

    Java中的Random()函数是一种常用的随机数生成器,存在于java.lang.Math和java.util.Random两个包中。java.lang.Math.Random函数能够返回一个带正号的double值,该值大于等于0.0且小于1.0,即取值范围是[0.0,1.0)的左...

    Java产生随机数的两种方式.doc

    本篇文章将详细介绍Java中生成随机数的两种主要方法:使用`java.lang.Math.random()`静态方法和创建`java.util.Random`对象。 ### 一、`java.lang.Math.random()`静态方法 `Math.random()`是一个静态方法,无需...

    java中随机函数的使用.doc

    Java 中随机函数可以分为两种:一种是使用 Math.random() 方法生成随机数,另一种是使用 java.util.Random 类生成随机数。 1. 使用 Math.random() 方法生成随机数 Math.random() 方法可以生成一个双精度浮点数,该...

    浅谈Java中的几种随机数

    与`Math.random()`不同,`java.util.Random`需要创建一个实例,然后通过这个实例调用不同的方法来生成随机数,例如: ```java Random random = new Random(); int randomInt = random.nextInt(10); ``` 虽然这种...

    java常用工具类

    六、`java.util.HashMap`与`java.util.Map` `HashMap`是Java中常用的键值对存储结构,它是`Map`接口的一个实现。`Map`接口定义了存储和检索键值对的方法,而`HashMap`提供了一个高效的实现,允许任意类型作为键和值...

    Java常用包介绍.pdf

    java.sql 包提供了JDBC的实现,允许Java程序与数据库进行交互。 15. sun.tools.debug 包 sun.tools.debug 包是Sun公司提供给Java用户的调试工具包,包括各种用于调试类和接口的工具。 Java语言提供了强大的应用...

    Java软件开发实战 Java基础与案例开发详解 9-6 Random类和Math类 共9页.pdf

    ### Java软件开发实战:Random类和Math类 在Java编程中,`Random`类和`Math`类是非常实用且常用的工具类,它们提供了生成随机数和执行数学运算的方法。本篇将详细介绍这两个类的主要功能及其应用场景。 #### 1. `...

Global site tag (gtag.js) - Google Analytics