请教回避取数使和为指定值
先生好,对于昨天的“回避取数”表述不是很清楚,今天重新叙述为:原表有两个字段20条记录,现要从第一列取不同的4个数从第二列也取不同的4个数,所取得的8个数的和为1252时将这8个数记录到新表,遍取为止
我的代码如下,但运行起来非常的慢,请先生帮我改进代码,谢谢了
CLEAR
CLOSE all
SET SAFETY OFF
*----------------------------------------------------------
USE 原表
HS=RECCOUNT()
LS=FCOUNT()
Dimension YB(HS,LS)
select * from 原表 into array YB
USE 新表
PACK
ZAP
*-----------------
FOR P1=1 TO HS
FOR P2=1 TO HS
FOR P3=1 TO HS
FOR P4=1 TO HS
FOR Q1=1 TO HS
FOR Q2=1 TO HS
FOR Q3=1 TO HS
FOR Q4=1 TO HS
IF P1<>Q1 AND P2<>Q2 AND P3<>Q3 AND P4<>Q4 AND YB(P1,1)+YB(P2,1)+YB(P3,1)+YB(P4,1)+YB(Q1,2)+YB(Q2,2)+YB(Q3,2)+YB(Q4,2)=1252
APPEND BLANK
REPLACE 列1 WITH YB(P1,1)
REPLACE 列2 WITH YB(P2,1)
REPLACE 列3 WITH YB(P3,1)
REPLACE 列4 WITH YB(P4,1)
REPLACE 列5 WITH YB(Q1,2)
REPLACE 列6 WITH YB(Q2,2)
REPLACE 列7 WITH YB(Q3,2)
REPLACE 列8 WITH YB(Q4,2)
ELSE
LOOP
ENDIF
ENDFOR
ENDFOR
ENDFOR
ENDFOR
ENDFOR
ENDFOR
ENDFOR
ENDFOR
*----------------
MESSAGEBOX('本 次 运 行 结 束 !!',64,'信息提示')
DELETE FILE *.BAK
QUIT
原表.zip
(667 Bytes)
[ 本帖最后由 fdxxhjc 于 2015-7-2 08:44 编辑 ]