VFP6中随机函数的用法
软件世界
笔者的朋友在使用Vi sual FoxPro 6(以下简称VFP6)设计一个从标准题库随机生成试卷的程序时,用到了随机函数RAND()。在实际运行时发现每次运行程序得到的随机数竟然是相同的,这显然与我们的目的不相符,怎么回事呢?
在VFP6中RAND()函数的功能是返回一个0~1之间的随机数,其格式是RAND([种子数]),函数的参数“种子数”可以有也可以没有。当使用种子数时,同样的种子数会得到同样的随机数。
也就是说,如果第一次使用有种子数的RAND(),接着使用无参数的RAND(),会得到一个随机数序列。如果再次使用和第一次相同的种子数,则以后使用无参数的RAND()时都会得到和第一次一样的随机数序列。
为了在每次运行时获得不同的随机数序列,也就是要获得最大随机程度的随机数序列,我们需要在第一次使用RAND()函数时采用一个负数作为种子数,这样,以后就可以放心地使用无参数的RAND()函数了。
提示:VFP6的RAND()函数与VB6的随机函数RND()正好相反,在VB6中使用以负数做参数的RND()函数,结果会得到相同的随机数序列。另外,RAND()函数只能生成0~1之间的随机数,如果要生成一个A~B之间的随机数,可以使用公式(B-A+1)×RAND()+A,比如表达式20×RAND()+1可以生成一个1~20的随机数。