java平均的随机数_Java 随机数详解「建议收藏」

java平均的随机数_Java 随机数详解「建议收藏」Java随机数详解##概述Java随机数的产生方法有2种,一种是Math.random()方法,一种是Random类。Math.random()可以随机生成一个0-1的double类型浮点数。Random类需要一个随机数种子来产生一个随机数,默认构造函数Random()使用当前时间(System.currentTimeMillis())作为发生器的种子,也可以使用Random(longsee…

大家好,又见面了,我是你们的朋友全栈君。

Java 随机数详解

## 概述

Java随机数的产生方法有2种,一种是Math.random()方法,一种是Random类。

Math.random()可以随机生成一个0-1的double类型浮点数。

Random类需要一个随机数种子来产生一个随机数,默认构造函数Random()使用当前时间(System.currentTimeMillis())作为发生器的种子,也可以使用Random(long seed)指定发生器的种子。

随机数发生器(Random)对象产生以后,可以通过调用不同的方法(nextInt()、nextLong()、nextFloat()、nextDouble()等)获得不同类型随机数。指定随机数种子后,每次运行生成的随机数序列结果都一样。

## 生成随机数

### 使用Random类生成随机数

“`java

Random random = new Random();

System.out.println(random.nextInt());// 生成整形随机数

System.out.println(random.nextFloat());// 生成浮点型随机数

System.out.println(random.nextBoolean());// 生成布尔类型随机数

“`

### 使用Math.random()方法生成随机数

“`java

double random = Math.random();

System.out.println(random);

“`

## 生成指定范围的随机数

生成“5 =< result < 30”的随机数。

### 使用Random类

“`

int min = 5;

int max = 30;

Random random = new Random();

// 5 =< result < 30

int result = random.nextInt(max – min) + min;

System.out.println(result);

“`

### 使用Math.random()方法

“`

int min = 5;

int max = 30;

int result = (int) (Math.random() * (max – min)) + min;

System.out.println(result);

“`

## 生成随机密码

生成包含大小写字母、数字、特殊字符的指定长度密码

### 使用ASCII码

“`

int length = 15;

Random random = new Random();

StringBuffer sb = new StringBuffer();

for (int i = 0; i < length; i++) {

sb.append((char) (random.nextInt(127 – 33) + 33));

}

System.out.println(sb.toString());// &%TK^5%{@VE4

“`

### 使用指定的字符串

“`

String chars = “0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ”;

int length = 15;

Random random = new Random();

StringBuffer sb = new StringBuffer();

for (int i = 0; i < length; i++) {

sb.append(chars.charAt(random.nextInt(chars.length())));

}

System.out.println(sb.toString());// 6FUCPy9hCJRbBSg

“`

## Random类常用API

| 方法 | 描述 |

| — | — |

| Random() | 创建一个新的随机数生成器。 |

| Random(long seed) | 使用seed种子创建一个新随机数生成器。 |

| protected int next(int bits) | 生成下一个伪随机数。 |

| boolean nextBoolean() | 返回下一个伪随机数,它是从此随机数生成器的序列中取出的、均匀分布的 boolean 值。 |

| void nextBytes(byte\[\] bytes) | 生成随机字节并将其置于用户提供的字节数组中。 |

| double nextDouble() | 返回下一个伪随机数,它是从此随机数生成器的序列中取出的、在 0.0 和 1.0之间均匀分布的 double 值。 |

| float nextFloat() | 返回下一个伪随机数,它是从此随机数生成器的序列中取出的、在 0.0 和 1.0 之间均匀分布的 float 值。 |

| double nextGaussian() | 返回下一个伪随机数,它是从此随机数生成器的序列中取出的、呈高斯(“正常地”)分布的 double 值,其平均值是 0.0,标准偏差是 1.0。 |

| int nextInt() | 返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。 |

| int nextInt(int n) | 返回一个伪随机数,它是从此随机数生成器的序列中取出的、在 0(包括)和指定值(不包括)之间均匀分布的 int值。 |

