• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >编程问答 > 生成不超过某个数的,不重复的10个随机数

生成不超过某个数的,不重复的10个随机数

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-07

佚名通过本文主要向大家介绍了随机生成不重复的数字,生成不重复的随机数,不重复随机数生成器,java生成随机数不重复,c#生成不重复的随机数等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:生成不超过某个数的,不重复的10个随机数
描述:

这个所谓的某个数是必定大于10的x
也就是生成10个在区间[0, x)内的随机整数
而且这10个随机数不重复

虽然有想到个笨拙的方法
就是每次生成随机数都放到数组中
然后下次生成就取数组中对比,没有则放入,有则重新生成
如此反复
但是这感觉不是一个好实现啊

求指教
最好来个objective-c的实现
思路也可以


解决方案1:

编程珠玑中有一段 等概率从n个数选取不重复的m个数,一次成型,解法忘了,可以上网上搜索下,非常巧妙。

解决方案2:

先生成10个数放到数组中,然后去重,然后缺几个就再生成几个,然后去重,递归进行,应该比每次生成1个对比一次效率高一些。我再看看。
下面这个解法还是不错的 :
依次考虑整数 0,1,2,……,n-1,按序访问整数
设m=2, n=5,那么选择第一个整数0的概率就是2/5,这种确定概率,通过 if (rand()%5) < 2 来判断是否选取该数字,然后判断是否选择整数1,若0被选中,以 1/4 的概率选择1, 若0未被选中,以 2/4 的概率选择1,…… ,总之,对于从r个剩余整数中选s个,以 s/r 来选择下一个数。

解决方案3:

第一反应是类似洗牌算法,只不过不把整副牌洗掉,而是洗到第10张就停止

解决方案4:

创建一个set集合

set[] = rand(0,x)
while(set.length < 10)
    set[] = rand(0,x)
end

就是这样.


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 生成不超过某个数的,不重复的10个随机数

相关文章

  • 2017-06-07 python360乱码
  • 2017-06-07 (python)SublimeCodeIntel取消输入:和;后的提示
  • 2017-06-07 (python)关于ACK标志位的TCP端口扫描的疑惑?
  • 2017-06-07 关于JBOOS连接TCP/IP的问题
  • 2017-06-07 七牛的镜像回源功能抓取源站内容时有特定UserAgent么?
  • 2017-06-07 类似QQ,迅雷的界面都是用什么库做出来的?
  • 2017-06-07 怎样降低代码的复杂度?
  • 2017-06-07 如何用python的svn模块写一个下载svn文件到本地的小脚本
  • 2017-06-07 使用celery和redis遇到问题
  • 2017-06-07 在开发的过程中,如何最快的学好英文读更多的国外文档。看四级六级还是什么词汇还是自己边看边收集?

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • ruby/grape问题
    • 为什么多数网站API支持返回json格式,但却不支持jsonp形式?
    • 请问,将网站添加到桌面快捷方式python怎么实现?
    • 请问在反射型xss中,页面参数有问题,怎么构造链接啊?
    • python安装numpy和gensim的库之后,import不成功
    • 七牛SDK上传图片,然后加载出现少了一部分图片,这个会不会是SDK对图片编码的时候出了问题
    • pyspider的projectscript被截断怎么办
    • redis存储用户评论
    • 哈哈,沙发!
    • python爬虫Python匹配并删除redis的key

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有