核心代码
import java.util.Arrays;
/**
* 用Java产生100个1-150的数字
*/
public class RandomTest {
public static void main(String[] args) {
int[] resultArr = produceNum(1, 150, 100);
for (Integer num : resultArr) {
System.out.println(num);
}
System.out.println("+++++++++++++++++===================+++++++++++++");
// 对结果数组排序后再输出
Arrays.sort(resultArr);
for (Integer num : resultArr) {
System.out.println(num);
}
}
/**
* 产生随机数字
* @param minNum 最小数字
* @param maxNum 最大数字
* @param numCount 产生的数字个数
* @return 结果数组
*/
public static int[] produceNum(int minNum, int maxNum, int numCount) {
// 入参校验
// 如果随机数的个数大于产生随机数的范围;或最大数小于最小数
// 直接返回null,说明入参不符合要求
if (numCount > (maxNum - minNum + 1) || maxNum < minNum) {
return null;
}
// 存放结果的数组
int[] resultArr = new int[numCount];
// count 记录已产生的随机数的个数
int count = 0;
while(count < numCount) {
// 产生随机数
int num = (int) (Math.random() * (maxNum - minNum)) + minNum;
// flag 定义本次产生的随机数是否已在数组中
boolean flag = true;
// 遍历数组中已产生的随机数
for (int i=0; i<count; i++) {
// 同本次产生的随机数最比较
if (num == resultArr[i]) {
// 如果已存在相同的值,则跳出for循环,继续外层的while循环,产生下一个随机数
flag = false;
break;
}
}
// 如果本次产生的随机数在数组中不存在,则将该随机数存放在数组中
if (flag) {
resultArr[count] = num;
// 数组中已产生的随机数个数加1
count++;
}
}
return resultArr;
}
}
代码解读
1 int num = (int) (Math.random() * (maxNum - minNum)) + minNum;
Math.random() 产生的是0~1 之间的double类型的随机数
Math.random() * 10 便会得到 0 ~ 10 之间的随机数,转int后便是0 ~ 9;如果给 Math.random() * 10 + 1,便是1 ~ 11 之间的随机数,转int便是1 ~ 10。
这里的1 相当于程序中的最小值,11则为最大值。
这样便得到了产生随机数的 (int) (Math.random() * (maxNum - minNum)) + minNum
2 for (int i=0; i<count; i++) {
由于每次产生的num都是随机的,所以无法保证重复的问题,所以只有通过去同已经产生的存在数组中的数字去比较,相同,则重新产生,不同,则添加进数组。
# 不重复数字
# JAVA 16位ID生成工具类含16位不重复的随机数数字+大小写
# Java查找不重复无序数组中是否存在两个数字的和为某个值
# java随机抽取指定范围不重复的数字
# Java生成唯一ID的三种方法总结
# 随机数
# 组中
# 的是
# 都是
# 放在
# 已在
# 不符合
# 便会
# 则为
# 中不
# 则将
# 得到了
# 最小值
# void
# String
# main
# produceNum
# Integer
# num
# resultArr
相关文章:
湖北网站制作公司有哪些,湖北清能集团官网?
建站之星×万网:智能建站系统+自助建站平台一键生成
北京网站制作网页,网站升级改版需要多久?
想学网站制作怎么学,建立一个网站要花费多少?
如何在阿里云通过域名搭建网站?
如何快速搭建高效可靠的建站解决方案?
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
如何通过可视化优化提升建站效果?
如何基于云服务器快速搭建个人网站?
广德云建站网站建设方案与建站流程优化指南
如何获取PHP WAP自助建站系统源码?
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
已有域名和空间,如何快速搭建网站?
如何通过VPS建站实现广告与增值服务盈利?
如何在云服务器上快速搭建个人网站?
建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略
建站VPS能否同时实现高效与安全翻墙?
网站制作需要会哪些技术,建立一个网站要花费多少?
在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?
如何快速生成橙子建站落地页链接?
如何用好域名打造高点击率的自主建站?
建站主机无法访问?如何排查域名与服务器问题
如何选择网络建站服务器?高效建站必看指南
如何挑选优质建站一级代理提升网站排名?
c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】
制作表格网站有哪些,线上表格怎么弄?
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
深圳网站制作培训,深圳哪些招聘网站比较好?
高性价比服务器租赁——企业级配置与24小时运维服务
如何在宝塔面板中修改默认建站目录?
,网页ppt怎么弄成自己的ppt?
建站之星如何实现网站加密操作?
C#怎么创建控制台应用 C# Console App项目创建方法
重庆市网站制作公司,重庆招聘网站哪个好?
建站之星多图banner生成与模板自定义指南
h5在线制作网站电脑版下载,h5网页制作软件?
如何通过服务器快速搭建网站?完整步骤解析
如何快速辨别茅台真假?关键步骤解析
网站制作多少钱一个,建一个论坛网站大约需要多少钱?
公司网站制作费用多少,为公司建立一个网站需要哪些费用?
php条件判断怎么写_ifelse和switchcase的使用区别【对比】
建站DNS解析失败?如何正确配置域名服务器?
如何用PHP快速搭建CMS系统?
c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗
Python路径拼接规范_跨平台处理说明【指导】
武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?
Bpmn 2.0的XML文件怎么画流程图
如何通过老薛主机一键快速建站?
*请认真填写需求信息,我们会在24小时内与您取得联系。