![]() ![]() |
|
随机函数与随机化算法应用实例 | |
作者:佚名 文章来源:不详 点击数 更新时间:2008/4/18 14:51:30 文章录入:杜斌 责任编辑:杜斌 | |
|
|
-----“大风车”幸运电话号码的产生 中央电视台的儿童节目“大风车”,是深受广大儿童和家长喜爱的电视节目,“大风车”热线电话,更是儿童积极参加的栏目,每周幸运电话号码的产生是这一栏目的高潮。那么幸运电话号码是怎样产生的呢?这实际上是一个随机数产生与应用的问题。 解决方案 使用系统软件提供的随机函数,在确定随机数的范围中寻找一个随机数,利用这个随机数与所有参与栏目的电话记录相关联。即可确定一个幸运号码。 vfp6.0的实现过程 创建一数据表 telephone.dbf 两个字段 telecode c 20 &&存放电话号码 flag l 1 &&幸运电话号码的标志 建立表单,增加控件 大风车.scx 表单包括三个标签、一个文本框、两个按钮控件。其属性设置分别是: label1.caption=“电话号码” label1.fontsize=18 label1.forecolor =0,0,0 &&黑色 label2.caption=“幸运号码” label2.fontsize=18 label2.forecolor =0,0,0 &&黑色 label3.caption=’’ &&显示幸运号码 label3.fontsize=18 label3.forecolor =255,0,0 &&红色 thisform.text1.value=telephone.telecode thisform.text1.fontsize=18 command1.caption=”开始” command1.fontsize=15 command2.caption=”结束” command1.fontsize=15 设置控件事件代码 在命令按钮1的click事件的代码如下 set dele on do while .t. count to acount &&确定参加抽奖的范围,已成为幸
&&运的电话号码不再参与抽奖 jj=mod(int(rand()*1000),acount+1) && 使用随机函数 &&确定随机数的范围 if jj=0 jj=1 endif go jj thisform.text1.value=telecode &&随机显示电话? &&不按数据库的顺序显示 a=inkey(hm) &&监测键盘或鼠标 if a<>0 repl flag with .t. thisform.label3.caption=alltrim(telecode) dele exit endif thisform.label3.caption= thisform.refresh enddo 在命令按钮2的click事件的代码如下 thisform.release &&撤销本表单 完善程序 本文只给出了随机数产生的关键部分。有兴趣的读者可进一步完善,比如电话号码库的维护;幸运电话号码的输出等操作。 |
|
![]() ![]() |