求助站长大哥!循环出随机数的问题!

03-05-26 牧耘

我在做毕业设计,做的是一个题库系统基本上已经做完了,由于要有随机出题的功能,所以用到了你提供的那个bean主要思路如下,首先用了这个bean:

<jsp:useBean id="Rnum" scope="page" class="mycollect.RandomNum" />

然后,由于只是我一个人做,所以简化了算法(实际上是我唯一解决了不重复和一次查询的方法),是从每十道题中选一道(数据库中只有120多道题,最多也就13道题)

//范围,由于有强制转换问题所以定义了一个大值,和一个小值

int Snum,Bnum;

String MyRange=new String();

String MyWhere=new String();

//取得随机数放入MyWhere中

for(Snum=0,Bnum=10;Snum<200;Snum=Snum+10,Bnum=Bnum+10)

{

MyRange = Snum + "-" + Bnum;

Rnum.setRange(MyRange);

Rnum.generateRandomObject();

MyWhere = MyWhere + "id=" + Rnum.getRandom().intValue();

//最后一个不要" or "

if( Bnum<200 ){

MyWhere = MyWhere + " or ";

}

}

而最后出来的随机数列是:SELECT * FROM os WHERE id=9 or id=19 or id=29 or id=39 or id=49 or id=59 or id=69 or id=79 or id=89 or id=99 or id=109 or id=119 or id=129 or id=139 or id=149 or id=159 or id=169 or id=179 or id=189 or id=199;

请注意这些id末位都是'9',而我想是每十道题中随机选一个,怎样才能使这些数的末位也各不相同呢?(现在只是相当于从10套题中选一套出来)

另外,问大站长大哥一个MySql的问题,我的数据库在我家中的计算机中,而答辨时要用学校的指定电脑做服务器(因为有投影演示的问题)我怎样才能把数据拷出来呢?我直接把mysql下的date目录拷下来复盖到学校的机子可以吗?

如果不可以,请问还有别的方法吗?

多谢!!!

牧耘
2003-05-26 22:49

第三行没显示(可以是被调用了吧!):以下是第三行内容

//<jsp:useBean id="Rnum" scope="page" class="mycollect.RandomNum" />

牧耘
2003-05-26 22:50

jsp:useBean id="Rnum" scope="page" class="mycollect.RandomNum"

第三行

banq
2003-05-28 21:15

晕 ,mysql拷贝按你办法做没问题

zhanglm
2003-05-29 16:51

先从数据库里取出所有的题目号码(ID),然后放在一个数组里,利用MATH里的RANDOM函数*数组的LENGTH做随机取数字作为数组的下标,然后将最大下标的数组元素替换被取的数组元素,RANDOM函数*数组的LENGTH-1循环操作就可以了。可以保证无重复的随机出题。代码现在没有,你想要的话给我发信吧。

信箱:zhanglm0168@sina.com

3Go 1 2 3 下一页