求助!如何使所取随机数互异
想用随机函数取K个互不相等的整数放入数组t[K]中。程序片段如下:srand((unsigned)time( NULL ));
for(i=0;i<K;i++)//随机取K个样本放入K类中
{
t[i]=rand()%N+1;
printf("%d",t[i]);
}
打印结果有时候会有相同元素。如何改造才能使数组元素互异?
----------------解决方案--------------------------------------------------------
预初始化一个内容为1-n的数组,然后随机打乱,再取前k个
[color=white]
----------------解决方案--------------------------------------------------------
不好意思,我想再请教一下怎么打乱呢?
----------------解决方案--------------------------------------------------------
for(i=0;i<K;i++)//随机取K个样本放入K类中
{
srand((unsigned)time( NULL ));
t[i]=rand()%N+1;
printf("%d",t[i]);
}
这样呢
----------------解决方案--------------------------------------------------------
要是K 比较大 好象效率超低也 这样做
----------------解决方案--------------------------------------------------------
我试过了,这样做取的数都是一样的
----------------解决方案--------------------------------------------------------
任意交换两个,交换足够多不就是打乱的一种吗
[color=white]
----------------解决方案--------------------------------------------------------
好办法。万分感激!
----------------解决方案--------------------------------------------------------
我还没懂
----------------解决方案--------------------------------------------------------