社区
iOS
帖子详情
随机抽取数组中N个不重复元素怎么写?求方法,思路
kinghome
2014-05-26 12:01:44
随机抽取数组中N个不重复元素怎么写?求方法,思路
...全文
876
5
打赏
收藏
随机抽取数组中N个不重复元素怎么写?求方法,思路
随机抽取数组中N个不重复元素怎么写?求方法,思路
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
随机
抽取
0-100之间不
重复
的10个数
主要为大家详细介绍了javascript
随机
抽取
0-100之间不
重复
的10个数,分享了两种简单办法,感兴趣的小伙伴们可以参考一下
洗牌算法
思路
讲解(程序员面试题)
洗牌算法是我在面试过程中遇到的一个问题,我事后做了整理,与大家分享下
思路
,这个文档是我自己
写
的,如要转载,请注明出处。联系方式在文档里有说明。有什么想法或
思路
希望与我一起交流。
本Demo将演示一段
随机
挑选函数代码的性能升级之旅
本Demo将演示一段
随机
挑选函数代码的性能升级之旅。 代码使用c#
写
的,但
思路
是跨语言的。 需
求
: 从[0,x)的数字集合Set1中
随机
挑选出y(y<=x)个不
重复
的数字集合Set2。
随机
生成牌和洗牌问题
对于编
写
牌类游戏时用到的洗牌问题和
随机
生成相应牌的
方法
。
微软历年来面试题的全集
历年来微软的面试题 很有帮助的 相信你会喜欢
iOS
29,049
社区成员
12,464
社区内容
发帖
与我相关
我的任务
iOS
主要讨论与iOS相关的软件和技术
复制链接
扫一扫
分享
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章