社区
数据结构与算法
帖子详情
请问怎样处理,在1-1000之间产生100个随机数,让这些随机数不重复,怎么办。。
lz98630
2001-11-05 04:15:56
请问怎样处理,在1-1000之间产生100个随机数,让这些随机数不重复,怎么办。。
...全文
708
12
打赏
收藏
请问怎样处理,在1-1000之间产生100个随机数,让这些随机数不重复,怎么办。。
请问怎样处理,在1-1000之间产生100个随机数,让这些随机数不重复,怎么办。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
leojay
2001-11-07
打赏
举报
回复
我的方法,
a[0]=rand()*10+1;
for(int i=1; i<100;i++)
a[i]=a[i-1]+rand()*10+1;
简单,一定不会重复。
孩皮妞野
2001-11-07
打赏
举报
回复
#include <algorithm>
#include <iostream>
using namespace std;
int buff[1000];
for(int i=0;i<1000;i++)
buff[i]=i;
//楼上说的交换算法已经在stl的random_shuffle中实现了
//如果你有幸使用的是C++,就不用费劲自己写代码了
random_shuffle(buff,buff+1000);
//now the first 100 elements meet your requirement
for(int i=0; i<100;i++)
cout<<buff[i]<<" ";
franking
2001-11-06
打赏
举报
回复
msdn
lazecat
2001-11-06
打赏
举报
回复
先定义一个含有一千个元素的数组A[999],让A[0]=0,A[1]=1,A[2]=2 …… A[999]=[999]。
然后从0到999取一个随机数N,然后和第 999-N 的元素交换数据。如果要取100个数据,就做100次循环,取前A[0]到A[99],就是你要的数据。
最坏的结果就是每次都取1,都和第998个元素交换数据,经过100次循环后,你得到的结果就应该是0,1,2,3,4,5,…… ,99。如果在从0到999取随机数时取出了0,1,2,3, …… ,99,经过100次运算后,数组就变成999,998,997,996, …… 3,2,1,0。这样,取出的数据就是:999,998,997,996, ……
明白了?
hotyei
2001-11-06
打赏
举报
回复
看到了吗?已经取得的值就和数组的最后一个数替换。而循环的第一句就是如果取1000-i数组之间的值,也就是说,当取了第一个值时,第二个值就只能取前999个值了,而第1000个值就是已经取过的了。
frman
2001-11-06
打赏
举报
回复
俺还是觉得Arter的办法好:)
lz98630
2001-11-06
打赏
举报
回复
to hotyei(花心萝卜)
由于我是一个初学者,最后一句(Array[R]=Array[1000-i]; //程序关键)没有理解。可以说简单点不。
Arter
2001-11-06
打赏
举报
回复
设范围: a[0]..a[M-1](M>=N)
将这M个数进行任意次的两两交换,由随机数产生下标.
然后,M个数的前N个数即是.
hotyei
2001-11-06
打赏
举报
回复
定义一个数组int Arrary[1000];
int Store[100];//这个数组用来装随机数的
for (int i=1;i<=1000;i++
Array[i]=i;
//产生100个随机数
for (int i=0;i<100;i++)
{
int R=rand()%(1000-i);
Store[i]=Array[R]; //保存随机数
Array[R]=Array[1000-i]; //程序关键
}
flagfly
2001-11-06
打赏
举报
回复
没办法不重复,只能重复后抛弃再选取。
liuer
2001-11-05
打赏
举报
回复
一本参考书上的例子:
INT(RAN *10)
RANDMIZE
上面这个单词也许写错了,但反正有这样一个VB语句吧,这样就绝不会有重复的随机数了
KingOf007
2001-11-05
打赏
举报
回复
rand()看看有没有重复。如果有就再rand()
C++
随机数
生成
本文详细介绍了C++中
随机数
生成的多种方法,包括rand()函数的基本使用、srand()函数的初始化过程,以及如何利用当前时钟作为
随机数
种子。此外,还提供了生成一定范围内的
随机数
和不
重复
随机数
的实用代码示例。
Java生成不
重复
随机数
本文探讨了不
重复
随机数
算法在多个领域的应用场景,包括考试系统、音乐播放、工作人员分配等,并通过车牌摇号器的代码示例,详细解析了算法的实现原理。
php怎么不
重复
随机数
,php怎么生成不
重复
随机数
本文介绍了PHP如何生成不
重复
的
随机数
,包括使用`range`、`shuffle`和`array_slice`组合方法,以及通过`mt_rand`和`array_unique`结合的方式。此外,还提供了在1-20范围内生成5个不
重复
随机数
的示例代码,帮助开发者更好地理解和应用PHP的
随机数
生成技巧。
输出数组中不
重复
,或者输出特定次数的数组
这段代码演示了如何生成
100
0个1~
100
内的整数,并统计不
重复
数值及其出现次数,同时展示了如何生成
100
个1~50的整数,确保每个数
重复
不超过两次并输出结果。
Java使用TreeSet类打印出生成的不
重复
的
随机数
编写一个程序,随机生成80个1~
100
之间
的随机整数,然后打印共生成了多少个不同的数,并将这些数逐一打印出来,相同的数只打印一次。提示:编程时可使
本文介绍了一个Java程序,该程序生成80个1至
100
之间
的随机整数,利用TreeSet类去除
重复
,打印所有不同数值及其数量。演示了如何使用集合类进行数据
处理
。
数据结构与算法
33,026
社区成员
35,336
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章