社区
iOS
帖子详情
随机抽取数组中N个不重复元素怎么写?求方法,思路
kinghome
2014-05-26 12:01:44
随机抽取数组中N个不重复元素怎么写?求方法,思路
...全文
945
5
打赏
收藏
随机抽取数组中N个不重复元素怎么写?求方法,思路
随机抽取数组中N个不重复元素怎么写?求方法,思路
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
李晓东1
2016-09-18
打赏
举报
回复
3楼的方法很好呀
ReyZhang
2014-05-28
打赏
举报
回复
思路: 1.根据数组的个数,来随机生成数组的下标索引,因为根据这个下标索引就可以得到数组中对应的元素。 2.如何存储元素,并保证不重复。这里可以使用NSMutableSet来存储已经获取的随机出来的值,NSMutableSet的作用就是能保证这里存储的值不会出现重复。 3.根据NSMutableSet中已经存储的个数作为while循环的条件,来循环生成随机数。退出循环的条件就是NSMutableSet中的数量已经超过你想要生成的数量。
佳丽恐龙
2014-05-27
打赏
举报
回复
//35选7(随机生成7个不相同的数字35之内)要求尽量提高效率 这个例子的思路楼主可以看看 #include <stdio.h> #include <time.h> #include <stdlib.h> #define TOTAL 35 #define CHOOSE 7 int main() { int arr[TOTAL] = {0,}; int choose[CHOOSE] = {0, }; int i = 0; int randid = 0; for (i=0;i<TOTAL;i++) { arr[i] = i+1; } srand(time(NULL)); for (i=0;i<CHOOSE;i++) { randid = rand()%(TOTAL-i); choose[i] = arr[randid]; arr[randid] = arr[TOTAL-i-1]; } for(i=0;i<CHOOSE;i++) { printf("%2dt", choose[i]); } return 0; }
无条件为你
2014-05-27
打赏
举报
回复
楼上的方法是最简便的。但楼主可能是想要一个算法和或解决问题的思路。 例如一个数组ABC里面有100个元素,那么你随机产生0到99之间的一个int,然后用ABC[i]来取出,当取出一个后,你就把取出来的从数组里移除,然后再产生0到98个int,再取出ABC[i],再移除,再生成0到97个int,这样就保证了随机取出,并不重复。 如果你的数组里面本身已有重复元素,则先过滤一下。比如创建另外一个数组,把原来的数组一个加进去,加的时候先判断是否已经存在。例如用containsObject方法可以判断。
qq2511296
2014-05-26
打赏
举报
回复
NSMutableSet
Javascript
随机
获取
数组中
不
重复
的n个
元素
本文介绍了三种从
数组中
随机
抽取
指定数量不
重复
元素
的算法实现。第一种为常见做法,通过删除已选
元素
避免
重复
。第二种采用源数组分段策略,左侧存放已选
随机
数,右侧保留待选
元素
,通过交换
元素
实现
随机
抽取
。第三种类似第二种,但使用更简洁的方式进行
元素
替换。
【实用算法】如何
随机
打乱一个数组?
这篇博客介绍了如何通过两种不同的算法实现对一个没有
重复
元素
的整数数组的均匀打乱。首先,讨论了暴力
求
解
方法
,即通过创建一个新的数组并逐个
随机
抽取
原数组的
元素
,虽然时间复杂度为O(n^2),但能保证结果的
随机
性。然后,提出了更优的洗牌算法,通过原地操作在O(n)的时间复杂度内完成数组打乱,空间复杂度仅为O(1)。这种洗牌算法基于Fisher-Yates shuffle,对于需要高效
随机
化数组的场景尤其适用。
从N个
元素
的集合中
随机
取m个
元素
的算法实现
本文介绍了一种从N个
元素
中
随机
抽取
m个不
重复
元素
的
方法
,并提供了Java实现代码。
常见面试算法题:一次
抽取
N个不
重复
的
元素
本文介绍了一种使用HashSet存储
随机
生成的数组下标,确保
元素
不
重复
的
方法
。通过循环生成
随机
数,直到达到所需数量,实现高效
随机
数组创建。
Java获取特定区间
随机
数及产生不
重复
随机
数
本文介绍了一种从指定
数组中
随机
抽取
n个不
重复
元素
的
方法
,提供了两种实现
思路
:一是生成不
重复
的
随机
索引;二是打乱数组顺序并取前n个
元素
。同时给出了具体的Java代码实现。
iOS
29,039
社区成员
12,459
社区内容
发帖
与我相关
我的任务
iOS
主要讨论与iOS相关的软件和技术
复制链接
扫一扫
分享
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章