Random()

创建一个新的随机数生成器。

代码如下

复制代码

Random(long seed)

使用单个 long 种子创建一个新的随机数生成器。

我们可以在构造Random对象的时候指定种子,如:

代码如下

复制代码

Random r1 = new Random(20);

或者默认当前系统时间对http://www.111cn.net/jsp/Java/45403.htm 应的相对时间有关的数字作为种子数:

代码如下

复制代码

Random r1 = new Random();

种子数只是随机算法的起源数字,和生成的随机数字的区间无关。

2、Random类中的常用方法

下面对这些方法做一下基本的介绍:

代码如下

复制代码

a、public boolean nextBoolean()

该方法的作用是生成一个随机的boolean值,生成true和false的值几率相等,也就是都是50%的几率。

代码如下

复制代码

b、public double nextDouble()

该方法的作用是生成一个随机的double值,数值介于[0,1.0)之间。

代码如下

复制代码

c、public int nextInt()

该方法的作用是生成一个随机的int值,该值介于int的区间,也就是-231到231-1之间。

如果需要生成指定区间的int值,则需要进行一定的数学变换,具体可以参看下面的使用示例中的代码。

代码如下

复制代码

d、public int nextInt(int n

)

该方法的作用是生成一个随机的int值,该值介于[0,n)的区间,也就是0到n之间的随机int值,包含0而不包含n。

如果想生成指定区间的int值,也需要进行一定的数学变换,具体可以参看下面的使用示例中的代码。

代码如下

复制代码

e、public void setSeed(long seed)

该方法的作用是重新设置Random对象中的种子数。设置完种子数以后的Random对象和相同种子数使用new关键字创建出

的Random对象相同。

3、Random类使用示例

使用Random类,一般是生成指定区间的随机数字,下面就一一介绍如何生成对应区间的随机数字。以下生成随机数的

代码均使用以下Random对象r进行生成:

代码如下

复制代码

Random r = new Random();

a、生成[0,1.0)区间的小数

代码如下

复制代码

double d1 = r.nextDouble();

直接使用nextDouble方法获得。

b、生成[0,5.0)区间的小数

代码如下

复制代码

double d2 = r.nextDouble() * 5;

因为nextDouble方法生成的数字区间是[0,1.0),将该区间扩大5倍即是要求的区间。

同理,生成[0,d)区间的随机小数,d为任意正的小数,则只需要将nextDouble方法的返回值乘以d即可。

c、生成[1,2.5)区间的小数

代码如下

复制代码

double d3 = r.nextDouble() * 1.5 + 1;

生成[1,2.5)区间的随机小数,则只需要首先生成[0,1.5)区间的随机数字,然后将生成的随机数区间加1即可。

同理,生成任意非从0开始的小数区间[d1,d2)范围的随机数字(其中d1不等于0),则只需要首先生成[0,d2-d1)区间的

随机数字,然后将生成的随机数字区间加上d1即可。

d、生成任意整数

代码如下

复制代码

int n1 = r.nextInt();

直接使用nextInt方法即可。

e、生成[0,10)区间的整数

代码如下

复制代码

int n2 = r.nextInt(10);

n2 = Math.abs(r.nextInt() % 10);

以上两行代码均可生成[0,10)区间的整数

均匀分布性

代码如下

复制代码

import java.util.Random;

public class RandomDemo {

/**

* 小伙部落

*

* @param args

*/

public

static void main(String[] args) {

Random r = new Random();

int n5 = r.nextInt(100);

String ran = "";

if

(n5 < 55) {       //55个数字的区间,55%的几率

ran = "55%";

} else if (n5 < 95) {//[55,95),40个数字的区间,40%的几率

ran = "40%";

} else {

ran = "5%";     //剩余几率,你懂得!

}

System.out.println(ran);

}

}

