• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      計算機(jī)隨機(jī)函數(shù)應(yīng)用新解

      2009-12-31 00:00:00于洪奎李玉香
      商場現(xiàn)代化 2009年7期

      一、隨機(jī)函數(shù)Rand()的特性

      VFP中的隨機(jī)函數(shù)為Rand( ):格式:Rand(m),其中m為參數(shù),它決定了函數(shù)返回的數(shù)值序列,可省略。功能:返回0到1間的隨機(jī)數(shù)。特性:參數(shù)m的取值不同,Rand( )函數(shù)返回結(jié)果就不同。

      上機(jī)驗證:在VFP 命令窗口中重執(zhí)行10次:?Rand(m)。不改變m值,重新啟動VFP再重復(fù)執(zhí)行10次(目的是檢驗隨機(jī)數(shù)序列的變化),得到結(jié)果見表1。

      由表1中產(chǎn)生的隨機(jī)數(shù)情況可以看出:當(dāng)m<0時,函數(shù)Rand(m)將使用系統(tǒng)時鐘的種子值,產(chǎn)生不重復(fù)的隨機(jī)數(shù)序列。當(dāng)m>0時,函數(shù)Rand(m)將產(chǎn)生序列重復(fù)的固定值。當(dāng)m=0時,函數(shù)Rand(0) 將產(chǎn)生序列不重復(fù)的變量值。當(dāng)m省略時,函數(shù)Rand( ) 將產(chǎn)生序列重復(fù)的有一定規(guī)律的數(shù)值。值得注意的是參數(shù)m省略時,產(chǎn)生偽隨機(jī)數(shù)。應(yīng)用中要謹(jǐn)慎采用。m為負(fù)數(shù)時產(chǎn)生的隨機(jī)數(shù),類似VB中加Randomize語句產(chǎn)生的隨機(jī)數(shù),在此稱真隨機(jī)數(shù),可廣泛應(yīng)用。

      二、應(yīng)用隨機(jī)函數(shù)事例

      設(shè)計一個用于歌手大獎賽產(chǎn)生評委的隨機(jī)抽取程序。

      1.程序設(shè)計思路。首先建立一個存放評委情況的初始表csb.dbf,并將評委基本情況輸入表中。然后建立一個存放被選中評委的結(jié)果表(jgb.dbf結(jié)構(gòu)同初始表)。建立顯示結(jié)果的表單。在表單上添加一個命令按鈕。編寫命令按鈕的單擊事件。運用隨機(jī)函數(shù)產(chǎn)生隨機(jī)號,將初始表中對應(yīng)的記錄抽取出來,保存在結(jié)果表中,最后顯示在表單上。

      2.建立兩個自由表、一個顯示結(jié)果表單。

      csb.dbf和jgb.dbf表結(jié)構(gòu):

      建立一個表單form1,在表單上添加10個標(biāo)簽,Name屬性分別為:label10、label11、label12、 label13、 label14、 label15 、label16 、label17、 label18、 label19 將每個標(biāo)簽的Backstyle屬性設(shè)為:0—透明。添加一個命令按鈕command1并將其Caption屬性設(shè)為:“開始抽取”

      3.編寫命令按鈕單擊事件中的小程序

      close all

      set excl on

      set exac on

      set safe off

      release all

      sele 2

      use csb exclusive

      sele 1

      use jgb exclusive

      zap

      產(chǎn)生隨機(jī)數(shù)

      dime a(10)

      a=0

      i=1

      do while i<=10 在50位中抽取10位作為現(xiàn)場評委

      ww=int(rand(-1)*50+1) 初始表中假設(shè)有50位評委

      if ww=0

      loop

      else

      if ascan(a,ww)=0

      a(i)=ww

      i=i+1

      endif

      endif

      enddo

      ww=0

      將被抽中的評委追加到結(jié)果表中

      for j=1 to 10

      appe from csb for alltrim(編號)=alltrim(str(a(j),4))

      next

      j=1

      顯示成員

      repl all 編號 with str(recno(),4)

      go top

      u=10

      scan for not eof()

      s=str(u,2)

      thisform.labels..caption=姓名

      u=u+1

      endscan

      close all

      在csb.dbf表中添加50條記錄,運行表單,計算機(jī)將自動隨機(jī)抽取出10名評委。如果將rand(m)函數(shù)中的m省略,那么運行表單后,產(chǎn)生的評委在序列上有一定規(guī)律可循,也就是說產(chǎn)生的評委不具隨機(jī)性,進(jìn)而失去了計算機(jī)隨機(jī)抽取的意義。實踐中應(yīng)該引起注意。

      參考文獻(xiàn):

      史濟(jì)民 湯觀全:Visual Foxpro及其應(yīng)用系統(tǒng)開發(fā)[M].北京:清華大學(xué)出版社,2000

      扬州市| 阜城县| 和硕县| 五寨县| 辽宁省| 曲松县| 和田县| 招远市| 花莲县| 华亭县| 建德市| 南乐县| 通榆县| 镇赉县| 岢岚县| 水城县| 铅山县| 福州市| 马鞍山市| 石棉县| 双峰县| 永泰县| 南汇区| 平定县| 大方县| 泰宁县| 嘉兴市| 南平市| 汝阳县| 廊坊市| 平塘县| 莱芜市| 普陀区| 蓝田县| 新乐市| 紫云| 庆城县| 广昌县| 乳山市| 泽普县| 罗田县|