隨機(jī)函數(shù)與隨機(jī)化算法應(yīng)用實(shí)例

字號(hào):

-----“大風(fēng)車”幸運(yùn)電話號(hào)碼的產(chǎn)生
    摘要:本文討論了隨機(jī)函數(shù)與隨機(jī)算法在抽獎(jiǎng)過(guò)程中的具體應(yīng)用,使用vfp6.0寫出了關(guān)鍵的部分控件與事件代碼。本文提供的方法不但在抽獎(jiǎng)過(guò)程中使用,而且也可以在動(dòng)態(tài)規(guī)劃中應(yīng)用。比如,使用隨機(jī)數(shù)判斷素?cái)?shù)等。
    應(yīng)用背景
    中央電視臺(tái)的兒童節(jié)目“大風(fēng)車”,是深受廣大兒童和家長(zhǎng)喜愛(ài)的電視節(jié)目,“大風(fēng)車”熱線電話,更是兒童積極參加的欄目,每周幸運(yùn)電話號(hào)碼的產(chǎn)生是這一欄目的高潮。那么幸運(yùn)電話號(hào)碼是怎樣產(chǎn)生的呢?這實(shí)際上是一個(gè)隨機(jī)數(shù)產(chǎn)生與應(yīng)用的問(wèn)題。
    解決方案
    使用系統(tǒng)軟件提供的隨機(jī)函數(shù),在確定隨機(jī)數(shù)的范圍中尋找一個(gè)隨機(jī)數(shù),利用這個(gè)隨機(jī)數(shù)與所有參與欄目的電話記錄相關(guān)聯(lián)。即可確定一個(gè)幸運(yùn)號(hào)碼。
    vfp6.0的實(shí)現(xiàn)過(guò)程
    創(chuàng)建一數(shù)據(jù)表 telephone.dbf
    兩個(gè)字段
    telecode c 20 &&存放電話號(hào)碼
    flag l 1 &&幸運(yùn)電話號(hào)碼的標(biāo)志
    建立表單,增加控件 大風(fēng)車.scx
    表單包括三個(gè)標(biāo)簽、一個(gè)文本框、兩個(gè)按鈕控件。其屬性設(shè)置分別是:
    label1.caption=“電話號(hào)碼”
    label1.fontsize=18
    label1.forecolor =0,0,0 &&黑色
    label2.caption=“幸運(yùn)號(hào)碼”
    label2.fontsize=18
    label2.forecolor =0,0,0 &&黑色
    label3.caption=’’ &&顯示幸運(yùn)號(hào)碼
    label3.fontsize=18
    label3.forecolor =255,0,0 &&紅色
    thisform.text1.value=telephone.telecode
    thisform.text1.fontsize=18
    command1.caption=”開始”
    command1.fontsize=15
    command2.caption=”結(jié)束”
    command1.fontsize=15
    設(shè)置控件事件代碼
    在命令按鈕1的click事件的代碼如下
    set dele on
    do while .t.
    count to acount &&確定參加抽獎(jiǎng)的范圍,已成為幸