Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

½Ð°Ý¦p¦ó±q52±i¼³§JµP¤¤ÀH¾÷©â5±i¥X¨Ó¡H

0 views
Skip to first unread message

°¨§JªM

unread,
Mar 18, 1999, 3:00:00 AM3/18/99
to
> 一般而言,是
> #include <stdlib.h>
> // char s[]={0,1,...,51};
> // char t[5];
> bool flag;
> for(long i=0;i<5;i++){
> flag=false;
> while(!flag){
> t[i]=s[rand()%52];
> flag=true;
> for(long j=0;j<i;j++)
> if(t[j]==t[i]){
> flag=false;
> break;
> }
> }
> }
>

這解法不是很好,用了三層的迴圈!
其實用一層的迴圈就可以解了!

char s[]={0,1,...,51};
int i,n,t;

for (i=0;i<5;i++) {
n = (rand()%(52-i))+i;
t = s[n]; //
s[n] = s[i]; // swap s[i],s[n]
s[i] = t; //
}

// s[0]..s[4] is result

0 new messages