社区
数据结构与算法
帖子详情
请问怎样处理,在1-1000之间产生100个随机数,让这些随机数不重复,怎么办。。
lz98630
2001-11-05 04:15:56
请问怎样处理,在1-1000之间产生100个随机数,让这些随机数不重复,怎么办。。
...全文
652
12
打赏
收藏
请问怎样处理,在1-1000之间产生100个随机数,让这些随机数不重复,怎么办。。
请问怎样处理,在1-1000之间产生100个随机数,让这些随机数不重复,怎么办。。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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()
产生
10个1-20
之间
的
随机数
要求
随机数
不能
重复
产生
10个1-20
之间
的
随机数
要求
随机数
不能
重复
A:案例演示 需求:编写一个程序,获取10个1至20的
随机数
,要求
随机数
不能
重复
。并把最终的
随机数
输出到控制台。 分析: 1.有Random类创建
随机数
对象 2.需要存储10个
随机数
,而且不能
重复
,所以我们用HashSet集合 3.如果HashSet的size是小于10就可以不断的存储,如果大于等于10就停止存储 4.通过Random类中的ne...
如何
产生
1-
100
之间
的
100
个不
重复
的
随机数
1:首先从原始数组中随机选择一个数字,然后将该数字从数组中剔除,再随记选,再剔除,
重复
99次,就解决了。 我们知道从数组中剔除一个元素的复杂度为O(N),那么随机选取n个数字,它的复杂度就是O(N2)了。 2:用hash作为中间过滤层,因为在数组中,我们采用
随机数
的话,也许
随机数
在多次随机中可能会有
重复
,所以需要用hash来判断一下, 如果在hash中
重复
,则继续
产生
随
如何生成
100
个,1-
100
不
重复
的
随机数
列表。
使用Python实现,获取
100
个不
重复
的,1-
100
的
随机数
列。 首先我们使用的是Python语言来实现得到
100
个1-
100
的随机不
重复
的整数,这个在一些公司的笔试题目当中出现过,也是一个考验基础代码能力的一个练习题,下面我们就用代码的实现这个需求。 实现思路 1.首先我们要引入Python自带的
随机数
的模块random,来实现获取
随机数
。 2.对获取到的
随机数
进行一个判断,
产生
的这个
随机数
是否与已有的
随机数
重复
,对不
重复
的
随机数
进行添加。 3.判断
随机数
的个数是否达到
100
个。 4.对以上的三步进行一
集合框架(
产生
10个1-20
之间
的
随机数
要求
随机数
不能
重复
)
//集合框架(
产生
10个1-20
之间
的
随机数
要求
随机数
不能
重复
) /*创建
随机数
* 用hashset存储 * 1-20
之间
的
随机数
要求
随机数
不能
重复
* 如果hashset的size小于10 就可以不断的存储,如果大于等于10就停止存储 * 通过random类中的nextint(n)方法来获取1到20
之间
的
随机数
存储到hashsat中
如何
产生
1-
100
之间
的
100
个不
重复
的
随机数
如何
产生
1-
100
之间
的
100
个不
重复
的
随机数
如果这是你是第一次看到这个题目,也许你的想法有很多。 1:首先从原始数组中随机选择一个数字,然后将该数字从数组中剔除,再随记选,再剔除,
重复
99次,就解决了。 我们知道从数组中剔除一个元素的复杂度为O(N),那么随机选取n个数字,它的复杂度就是O(N2)了。 2:用hash作为中间过滤层,因为在数组中,我们...
数据结构与算法
33,027
社区成员
35,335
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章