广州骑楼:题库有600题,我想随机选其中的100道,这100道不能重复, 算法

来源:百度文库 编辑:高考问答 时间:2024/05/08 06:55:20
题库有600题,我想随机选其中的100道,这100道不能重复, 算法

我想用php来实现,想到了list这个算法,可是php对list无,得自己来写这个list,我晕.哪位大哥帮忙.
int a[600];
randomize();
for(int t=0; t<100; t++)
a[t]=random(100);
for(int i=0; i<100; i++)
{
for(int j=0; j<i; j++)
{
while(a[i]==a[j])
{
a[i]=random(100);
j=0;
}
}
cout<<a[i]<<",";
}
cout<<endl<<endl;

这是我自己写的C++的算法.也能运行了.
我只是觉得
在一个list中存上600题,再来random,用PHP实现.

就是将600题放在数组里,然后调用shuffle这个PHP函数将数组打乱,取前100项就是需要的100题

至于这个打乱的算法,大致是这样
for (i=0;i<600;++i) {
a=myarray[i];
j=rand(i,600-1);
myarray[i]=myarray[j];
myarray[j]=a;
}

思想就是

建立一个数组,随机选择题,在加入到数据之前先判断一下这个题有没有在这个数组里,如果已经在了就不加,否则就加入。

建立一个数组,随机选择题,在加入到数据之前先判断一下这个题有没有在这个数组里,如果已经在了就不加,否则就加入。
至于这个打乱的算法,大致是这样
for (i=0;i<600;++i) {
a=myarray[i];
j=rand(i,600-1);
myarray[i]=myarray[j];
myarray[j]=a;
}

我不会啊!