使用Rand( )函数随机选取记录 袁志新 1999年 第26期 13版   在数据库管理软件中,VFP较以往的DBASE增加了许多函数,Rand()便是其中之一,这为我们处理一些随机问题带来了极大方便。随机函数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条记录全选。