| 上一篇主題 :: 下一篇主題   | 
	
	
	
		| 發表人 | 
		內容 | 
	
	
		akwang
 
 
  註冊時間: 2004-11-06 文章: 24 來自: ccf
  第 1 樓
  | 
		
			
				 發表於: 星期五 十二月 17, 2004 9:19 pm    文章主題: 请教一个产生随机数的的算法(抽奖用的) | 
				     | 
			 
			
				
  | 
			 
			
				原来用过一个,但是一次只产生一个幸运者,用的这个算法 :aa(变量)=round(rand()*reccount(),0) 
 
现在要求一次能抽出5个幸运者,不知道用什么算法能实现
 
而且这五个幸运者是不能一样的 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		朱育興
 
 
  註冊時間: 2003-08-25 文章: 661 來自: 台中市大里區
  第 2 樓
  | 
		
			
				 發表於: 星期五 十二月 17, 2004 10:43 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | 代碼: | 	 		  
 
DIMENSION M_aSelectNo(1)
 
M_aSelectNo(1) = -1
 
M_nRowsOfArray = 0
 
DO WHILE M_nRowsOfArray < 5
 
  W1_nCurNo = ROUND(RAND(-1)*RECCOUNT(),0)
 
  IF ASCAN(M_aSelectNo,W1_nCurNo) = 0
 
    M_nRowsOfArray = M_nRowsOfArray + 1
 
    DIMENSION M_aSelectNo(M_nRowsOfArray)
 
    M_aSelectNo(M_nRowsOfArray) = W1_nCurNo
 
  ENDIF
 
ENDDO
 
 | 	 
  _________________ 希望有更多人來參與
 
 VFP wiki - 需要大家一起完成的VFP電子書與FAQ  | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		akwang
 
 
  註冊時間: 2004-11-06 文章: 24 來自: ccf
  第 3 樓
  | 
		
			
				 發表於: 星期五 十二月 17, 2004 10:48 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | 朱育興 寫到: | 	 		   	  | 代碼: | 	 		  
 
DIMENSION M_aSelectNo(1)
 
M_aSelectNo(1) = -1
 
M_nRowsOfArray = 0
 
DO WHILE M_nRowsOfArray < 5
 
  W1_nCurNo = ROUND(RAND(-1)*RECCOUNT(),0)
 
  IF ASCAN(M_aSelectNo,W1_nCurNo) = 0
 
    M_nRowsOfArray = M_nRowsOfArray + 1
 
    DIMENSION M_aSelectNo(M_nRowsOfArray)
 
    M_aSelectNo(M_nRowsOfArray) = W1_nCurNo
 
  ENDIF
 
ENDDO
 
 | 	 
  | 	  
 
非常感谢你,不过我是初学者,我在你这里找不到我想要的变量阿
 
我怎么用指针只想那个纪录阿?
 
能帮我解释一下你这几段吗?
 
多谢了,麻烦您了 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		garfield Site Admin
  
  註冊時間: 2003-01-30 文章: 2160
 
  第 4 樓
  | 
		
			
				 發表於: 星期五 十二月 17, 2004 10:57 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				如果你的 reccount()有點大, 尚須注意 set deci to 小數位數
 
ROUND(RAND(-1)*RECCOUNT(),0) 會不為有最有極大值和極小值的問題, 須不須要+1 _________________ 利用>>搜尋<<的功能會比問的還要快得到答案. | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		akwang
 
 
  註冊時間: 2004-11-06 文章: 24 來自: ccf
  第 5 樓
  | 
		
			
				 發表於: 星期五 十二月 17, 2004 10:57 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				| 研究了一下M_aSelectNo(1)好像是变量不过我运行了一下,提示我纪录超出范围。 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		朱育興
 
 
  註冊時間: 2003-08-25 文章: 661 來自: 台中市大里區
  第 6 樓
  | 
		
			
				 發表於: 星期五 十二月 17, 2004 11:50 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | 代碼: | 	 		  
 
DIMENSION M_aSelectNo(1) 
 
M_aSelectNo(1) = -1 
 
M_nRowsOfArray = 0 
 
DO WHILE M_nRowsOfArray < 5 
 
  W1_nCurNo = ROUND(RAND(-1)*RECCOUNT(),0) 
 
  IF ASCAN(M_aSelectNo,W1_nCurNo) = 0 
 
    M_nRowsOfArray = M_nRowsOfArray + 1 
 
    DIMENSION M_aSelectNo(M_nRowsOfArray) 
 
    M_aSelectNo(M_nRowsOfArray) = W1_nCurNo 
 
  ENDIF 
 
ENDDO 
 
FOR W1_SUB_A = 1 TO ALEN(M_aSelectNo,1)
 
  ? M_aSelectNo(W1_SUB_A)  && 這就是你要的 5 個不一樣的號碼,要如何運用就由你自己處理
 
ENDFOR
 
 | 	 
  _________________ 希望有更多人來參與
 
 VFP wiki - 需要大家一起完成的VFP電子書與FAQ  | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		akwang
 
 
  註冊時間: 2004-11-06 文章: 24 來自: ccf
  第 7 樓
  | 
		
			
				 發表於: 星期六 十二月 18, 2004 9:57 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				不知道为什么总是提示纪录超出范围  | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		bin1x
 
 
  註冊時間: 2004-08-27 文章: 462
 
  第 8 樓
  | 
		
			
				 發表於: 星期六 十二月 18, 2004 10:45 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				紀錄超出範圍
 
有種可能
 
索引被修改
 
我還曾被捉弄到,前幾百筆沒問題,
 
(資料庫好像是循序索引),到了某一筆就出問題
 
跳過那一筆就沒事 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		akwang
 
 
  註冊時間: 2004-11-06 文章: 24 來自: ccf
  第 9 樓
  | 
		
			
				 發表於: 星期六 十二月 18, 2004 11:38 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | bin1x 寫到: | 	 		  紀錄超出範圍
 
有種可能
 
索引被修改
 
我還曾被捉弄到,前幾百筆沒問題,
 
(資料庫好像是循序索引),到了某一筆就出問題
 
跳過那一筆就沒事 | 	  
 
请问有解决的方法吗?我是初学者 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		bin1x
 
 
  註冊時間: 2004-08-27 文章: 462
 
  第 10 樓
  | 
		
			
				 發表於: 星期六 十二月 18, 2004 2:17 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				系統中通常都會寫重建索引
 
比較努力的人
 
會將所有索引tag都記住之後
 
delete tag all
 
然後逐一重建
 
在寫程式我比較懶
 
reindex 就給他用出去了
 
如果.cdx檔被部份修改
 
努力一點問題才會解決 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		朱育興
 
 
  註冊時間: 2003-08-25 文章: 661 來自: 台中市大里區
  第 11 樓
  | 
		 | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		akwang
 
 
  註冊時間: 2004-11-06 文章: 24 來自: ccf
  第 12 樓
  | 
		
			
				 發表於: 星期三 十二月 22, 2004 12:40 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				终于找到原因了
 
是因为当结果是0时报错了
 
谢谢大家
 
现在有个问题是click有时候响应的慢,不知道什么原因 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		 |