| long nextLong() | 返回下一个伪随机数,它是从此随机数生成器的序列中取出的、均匀分布的 long 值。 |

| void setSeed(long seed) | 使用seed设置此随机数生成器的种子。 |

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/158832.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 代理模式的使用总结

    代理模式的使用总结目录一、代理模式二、静态代理(一)静态代理(二)静态代理简单实现三、动态代理(一)动态代理(二)动态代理简单实现四、动态代理原理分析五、InvocationHandler接口和Proxy类详解六、JDK动态代理和CGLIB动态代理代码示例比较与总结(一)定义创建用户管理接口(二)用户管理实现类,实现用户管理接口(被代理的实现类)(三)采用JDK代…

    2022年4月27日
    33
  • 此工作站和主域间的信任失败原因_电脑域改为工作组后无法登录

    此工作站和主域间的信任失败原因_电脑域改为工作组后无法登录Thedirectoryserverfailedtoautomaticallyupdateserviceaccount,dnsnameand/orportinformation.这个错误通常是由于访问的主机不能再确保可以和当前加入的活动目录域进行安全通信造成的。当前主机的私有安全凭据和域控制器中的值不匹配。当然简单的可以把安全凭据理解为密码,实际上你知道域环境通过非常严格Kerberos验证,因此实际是Kerberos的Keytable的加密存储在本地安全授权子系统中;

    2022年10月19日
    4
  • 挖矿病毒事件「建议收藏」

    挖矿病毒事件「建议收藏」昨天一台服务器发生挖矿病毒事件,现象是CPU干到100,内存剩余不多。废话不多说直接贴图,早上时间宝贵发现如上图一个诡异的IP直接使用lsof查找这个进程运行的文件在哪,给我拉出来打解决办法直接把进程kill掉,然后删除文件夹别忘记找安全部门扫描一下…

    2022年6月14日
    53
  • matlab做kmo检验的代码,急求 KMO测度和Bartlett 的球形度检验的计算原公式[通俗易懂]

    matlab做kmo检验的代码,急求 KMO测度和Bartlett 的球形度检验的计算原公式[通俗易懂]1、关于KMO公式,您从如下matlab源程序代码中不难得出,我已经用Excel就计算出来了,跟SPSS的计算结果完全一致。iX=inv(X);%X是原始数据的相关系数矩阵R,而inv表示求X的逆矩阵iXS2=diag(diag((iX.^-1)));%将iX的对角线的元素取倒数,其余元素都变为0,得到矩阵S2AIS=S2*iX*S2;%anti-image…

    2022年6月29日
    85
  • stimulsoft mysql_【Stimulsoft Reports Java教程】在运行时使用MySQL数据库创建报表

    stimulsoft mysql_【Stimulsoft Reports Java教程】在运行时使用MySQL数据库创建报表此示例项目显示如何使用MySQL字段创建新报表并提取MySQL数据库信息。首先,您需要创建一个新报表并添加MySqlDatabase。在StiMySqlDatabase类的构造函数中,您应该设置数据库名称,别名和连接字符串。publicstaticStiReportcreateReport()throwsClassNotFoundException,SQLException,StiE…

    2022年7月13日
    22
  • spring拦截器和过滤器有什么区别_拦截器和过滤器的区别面试

    spring拦截器和过滤器有什么区别_拦截器和过滤器的区别面试简介这几天在回顾Spring的AOP时,对过滤器,拦截器,AOP的关系有点好奇,故记录做以备份。在实现一些公共逻辑的时候,很多功能通过过滤器,拦截器,AOP都能实现,但是不同的方式有不同的效率。具体有什么区别,看下文描述。前后端交互基本逻辑过滤器过滤器拦截的是URLSpring中自定义过滤器(Filter)一般只有一个方法,返回值是void,当请求到达web容器时,会探测当…

    2022年8月23日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号