`
SaraWon
  • 浏览: 41752 次
  • 性别: 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中,我们可以通过两种方式来获取随机数(generating a random number)一种是大家熟悉的java.lang.Math.Random()静态方法,另一种是创建java.util.Random对象。本文介绍了两种方法的使用过程。

    【Java】Math.random()

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

    java随机数

    1.java.lang.Math.random() 在所有其他语言中,生成随机数就像是使用Math工具类,如abs, pow, floor, sqrt和其他数学函数。大多数人通过书籍、教程和课程来了解这个类。一个简单的例子:从0.0到1.0之间可以生成一个...

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

    Math.random() 这个方法相信大家都知道,是用来生成随机数的。不过一般的参考手册时却没有说明如何用这个方法来生成指定范围内的随机数。这次我就来详细的介绍一下Math.random(),以及如何用它来生成制定范围内的...

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

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

    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中常用的三种产生随机数的方法详解(currentTimeMills,random,Math.random)

    Java中常用的三种产生随机数的方法及其原理详解(currentTimeMills,random,Math.random) 这学期笔者开始学习Java,由于以前有了C做基础,学Java明显可以轻松许多,但是这几天有个问题很苦恼,有几道题目要...

    java练习java.lang.Math随机数

    你中过奖么?利用java实现一个35选7的彩票中奖号码产生程序。随机产生7个1至35之间(包括1和35)的不重复整数,并输出...随机数生成方法见JDK API的java.lang.Math类的random函数。(练习循环与break、continue、数组)

    Java 随机数比较和分析

    概况:  本文概述2种jdk的随机数实现方式,旨在了解其运行...  1、Math.random() ——返回[0,1)的随机小数,通过(int) (n * Math.random())即可获取[0,n)的随机数  2、java.util.Random的nextInt(n)方法 —

    Java Random类的详细介绍(Java生成随机数)

    Java Random类的详细介绍(Java生成随机数)一、Random类的使用1.Random类生成随机数(int)的基本语法:2.几种常用的随机数生成二、Random类的详细介绍1.生成指定范围的数字2.Random.nextInt()与Math.random()的区别 ...

    javascript 随机数 与高级应用 附vbscript(asp) 随机数总结

    一、是javascript 随机数函数Math.random() 生成指定范围的随机数 Math.random()方法没有参数,返回0~1之间的随机数,如果要生成0~n之间的随机 数,可以使用下面的格式: Math.floor(Math.random()*n) 若要生成m~n...

    JAVA 生成随机数的3种方法

    Math.random 方法,创建一个double类型的随机数 ThreadLocalRandom class 1) java.util.Random 要使用这个方法,首先要生成一个实例。来调用它的nextInt(),nextDouble(), nextLong() 等等 我们可以使用这个类来生成...

    java-随机数生成

    Java随机数生成 随机数有三种生成方式 1.通过Math.random()方法 2.通过System.currentTimeMillis()方法获取毫秒数, 3.通过Random类 ——————————————————————使用开发工具MyEclipse10 第一种:...

    jsp页面方式生成验证码

    用jsp页面的方式实现验证码的生成和获取

    Java的数学运算处理类讲解代码(BigDecimal、Math、Random、DecimalFormat类全部操作方法API)

    该项目包含详细的代码示例和注释,涵盖了以下几个主要的数学计算处理类:BigDecimal、Math、Random和DecimalFormat。 适用人群: Java开发者:对于使用Java进行数学计算和处理的开发者。 学习者:对于想要了解Java...

    JAVA随机数随机字母(微信抢红包小练习)

    随机数 ——Math.random() 0.0 在Math类中存在一个random()方法,用于产生随机数字,这个方法生成在0.0<=生成数<1.0 0.1那么它默认的生成的数显然在有些时候是满足不了我们的,我们来看看它的升级版 类型 ...

    javascript中Math.random()使用详解

    Math.random()方法返回大于等于 0 小于 1 的一个随机数。对于某些站点来说,这个方法非常实用,因为可以利用它来随机显示一些名人名言和新闻事件。 1. 在连续整数中取得一个随机数 值 = Math.floor(Math.random() *...

Global site tag (gtag.js) - Google Analytics