vfp 已知记录条数,如何算出随机数,就是模拟抽奖?

wwle 2015-09-22 11:33:44
有20000多条记录,
分为6个批次,每个批次抽出2个记录 共12条记录
想模拟抽奖?如何做更好啊,不提前指定啊
...全文
240 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
oldbbb 2015-09-23
  • 打赏
  • 举报
回复
就是在20000多条记录中,任意取出2条记录,取6次,一共取出12条记录。 随机排序一下取其中2条记录,此过程重复6次。(如果不允许重复记录选择,就排除上次已经选择的记录)
liups 2015-09-22
  • 打赏
  • 举报
回复
看帮助嘛 第一个示例使用 RAND( ) 函数创建了包含 10 条随机记录的表,然后使用 MIN( ) 和 MAX( ) 函数来显示表中的最大值和最小值。 第二个示例显示 1 到 10 之间的一个随机数。
CLOSE DATABASES
CREATE TABLE Random (cValue N(3))
FOR nItem = 1 TO 10  && Append 10 records,
   APPEND BLANK
   REPLACE cValue WITH 1 + 100 * RAND( )  && Insert random values
ENDFOR

CLEAR
LIST  && Display the values
gnMaximum = 1  && Initialize minimum value
gnMinimum = 100  && Initialize maximum value
SCAN 
   gnMinimum = MIN(gnMinimum, cValue)
   gnMaximum = MAX(gnMaximum, cValue)
ENDSCAN
? 'The minimum value is: ', gnMinimum  && Display minimum value
? 'The maximum value is: ', gnMaximum  && Display maximum value

CLEAR
gnLower = 1
gnUpper = 10

? INT((gnUpper - gnLower + 1) * RAND( ) + gnLower)
wwle 2015-09-22
  • 打赏
  • 举报
回复
int(rand(0) * 20000) 是这样吗?
wwle 2015-09-22
  • 打赏
  • 举报
回复
rand(0) 咋生成2000以内随机数
liups 2015-09-22
  • 打赏
  • 举报
回复
引用 1 楼 liups 的回复:
产生20000以内的随机数,随机数存放于临时表(结果表)内,存以前先看此数是否已经抽过了,若抽过了,就放弃它并另抽一个,直到抽出来为止。 最后以随机数为记录号抽出中奖记录
PS:要加入随机化函数,否则每次结果都是一样的
liups 2015-09-22
  • 打赏
  • 举报
回复
产生20000以内的随机数,随机数存放于临时表(结果表)内,存以前先看此数是否已经抽过了,若抽过了,就放弃它并另抽一个,直到抽出来为止。 最后以随机数为记录号抽出中奖记录

2,740

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