Random在java中怎么用_java中random()函数用法介绍相关推荐

  1. python中all函数的用法_python中map、any、all函数用法分析

    这篇文章主要介绍了 python 中 map . any . all 函数用法 , 实例分析了 map . any . all 函数 的相关使用技巧 , 具有一定参考借鉴价值 , 需要的朋友可以参考下 ...

  2. php debug_print_backtrace,php中debug_backtrace、debug_print_backtrace和匿名函数用法实例

    本文实例讲述了php中debug_backtrace.debug_print_backtrace和匿名函数用法.分享给大家供大家参考.具体分析如下: debug_print_backtrace() 是 ...

  3. python中mean的用法_python 的numpy库中的mean()函数用法介绍

    1. mean() 函数定义: numpy.mean(a, axis=None, dtype=None, out=None, keepdims=)[source] Compute the arithm ...

  4. python 的numpy库中的mean()函数用法介绍

    这篇文章主要介绍了python 的numpy库中的mean()函数用法介绍,具有很好对参考价值,希望对大家有所帮助.一起跟随小编过来看看吧 mean() 函数定义: 2 mean()函数功能: 求取均 ...

  5. python average函数怎么用_python 的numpy库中的mean()函数用法介绍

    1. mean() 函数定义: numpy.mean(a, axis=None, dtype=None, out=None, keepdims=)[source] Compute the arithm ...

  6. oracle中trim,ltrim,rtrim函数用法(简单易懂)

    oracle中trim,ltrim,rtrim函数用法 用法一.去空格 函数 作用 TRIM TRIM()去除指定字符串的前后空格 LTRIM LTRIM()去除指定字符串的前面空格 RTRIM RT ...

  7. C#中ToInt32以及类似函数用法介绍

    C#中ToInt32以及类似函数用法介绍 作用 程序举例 程序逻辑 程序代码 程序 作用 将指定的值转换为 32 位有符号整数.对应的还有ToInt16,ToInt64 指定的值可以是字符串.时间.位 ...

  8. java 中的流_Java中的流(IO

    Java中的流(IO流. java.io包中定义了多个流类型(类或抽象类)来实现 输入 / 输出功能,可以从不同的角度对其进行分类: 按单位可分为: 字节流         (一个字节一个字节的读取) ...

  9. java c 性能比较_java 中ArrayList与LinkedList性能比较

    java 中ArrayList与LinkedList性能比较 今天看一框架的代码,看到有些 可以使用ArrayList的地方 使用的是 LinkedList,用到的情景是在一个循环里面进行顺序的插入操 ...

  10. delay在java中有什么用_java中DelayQueue的使用

    java中DelayQueue的使用 简介 今天给大家介绍一下DelayQueue,DelayQueue是BlockingQueue的一种,所以它是线程安全的,DelayQueue的特点就是插入Que ...

最新文章

  1. Ellipse(椭圆)
  2. 多种分布式文件系统简介
  3. 关于《资产负债表》中未分配利润项目的填列
  4. boost::throw_exception的测试程序
  5. linux创建目录记录日志,创建LVM的日志记录
  6. NYOJ746 整数划分
  7. mac升级php7,MAC更新自带php版本到7.0
  8. 中国电信到美国的几条海缆线路图
  9. windows下git安装
  10. 一家麻辣烫店如何实现月净利五万
  11. [数值计算-11]:多元函数求最小值 - 偏导数与梯度下降法Python法代码示例
  12. 那些雷得我们如此销魂的台词
  13. 日本房产泡沫的崩塌,虽然很长,希望80后仔细阅读
  14. 极客时间限时免费开放全部课程!别纠结了选这几门!
  15. 美团酒旅实时数据规则引擎应用实践
  16. edge打开pdf不显示印章_一旦碰到Edge浏览器打不开pdf文件,只需这样做就可完美解决!...
  17. CorelDRAWX4的C++插件开发(四十三)VBA的错误返回机制
  18. 通过证书管理解决无法连接 Citrix XenApp SSL 61 您还未选择信任证书颁发者的问题
  19. 前端最有成就感一—-封装
  20. 武大计算机科学与技术弘毅学堂,武汉大学研究生精品课-百余新学子体验“弘毅学堂”...

热门文章

  1. python中的框架、库、包、模块都是什么意思_Python中的import,from...import以及模块、包、库的概念...
  2. 主成分分析法怎么提取图片中的字_视频图像的MATLAB处理(2)两种主成分分析方法...
  3. oracle分区键使用大于小于会失效吗_大规模使用 Apache Kafka 的20个最佳实践
  4. C#:DataTable判断是否存在某列
  5. Pannellum:实例之为全景图添加标题和作者
  6. linux设置开机自启动的方式总结
  7. 设计模式(12)——状态模式
  8. Python Revisited Day 09 (调试、测试与Profiling)
  9. Python标准库映射类型与可散列数据类型的关系
  10. Web静态服务器-7-gevent版