|
|
发表于 2005-7-22 12:11:00
|
显示全部楼层
Re:关于数据结构的组织的问题,望高手不吝赐教
这个方法有一个问题,就是在随机过程中可能会出现老是与前面答案冲突陷入长时间循环的问题,我建议先列出所有的排列组合,然后用再用随机数取出,
code below:
//4个答案组合算法
struct ACombination//一次排列组合的数据
{
char a[4];
}
std::deque<ACombiation> oCombinations;
//里面最后会有24个元素,因为4的排列组合是4!=24,随机时用oCombinations[rand()%24]即可
int ii=0,jj=0,kk=0,ll=0;
for(int i=0;i<4;i++)
{
for(int j=0;j<4;j++)
{
if(j==i)
{
continue;
}
for(int k=0;k<4;k++)
{
if(k==j||k==i)
{
continue;
}
for(int l=0;l<4;l++)
{
if(l==k||l==j||l==i)
{
continue;
}
ACombination a;
a.a[0]=i;
a.a[1]=j;
a.a[2]=k;
a.a[3]=l;
oCombinations[3].push_back(a);
ll++;
}
kk++;
}
jj++;
}
ii++;
jj=0;
kk=0;
ll=0;
}
|
|