当前位置: 代码迷 >> C语言 >> 求助!如何使所取随机数互异
  详细解决方案

求助!如何使所取随机数互异

热度:392   发布时间:2008-06-19 14:48:21.0
求助!如何使所取随机数互异
想用随机函数取K个互不相等的整数放入数组t[K]中。程序片段如下:
    srand((unsigned)time( NULL ));
    for(i=0;i<K;i++)//随机取K个样本放入K类中
    {
        t[i]=rand()%N+1;
                   printf("%d",t[i]);
    
    }
打印结果有时候会有相同元素。如何改造才能使数组元素互异?
搜索更多相关的解决方案: NULL  整数  互异  随机数  

----------------解决方案--------------------------------------------------------
预初始化一个内容为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]
----------------解决方案--------------------------------------------------------
好办法。万分感激!
----------------解决方案--------------------------------------------------------
我还没懂
----------------解决方案--------------------------------------------------------
  相关解决方案