随机生成六位不重复数值
在《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
随机生成六位不重复数值相关推荐
- 随机生成一组不重复的随机数组
public string RadomNumArray(){Random r = new Random();int a = 0;int[] num = new int[6];string text = ...
- php批量随机生成数字不重复,php批量随机生成数字不重复
PHP随机数批量生成: 在PHP中使用rand()函数生成随机数,然后判断此随机数是否已存在,若不存在就将此随机数存入数组,多次重复此方法即可批量生成随机数不重复./** * 随机多个数字,可设定是否 ...
- Python之字典巩固练习(随机生成银行卡号、重复数字统计、模拟轮盘抽奖游戏等)
一.检测并输出重复单词 需求: 重复的单词: 此处认为单词之间以空格为分隔符, 并且不包含,和.>:1. 用户输入一句英文句子:2. 打印出每个单词及其重复的次数;输入:"hello ...
- PHP随机生成中文名+手机号
//获取姓氏 public function getXingList(){$arrXing=array('赵','钱','孙','李','周','吴','郑','王','冯','陈','褚','卫', ...
- 随机生成6位数、随机生成不重复的6位数
随机生成一个几位数,这种比较常见的操作今天我们来看一下,例如随机生成6位数,直接来简单明了的吧: int num = (int) ((Math.random() * 9 + 1) * 100000); ...
- 生成六位随机数字、随机字符串
生成随机数字与字符串 目录 验证码:生成六位随机数 生成uuid RandomString生成随机字符串 RandomStringUtils生成随机数字.字符串 验证码:生成六位随机数 使用org.a ...
- java随机生成10个不重复的数字,随机生成10个不重复的0-100的数字(实例讲解)
在面试时,面试官问了我一道js题:随机生成一个含有10个元素的数组,且元素为0-100的不重复的整数.当时的第一反应是for循环生成10个数字,但是可能会有重复的情况:进一步思考,需要对生成的数字进行 ...
- mysql 随机取不重复数据_随机生成不重复数字,想做Excel抽奖器你必须掌握!
年会期间,大家最期待的便是抽奖环节了,只是有人欢喜有人忧,有的人连续几年每次都能抽中,有的人就像我一样,年年不中.... 人人概率相等,我觉得是不存在的 那如何用Excel做一个简易抽奖器呢?这个你必 ...
- java实现随机生成五位 或 六位/新能源车牌号
需求说明:利用java随机生成五位或六位车牌号,当车牌只有五位,在最后一位补 * 格式 → eg:五位车牌: 川A · [ A,3,D,5,F] * 六位车牌: 川A · [ A,3,D,5,F ...
最新文章
- hive mysql 远程_ubuntu中为hive配置远程MYSQL database
- java 搜索业务怎么写_Java项目实战第11天:搜索功能的实现
- 2018 计蒜之道 初赛 第四场
- Tengine+LUA+Nginx-GridFS+jemalloc编译安装
- envoy实现_如何利用 Envoy 的 Postgres 过滤器实现网络可观察性
- cython python3_30倍!使用Cython加速Python代码
- linux-查看文件相关命令-cat-more-less-head-tail
- 【JavaScript】详解JSON
- 为你收罗100个学英语的网站!!!
- CAD插件学习系列教程(五) 小菜选择易
- 中国省市区地址三级联动jQuery插件 - distpicker
- noob_CSS:从Noob到Ninja
- Salesforce中国区或将解散!一代CRM巨头退出中国市场?
- holder 插件Android,Android神器级插件
- 微信小程序订阅消息报错,by user TAP gesture (适用于tabBar页面)
- 句法引导的机器阅读理解
- ONLYOFFICE支持wps格式文件(wps,et,dps)的协作
- 思维方式-《六顶思考帽》书中的精髓:通过在同一时间只使用一顶思考帽的方法,可以解决思维混乱等问题,从而提升思考效率。
- 用模拟器初识DELL Network
- css 不显示visi,VisionPro显示隐藏搜索区域
热门文章
- 配置mysql使其允许外部ip进行登录
- TFS2010配置SQLServer2008R2 tf255049错误
- 8k分辨率需要多大带宽_又一支持8K分辨率的接口标准发布
- 怎么把python解释器配置在pycharm中_在PyCharm中配置项目(三):配置Python解释器...
- Python 项目打包成可执行程序命令
- 浅析MATLAB中的内联函数、匿名函数和函数函数
- java并发问题_并发理论基础:并发问题产生的三大根源
- php mysql 取最小值_php – 根据另一个值更新最小值 – MySql
- easymock 图片_数据模拟神器 easy-mock 正式开源
- 友盟U-share sdk 分享的接入(支持Android及IOS)