c语言怎么实现从一个数组中随机抽取一个元素?

如题所述

第1个回答  2018-04-10

随机产生一个数,然后每次将数组元素的最后一个数与这个数交换,并且数组的长度减1。

int [] b = new int[100];

int t = 0, idx = 0, len = a.length;

for(int i=0;i<len;i++)

{

idx = [rand()*(len-i)];

b[i] = a[idx];

t = a[idx];

a[idx] = a[len - 1];

a[len - 1] = t;

}

return b;

int [] b = new int[100];

int t = 0, idx = 0, len = a.length;

for(int i=0;i<len;i++)

{

idx = [rand()*(len-i)];

b[i] = a[idx];

t = a[idx];

a[idx] = a[len - 1];

a[len - 1] = t;

}

return b;

本回答被网友采纳
相似回答