本文实例总结了Java编程实现生成给定范围内不重复随机数的方法。分享给大家供大家参考,具体如下:

在Java中的Math类中存在一个random()方法,该方法默认生成0.0到1.0之间的double型随机数;经过稍微处理,就可以产生我们需要的随机数以及随机字符。
除了Math类中的random()方法之外,java.util.Random类也可以用来生成随机数;下面分别举例(用不同的方法生成双色球号码)说明:
1. Math.random()方法
生成随机数:
package test;
import java.util.SortedSet;
import java.util.TreeSet;
public class MathRandom {
static SortedSet set = new TreeSet();
public static int randomSet(double m, double n) {
int num = (int) m + (int) (Math.random() * (n - m));
return num;
}
public static void shuangSe(int num1, int num2) {
for (int i = 0; i < num1; i++) {
set.add(randomSet(1, 33));
}
if (set.size() < num2) {
shuangSe(num2 - set.size(), num2);
}
}
public static void main(String[] args) {
shuangSe(6, 6);
System.out.print(set);
System.out.println(" "+randomSet(1,16));
}
}
运行结果(随机):
[3, 13, 17, 21, 23, 25] 2
生成随机字符:
package test;
public class MathRandomChar {
public static char getRandomChar(char c1,char c2){
return (char)(c1+Math.random()*(c2-c1+1));
}
public static void main(String[] args) {
System.out.println("a-z之间的任意字符: "+getRandomChar('a','z'));
}
}
运行结果(随机):
a-z之间的任意字符: g
2. java.util.Random方法
方法一:for循环加递归:
package test;
import java.util.Random;
import java.util.SortedSet;
import java.util.TreeSet;
public class Test {
static Random ran = new Random();
static SortedSet set = new TreeSet();
public static void randomSet(int n, int m) {
for (int i = 0; i < n; i++) {
set.add(ran.nextInt(33) + 1);
}
if (set.size() < m) {
randomSet(m - set.size(), m);
}
}
public static void main(String[] args) {
randomSet(6, 6);
System.out.print(set);
System.out.println(" "+(ran.nextInt(16)+1));
}
}
运行结果(随机):
[1, 15, 18, 29, 30, 31] 13
方法二:while循环
package test;
import java.util.Random;
import java.util.Set;
import java.util.TreeSet;
public class ShuangSeQiu {
public static void main(String[] args) {
Random ran = new Random();
Set<Integer> set = new TreeSet<>();
while (true) {
int a = ran.nextInt(33) + 1;
set.add(a);
if (set.size() > 5) {
System.out.print(set);
break;
}
}
System.out.println(" "+(ran.nextInt(16)+1));
}
}
运行结果(随机):
[2, 11, 12, 16, 23, 26] 7
PS:这里再为大家提供两款功能类似的在线工具供大家参考:
在线随机数字/字符串生成工具:
http://tools./aideddesign/suijishu
在线随机字符/随机密码生成工具:
http://tools./aideddesign/rnd_password
高强度密码生成器:
http://tools./password/CreateStrongPassword
更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java字符与字符串操作技巧总结》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
# Java
# 生成
# 给定范围内
# 不重复
# 随机数
# 如何用java生成指定范围的随机数
# Java中生成随机数的实现方法总结
# Java生成随机数的2种示例方法代码
# 史上最全的java随机数生成算法分享
# java生成指定范围随机数的多种代码
# Java实现生成n个不重复的随机数
# Java编程中随机数的生成方式总结
# java生成随机数(字符串)示例分享
# Java中随机数生成常见的几种方式及适用场景
# 操作技巧
# 递归
# 类中
# 相关内容
# 感兴趣
# 数据结构
# 给大家
# 两款
# 更多关于
# 双色球
# 所述
# 程序设计
# 高强度
# 就可以
# 可以用来
# 再为
# 总结了
# static
# MathRandom
相关文章:
制作电商网页,电商供应链怎么做?
建站之星会员如何解锁更多建站功能?
如何在服务器上三步完成建站并提升流量?
如何在阿里云ECS服务器部署织梦CMS网站?
C++如何使用std::optional?(处理可选值)
网页设计网站制作软件,microsoft office哪个可以创建网页?
网站制作新手教程,新手建设一个网站需要注意些什么?
建站之星伪静态规则如何设置?
如何在万网自助建站中设置域名及备案?
建站ABC备案流程中有哪些关键注意事项?
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
如何在Windows虚拟主机上快速搭建网站?
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
怎么将XML数据可视化 D3.js加载XML
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
如何通过免费商城建站系统源码自定义网站主题与功能?
如何选择建站程序?包含哪些必备功能与类型?
网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?
如何挑选高效建站主机与优质域名?
建站主机是否等同于虚拟主机?
建站之星2.7模板:企业网站建设与h5定制设计专题
如何快速生成专业多端适配建站电话?
如何用搬瓦工VPS快速搭建个人网站?
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?
网站制作软件免费下载安装,有哪些免费下载的软件网站?
如何在橙子建站中快速调整背景颜色?
网站制作说明怎么写,简述网页设计的流程并说明原因?
沈阳制作网站公司排名,沈阳装饰协会官方网站?
西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?
网站好制作吗知乎,网站开发好学吗?有什么技巧?
建站之星微信建站一键生成小程序+多端营销系统
昆明网站制作哪家好,昆明公租房申请网上登录入口?
个人摄影网站制作流程,摄影爱好者都去什么网站?
,巨量百应是干嘛的?
婚礼视频制作网站,学习*后期制作的网站有哪些?
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
学校为何禁止电信移动建设网站?
建站之星如何开启自定义404页面避免用户流失?
广州网站建站公司选择指南:建站流程与SEO优化关键词解析
香港网站服务器数量如何影响SEO优化效果?
如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本
如何在云主机快速搭建网站站点?
如何高效完成自助建站业务培训?
如何登录建站主机?访问步骤全解析
如何高效搭建专业期货交易平台网站?
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
营销式网站制作方案,销售哪个网站招聘效果最好?
*请认真填写需求信息,我们会在24小时内与您取得联系。