在C++当中如何在一定离散不连续数据当中产生随机
答案:3 悬赏:60 手机版
解决时间 2021-07-26 03:29
- 提问者网友:临风不自傲
- 2021-07-25 14:45
本人的意思是:比喻我要在2,45,56,4,67,88,100,245,567744这几个数据当中产生随机,要怎么实现,如果是那种在大量数据中随机然后比对这些数据是否相等而产生结果,那就不用了(那不知道何时才能随机到想要数据)。
最佳答案
- 五星知识达人网友:由着我着迷
- 2021-07-25 15:07
2,45,56,4,67,88,100,245,567744组成数组,设置初始大小为9,在0-8之间取随机,随机数作为下标从数组中取得需要的随机结果,并将结果与数组最后一个数据替换,数组大小减1。迭代下去即可。
如第一次,在0-8之间取到随机数1,则第二个数45与数组第九个数567744替换,返回结果为45,数组状况如下:2,567744,56,4,67,88,100,245,45数组大小为9-1 = 8;
第二次,在0-7之间取到随机数6,则第7个数100与当前数组第八个数245替换,返回结果为100,数组状况如下:2,567744,56,4,67,88,245 ,100,45数组大小为8-1 = 7;
...九次之后,随机结束。
如第一次,在0-8之间取到随机数1,则第二个数45与数组第九个数567744替换,返回结果为45,数组状况如下:2,567744,56,4,67,88,100,245,45数组大小为9-1 = 8;
第二次,在0-7之间取到随机数6,则第7个数100与当前数组第八个数245替换,返回结果为100,数组状况如下:2,567744,56,4,67,88,245 ,100,45数组大小为8-1 = 7;
...九次之后,随机结束。
全部回答
- 1楼网友:春色三分
- 2021-07-25 17:43
int x[9] = {2,45,56,4,67,88,100,245,567744};
srand(time(NULL));
int index = rand()%8;
return x[index];
大致就是这样了,不知道你是不是这个意思
- 2楼网友:像个废品
- 2021-07-25 16:46
如果说你选取的样本数是确定的,如你例子中的共有9个数据,你可以产生1~9范围内的随机整数,将它们作为下标选择这些数字,不知道我的表达是否清楚。当然为了区分某个数已经被选过,你可以将选过的数字统一置为0或者其他标记然后加以判断即可。或者可以采用vector,将选过的数字从其中删去,但同时随机的下标的范围也要进行修改。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