全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Java编程实现生成给定范围内不重复随机数的方法小结

本文实例总结了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小时内与您取得联系。