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

java 随机数 Math与Random

    博客分类:
  • java
阅读更多
今天需要在程序中产生随机数,知道有两种方法可以使用,但是使用Math和Random的区别还不是特别清楚,看到一篇文章是关于的,觉得写的还挺不错的,原文地址是
http://www.oschina.net/question/157182_45274?sort=default&p=1#answers

产生1到10之间的随机数的两种实现方式:
//Math
Math.round(Math.random() * 9+1)
//Random
Random rdm = new Random();
rdm.nextInt(10)+1;//rdm.nextInt(10)产生的是0到9之间的随机数


需要注意的地方:
1.由于使用Random需要每次创建一个对象,所以Math的静态方法会更好一些,但是在一些需要种子的(seed)的情况下,共用随机数对象就不太合适了。比如多线程时候,每个线程选用种子不相同时,就不能用Math方法了。
2.java.util.Random是线程安全的,所以用Random不用担心会破坏种子。
3.Math.round(Math.random() * 10)使分布不均匀,因为0-0.49999将四舍五入为0,0.5-1.4999将四舍五入为1,使用Math.floor(Math.random() * 11)可以实现正确的均匀分布。
4.不能使用Math.abs(rnd.nextInt())%n,而要使用rnd.nextInt(n)。
分享到:
评论
1 楼 king_qing 2017-01-12  
博主总结的非常好。学习。了。
第一个注意点。Math的静态方法在多线程环境里,会被每个线程都选择到同样的数字吗,应该不会吧。

相关推荐

    java 随机数 Math.random

    //产生随机数的类 final SuiJiShuClass sjs=new SuiJiShuClass(); final JPanel panel=new JPanel(); //初始化一个JPanel ...int m=(int)Math.rint(Math.random()*(parseInt2-parseInt3)+ parseInt3);

    Java产生随机数的两种方式

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

    java随机数

    - 与 `Math.random()` 类似,可以通过静态方法访问。 #### 总结 Java提供了多种生成随机数的方法,每种方法都有其适用的场景。对于简单的应用来说,`Math.random()` 就足够用了。如果需要更复杂的功能或在并发环境...

    【Java】Math.random()

    Math.Random()简介 Math.Random()函数能够返回带正号的double值,该值大于等于0.0且小于1.0,即取值范围是[0.0,1.0)的左闭右开区间,返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。 for (int i = 0; i ...

    java 随机数的资源

    最后,关于图片文件`Java.jpg`可能代表Java的Logo或者与随机数相关的示例图,具体用途需结合实际代码分析。在Java程序中,可以使用`javax.imageio.ImageIO`类读取和处理图像数据,但这超出了随机数生成的范畴。 ...

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

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

    浅谈java中的几种随机数

    首先,最基本的随机数生成方法是使用`java.lang.Math.random()`。这个静态方法返回一个介于0.0(包括)到1.0(不包括)之间的双精度浮点数。要生成指定范围内的随机数,通常会通过乘以一个适当的因素并调整范围。...

    java产生随机数的几种方式

    `Math.random()` 是Java中最常用的方式来生成随机数。它返回一个双精度浮点数,其值在0.0(包括)到1.0(不包括)之间。可以通过简单的数学运算将其转换为其他类型的随机数。例如,如果想生成0到100之间的整数...

    java根据比例概率生成随机数

    在给定的代码中,作者定义了一个 MathRandom 类,其中包含了六个静态变量,分别表示数字 0 到 5 的出现概率。这些概率按照以下顺序递减:0(50%)、1(20%)、2(15%)、3(10%)、4(4%)和 5(1%)。 在 ...

    java学习资料-实例解析常用Java随机数生成

    在Java中,生成随机数主要有两种方式:使用`Math.random()`方法和`java.util.Random`类。 1. **Math.random()方法**: `Math.random()`是Java内置的静态方法,它返回一个0.0到1.0之间的双精度浮点数,不包括1.0。...

    java中产生随机数的两个方法

    利用这种方式创建随机数时,与采用 Math.random() 方法产生随机数的机制不同。Java 编译器会以系统当前的时间作为随机数生成器的种子。由于时间时时刻刻在变化的,因此可以保证生成的随机数真的是随机的。 Java ...

    java生成随机数的常用方法分析

    更多关于 Java 算法相关内容可以查看《Java 数据结构与算法教程》、《Java 字符与字符串操作技巧总结》、《Java 操作 DOM 节点技巧总结》、《Java 文件与目录操作技巧汇总》和《Java 缓存操作技巧汇总》。

    在javascript中随机数 math random如何生成指定范围数值的随机数

    为了生成指定范围内的随机数,我们需要对`Math.random()`返回的浮点数进行适当的处理。以下是如何实现这一目标的方法: 1. **生成0到N(包含N)之间的整数随机数**: 我们可以将`Math.random()`的结果乘以N(期望...

    Java随机数的编程

    ### Java随机数编程详解 #### 引言 在软件开发中,随机数的生成是一个常见且重要的需求。无论是游戏开发中的随机事件,还是数据分析中的模拟实验,亦或是密码学中的安全算法,都离不开随机数的支持。Java作为一种...

    java 随机数 ,解决头、尾数字在四舍五入之后得到的几率其实比中间的数少一半,并不能保证头尾的数字概率与其他数字相同

    java 随机数Math.random()头、尾数字在四舍五入之后得到的几率其实比中间的数少一半,并不能保证头尾的数字概率与其他数字相同 max.subtract(min).multiply(BigDecimal.valueOf(Math.random())).add(min).setScale(0...

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

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

    javascript Math.random()随机数函数

    random函数语法 Math.random(); random函数参数 无参数 random函数... 返回随机数 [removed](Math.random()*(20-10)+10); 返回10-20的随机数 [removed](Math.random()*(n-m)+m); 返回指定范围的随机数(m-n之间)的公式

    java随机数获取

    Math.random:随机数的个,十,百,千,,,位数相加详解

    Java获取随机数的3种方法

    这是最基础的生成随机数的方法,`Math.random()`返回的是一个0.0到1.0之间的浮点数,不包括1.0。如果你需要生成指定范围内的整数,可以使用以下公式: ```java (int)(最小值 + Math.random() * (最大值 - 最小值 + 1...

    java随机数.pdf

    一、Java随机数生成方式 1. `System.currentTimeMillis()`:返回当前系统时间的毫秒数,这是一个长整型(`long`)数值,可以用来生成具有时间依赖性的唯一随机数。 2. `Math.random()`:返回一个0到1之间的双精度...

Global site tag (gtag.js) - Google Analytics