int a[1000]; for(i=0; i<=999; ++i) a[i]=i; for(i=999; i>=1; --i) swap(a[i], a[rand()%i]); 上面这段代码只需要遍历一次就可以产生这1000个不重复的随机数,它是如何做到的呢?首先第二行按顺 序用0到99填满整个数组;第三行,是随机产生从0到m-2个数组下标,把这个下标的元素值跟m-1下标的元 素值交换,一直进行到下标为1的元素。因此它只需要遍历一次就能产生全部的随机数。 取前50个即可
点赞 5

相关推荐

安静的鲸鱼offer...:神仙级别hr,可遇不可求,甚至他可能也是突然有感而发。只能说遇上是件幸事。
秋招开始捡漏了吗
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务