在《Core JAVA》中有个随机生成六位不重复数值的算法,大二用过一次,今天在写《Algorithms》的练习题遇到类似的问题,特贴出!

 1 // 随机生成六位不重复的数字
 2 private static int generate6BitInt() {
 3     int[] arr = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
 4     // 将数组随机打乱,据算法原理可知:
 5     // 重复概率 = 1/10 * 1/9 * 1/8 * 1/7 * 1/6 * 1/5 * 1/4 * 1/3 * 1/2 * 1/1 = 1/3628800,
 6     // 即重复概率为三百多万分之一,满足要求。
 7     for(int num = 10; num > 1; --num) {
 8         int idx = StdRandom.uniform(num);
 9         int temp = arr[idx];
10         arr[idx] = arr[num - 1];
11         arr[num - 1] = temp;
12     }
13     // 第一个元素不能为0,否则位数不够
14     if(0 == arr[0]) {
15         int ndx = StdRandom.uniform(10);
16         arr[0] = arr[ndx];
17         arr[ndx] = 0;
18     }
19     // 将数组前六位转化为整数
20     int rs = 0;
21     for(int idx = 0; idx < 6; ++idx) {
22         rs = rs * 10 + arr[idx];
23     }
24     return rs;
25 }

或者   Math.random()  *  9 + 1) * 100000,注意:Math.random()生成的随机数范围是[0.0,1.0),如0.999999

转载于:https://www.cnblogs.com/gotodsp/p/4312973.html

随机生成六位不重复数值相关推荐

  1. 随机生成一组不重复的随机数组

    public string RadomNumArray(){Random r = new Random();int a = 0;int[] num = new int[6];string text = ...

  2. php批量随机生成数字不重复,php批量随机生成数字不重复

    PHP随机数批量生成: 在PHP中使用rand()函数生成随机数,然后判断此随机数是否已存在,若不存在就将此随机数存入数组,多次重复此方法即可批量生成随机数不重复./** * 随机多个数字,可设定是否 ...

  3. Python之字典巩固练习(随机生成银行卡号、重复数字统计、模拟轮盘抽奖游戏等)

    一.检测并输出重复单词 需求: 重复的单词: 此处认为单词之间以空格为分隔符, 并且不包含,和.>:1. 用户输入一句英文句子:2. 打印出每个单词及其重复的次数;输入:"hello ...

  4. PHP随机生成中文名+手机号

    //获取姓氏 public function getXingList(){$arrXing=array('赵','钱','孙','李','周','吴','郑','王','冯','陈','褚','卫', ...

  5. 随机生成6位数、随机生成不重复的6位数

    随机生成一个几位数,这种比较常见的操作今天我们来看一下,例如随机生成6位数,直接来简单明了的吧: int num = (int) ((Math.random() * 9 + 1) * 100000); ...

  6. 生成六位随机数字、随机字符串

    生成随机数字与字符串 目录 验证码:生成六位随机数 生成uuid RandomString生成随机字符串 RandomStringUtils生成随机数字.字符串 验证码:生成六位随机数 使用org.a ...

  7. java随机生成10个不重复的数字,随机生成10个不重复的0-100的数字(实例讲解)

    在面试时,面试官问了我一道js题:随机生成一个含有10个元素的数组,且元素为0-100的不重复的整数.当时的第一反应是for循环生成10个数字,但是可能会有重复的情况:进一步思考,需要对生成的数字进行 ...

  8. mysql 随机取不重复数据_随机生成不重复数字,想做Excel抽奖器你必须掌握!

    年会期间,大家最期待的便是抽奖环节了,只是有人欢喜有人忧,有的人连续几年每次都能抽中,有的人就像我一样,年年不中.... 人人概率相等,我觉得是不存在的 那如何用Excel做一个简易抽奖器呢?这个你必 ...

  9. java实现随机生成五位 或 六位/新能源车牌号

    需求说明:利用java随机生成五位或六位车牌号,当车牌只有五位,在最后一位补 * 格式  →  eg:五位车牌:  川A · [ A,3,D,5,F] * 六位车牌: 川A · [ A,3,D,5,F ...

最新文章

  1. hive mysql 远程_ubuntu中为hive配置远程MYSQL database
  2. java 搜索业务怎么写_Java项目实战第11天:搜索功能的实现
  3. 2018 计蒜之道 初赛 第四场
  4. Tengine+LUA+Nginx-GridFS+jemalloc编译安装
  5. envoy实现_如何利用 Envoy 的 Postgres 过滤器实现网络可观察性
  6. cython python3_30倍!使用Cython加速Python代码
  7. linux-查看文件相关命令-cat-more-less-head-tail
  8. 【JavaScript】详解JSON
  9. 为你收罗100个学英语的网站!!!
  10. CAD插件学习系列教程(五) 小菜选择易
  11. 中国省市区地址三级联动jQuery插件 - distpicker
  12. noob_CSS:从Noob到Ninja
  13. Salesforce中国区或将解散!一代CRM巨头退出中国市场?
  14. holder 插件Android,Android神器级插件
  15. 微信小程序订阅消息报错,by user TAP gesture (适用于tabBar页面)
  16. 句法引导的机器阅读理解
  17. ONLYOFFICE支持wps格式文件(wps,et,dps)的协作
  18. 思维方式-《六顶思考帽》书中的精髓:通过在同一时间只使用一顶思考帽的方法,可以解决思维混乱等问题,从而提升思考效率。
  19. 用模拟器初识DELL Network
  20. css 不显示visi,VisionPro显示隐藏搜索区域

热门文章

  1. 配置mysql使其允许外部ip进行登录
  2. TFS2010配置SQLServer2008R2 tf255049错误
  3. 8k分辨率需要多大带宽_又一支持8K分辨率的接口标准发布
  4. 怎么把python解释器配置在pycharm中_在PyCharm中配置项目(三):配置Python解释器...
  5. Python 项目打包成可执行程序命令
  6. 浅析MATLAB中的内联函数、匿名函数和函数函数
  7. java并发问题_并发理论基础:并发问题产生的三大根源
  8. php mysql 取最小值_php – 根据另一个值更新最小值 – MySql
  9. easymock 图片_数据模拟神器 easy-mock 正式开源
  10. 友盟U-share sdk 分享的接入(支持Android及IOS)