荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: wayman (wayman), 信区: Program
标  题: Re: 求随机抽取的方法
发信站: 荔园晨风BBS站 (Thu Apr 26 22:41:28 2001), 转信

#include<iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>

void main()
{
        int a[]={1,2,4,5,345,12,432,34,546,3,342,123};
        int i,number,result,ran;
        float divide;
        srand( (unsigned)time( NULL ) );
        number=5;
        i=0;
        while(i<number)
        {
                //if (i==number) break;
                ran=rand();
                divide=ran/number;
                result=(ran/divide-number)*100;
                if (a[result]=='null') continue;
                if(result<=number && result>=0)
                {
                        cout<<a[result]<<endl;
                        a[result]='null';
                        i++;
                }
                else
                {
                        continue;
                }
        }
}

刚刚用c++编出来的,可以随机取出5个数组内的内容

【 在 wayman (wayman) 的大作中提到: 】
: 可以用一个数组先存放n个数,用一个while
: 随机产生m个数组的下标,每取一个数就将
: 该数组设成null。不过系while的最开始应该
: 用一条if来判断数组是否null。
: 没有上机试过,请指教
: 【 在 davi (必然可能) 的大作中提到: 】
: : 在n个数里面随机抽取m个数,m<n,要求m个
: : 数中不得有重复的,并且要求系统开销小。


--
        can't nobody take my pride!!!
                can't nobody hold me down!!!

※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.0.73]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店