社区
iOS
帖子详情
随机抽取数组中N个不重复元素怎么写?求方法,思路
kinghome
2014-05-26 12:01:44
随机抽取数组中N个不重复元素怎么写?求方法,思路
...全文
854
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个
元素
前言: 最近有一个需
求
,从一组试题中
随机
获取5道题用于用户复习,获取到的5道试题应该每次是
随机
的而且不
重复
的。 代码实现: 实现方式1 大多数人的
写
法,从
数组中
取数据,放入新的数组,取完一个数据从原始
数组中
删除数据,在放入新数组的时候判断是否已出现过。 function getTenNum(n) { var reslut = []; var testArray = [1,2,3,4...
生产N个不
重复
的
随机
数(从一个
数组中
随机
取N个
元素
)
有个需
求
,想要从一个长度为M的
数组中
随机
的取其中的N个
元素
。 有两个
思路
: ①生成N个不
重复
的
随机
数(0到M-1之间)然后取以这N个数为下标的单元; ②将这个数组所有单元打乱,取前N个值。 第一种 这有个还不错的
方法
:http://blog.csdn.net/devfun/article/details/6534476 int startArray[] = {0,1,2,3,4,
从
数组中
随机
取若干个不
重复
的数
要
求
:从 0 ~ 100 中
随机
取出十个不
重复
的 数
思路
: 1: 利用数组,通过Math.random()*(arr.length -1) 然后将取到的数跟数组最后一个
元素
交换,将数组长度减一 下面代码中设计到 判断
数组中
是不是有
重复
元素
我的想法如下,如有错误还望大佬指正 1:如果数据量不大利用 HashSet的去重效果,将
数组中
的
元素
循环放入 Set之后判断set.size 和 ...
高效地
随机
选取
数组中
的
元素
有前端题目大概是这样的:考虑到性能问题,如何快速从一个巨大的
数组中
随机
获取部分
元素
。 比如有个数组有100K个
元素
,从中不
重复
随机
选取10K个
元素
。 为了演示方便我们将数据简化,先给出方案最后再用大点的数据来测试性能的对比。 常规解法 常规做法倒也不难,生成一个0到数组长度减1的
随机
数,这个数也就是被选中
元素
在原
数组中
的下标,获得该
元素
后将值保存到另一个数组同时通过数组的splice
方法
将
从
数组中
随机
取出指定个数的
元素
且不能取出
重复
的
元素
。
思路
1:利用List来把数组保存起来,在每取出一个
元素
后就删除这个
元素
。 /** * 使用一个List来保存数组,每次
随机
取出一个移除一个。 */ public String[] getRandomArray(int n, String[] strArray){ List<String> list = new ArrayList<...
iOS
29,027
社区成员
12,466
社区内容
发帖
与我相关
我的任务
iOS
主要讨论与iOS相关的软件和技术
复制链接
扫一扫
分享
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章