|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 如何随机产生不重复的数
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
14935
人关注过本帖,
2
人收藏
标题:
如何随机产生不重复的数
取消只看楼主
加入收藏
lrongh
等 级:
论坛游民
帖 子:39
专家分:24
注 册:2009-10-6
结帖率:
100%
楼主
收藏
(2)
已结贴
√
问题点数:10 回复次数:7
如何随机产生不重复的数
比如说:我要产生
20
个
100
以内的随机数且互不重复,怎么实现?百度了一下,没找到什么好的方法,不知坛子里的高人有什么妙招?要求:1:数字不能重复;2:不要使用比较;3:辅助空间尽可能地小------不用当然更好了.
搜索更多相关主题的帖子:
随机
2009-10-13 09:24
举报帖子
使用道具
赠送鲜花
lrongh
等 级:
论坛游民
帖 子:39
专家分:24
注 册:2009-10-6
第
2
楼
收藏
得分:0
楼上几位都没理解我的意思,我说的是产生的随机数序列里不能有相同的数!
2009-10-13 14:42
举报帖子
使用道具
赠送鲜花
lrongh
等 级:
论坛游民
帖 子:39
专家分:24
注 册:2009-10-6
第
3
楼
收藏
得分:0
目前我能搜到的网上最好的办法是:先产生一个有序序列A[m],这个序列中的每一个数值都等于它的数组下标,然后设置一个循环for(i=0;i<m;i++),在这个循环体内产生一个不大于m的随机数n,将A[i]与A[n]交换...,这种方法不需要进行比较,也不需要额外的辅助空间,可惜它也有一个缺点:即数组的取值范围就是其下标的取值范围,如产生100个数都在100以内,产生20个数则都在20以内,不能做到产生20个100以内的(不重复)数.静候大虾出手......
2009-10-13 15:02
举报帖子
使用道具
赠送鲜花
lrongh
等 级:
论坛游民
帖 子:39
专家分:24
注 册:2009-10-6
第
4
楼
收藏
得分:0
谢谢各位不吝指教!UserYuH的算法简单明了,很容易让人接受,不足之处是使用的辅助空间较大,也许我只需要10或20个数,程序却非得另开一个100个元素的数组,有点太浪费了,另外,如果我需要的是20个任意大小但互不雷同的数怎么办? 广陵绝唱的代码没看太懂(不好意思,我太菜了),num数组中的所有元素应该都等于200吧?if(num[n]==200)这条判断语句岂不是永恒成立?它到底起什么作用?还有,能麻烦你解释一下printf("%2d%c",num[n]=n,++i%5?' ':'\n');这条语句吗?再次感谢两位!
[
本帖最后由 lrongh 于 2009-10-13 22:39 编辑
]
2009-10-13 22:35
举报帖子
使用道具
赠送鲜花
lrongh
等 级:
论坛游民
帖 子:39
专家分:24
注 册:2009-10-6
第
5
楼
收藏
得分:0
哦,明白了,原理一样,都是在已知数组中做个标记,以防重复。printf里面还能写语句,又学了一招。
2009-10-13 22:53
举报帖子
使用道具
赠送鲜花
lrongh
等 级:
论坛游民
帖 子:39
专家分:24
注 册:2009-10-6
第
6
楼
收藏
得分:0
不知还有没有更好的办法能同时满足我提的三个要求?
2009-10-13 22:55
举报帖子
使用道具
赠送鲜花
lrongh
等 级:
论坛游民
帖 子:39
专家分:24
注 册:2009-10-6
第
7
楼
收藏
得分:0
明白了,非常感谢!真是个热心的人!
2009-10-14 10:15
举报帖子
使用道具
赠送鲜花
lrongh
等 级:
论坛游民
帖 子:39
专家分:24
注 册:2009-10-6
第
8
楼
收藏
得分:0
哪位兄弟能给个基数排序的C源码吗?内部排序就差它了。。。
2009-10-14 12:20
举报帖子
使用道具
赠送鲜花
8
1/1页
1
快速回复:
如何随机产生不重复的数
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.039992 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved