使用Rand( )函数随机选取记录
格式:Rand(x)
其中参数x为种子数值,它决定了函数返回的数值序列,可省略。
功能:产生一个(0,1)区间的随机数。
说明:使用Rand()时,若参数是负数,则将使用系统时钟的种子值,若要获得不重复的随机数序列,可以先使用负数作为参数,然后再使用不带参数的Rand()。本人在搞题库设计时,有这样一个问题:在含有n个记录的题库中,随机先取m条记录作为试题,其中n>=m>1,在抽取试题时,必须保证试题不重复。其方法是:利用Rand()将库中的n个记录号随机先取m个记录号放于数组B中,且保证选取的记录号不能相同,为此,编写一个如下的小程序段:
:&&统计库中记录个数n
:&&确定选取的记录个数m
Dime b(m)
B(1)=int(n*Rand(-1)+1) &&保证产生的随机数为整数并且在[1,n]区间内
i=2
do while i<=m
t=1 &&为检验产生的记录号是否重复的标志
a=int(n*Rand()+1)
j=1
do while j<=i-1 &&检验新产生的记录号是否与前i-1个记录号重复
if a=b(j)
t=-1
exit
else
j=j+1
endif
enddo
if t=-1 &&若重复,重新产生
loop
else
B(i)=a &&不重复,第i个记录号产生
i=i+1
enddo
通过以上程序段,即可保证试题的随机选取,并且编程者本身事先也不知道选择哪m条记录,除非n条记录全选。