核心代码
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
相关文章:
成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?
在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
青浦网站制作公司有哪些,苹果官网发货地是哪里?
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
如何用PHP快速搭建CMS系统?
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
如何快速查询网站的真实建站时间?
制作电商网页,电商供应链怎么做?
如何在云虚拟主机上快速搭建个人网站?
如何优化Golang Web性能_Golang HTTP服务器性能提升方法
盐城做公司网站,江苏电子版退休证办理流程?
建站org新手必看:2024最新搭建流程与模板选择技巧
如何在阿里云购买域名并搭建网站?
宝塔建站助手安装配置与建站模板使用全流程解析
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
网站制作软件有哪些,制图软件有哪些?
招贴海报怎么做,什么是海报招贴?
建站之星后台密码遗忘如何找回?
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
打鱼网站制作软件,波克捕鱼官方号怎么注册?
高性价比服务器租赁——企业级配置与24小时运维服务
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
教育培训网站制作流程,请问edu教育网站的域名怎么申请?
台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?
洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
香港服务器租用费用高吗?如何避免常见误区?
成都网站制作报价公司,成都工业用气开户费用?
南宁网站建设制作定制,南宁网站建设可以定制吗?
如何获取开源自助建站系统免费下载链接?
网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?
专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
公司网站设计制作厂家,怎么创建自己的一个网站?
头像制作网站在线制作软件,dw网页背景图像怎么设置?
如何在IIS中新建站点并解决端口绑定冲突?
孙琪峥织梦建站教程如何优化数据库安全?
广州顶尖建站服务:企业官网建设与SEO优化一体化方案
如何通过智能用户系统一键生成高效建站方案?
如何挑选高效建站主机与优质域名?
建站主机是什么?如何选择适合的建站主机?
如何通过二级域名建站提升品牌影响力?
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
建站之星如何修改网站生成路径?
建站之星IIS配置教程:代码生成技巧与站点搭建指南
整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?
如何通过VPS建站实现广告与增值服务盈利?
*请认真填写需求信息,我们会在24小时内与您取得联系。