| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 494 人关注过本帖
标题:请教回避取数使和为指定值
只看楼主 加入收藏
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:305
专家分:0
注 册:2014-4-10
结帖率:73.44%
收藏
已结贴  问题点数:20 回复次数:8 
请教回避取数使和为指定值
先生好,对于昨天的“回避取数”表述不是很清楚,今天重新叙述为:
原表有两个字段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 编辑 ]
2015-07-01 10:30
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:10 
回避取数?
2015-07-01 11:34
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:305
专家分:0
注 册:2014-4-10
收藏
得分:0 
回复 2楼 tlliqi
先生您好,“回避取数”是指当取了第N条记录中的列1这个数后该条记录的列2这个数不能再取了(即回避),譬如:当取了第3条记录的列1“56”这个数后,第3条列2“232”这个数就不能再取了,反这亦然,或者说“一条记录中只取一次”,谢谢
列1    列2
54    234
55    233
56    232
57    231
58    230
59    229
60    228
61    227
62    226
83    205
84    204
92    196
93    195
94    194
95    193
96    192
97    191
98    190
99    189
100    188


[ 本帖最后由 fdxxhjc 于 2015-7-1 12:09 编辑 ]
2015-07-01 11:57
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:10 
添加一个字段用来记录是否可取。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2015-07-01 19:20
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:305
专家分:0
注 册:2014-4-10
收藏
得分:0 
回复 4楼 hu9jj
哦,先生关键是一要回避取数,二要和为指定值,谢谢先生指点
2015-07-01 20:14
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:305
专家分:0
注 册:2014-4-10
收藏
得分:0 
昨天的“回避取数”改变的提法,并有初步代码,请帮助修改,谢谢
2015-07-02 08:45
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
以下是引用fdxxhjc在2015-7-1 20:14:28的发言:

哦,先生关键是一要回避取数,二要和为指定值,谢谢先生指点

例如这个字段为0时表示尚未取过,大于0则表示已经取过,不能再取。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2015-07-04 06:38
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
好象改为不回避了,两列各任意取4个数之和等于1252
2015-07-09 20:30
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:305
专家分:0
注 册:2014-4-10
收藏
得分:0 
回复 8楼 吹水佬
先生还是回避的,因我在代码中加了“ P1<>Q1  AND P2<>Q2  AND  P3<>Q3  AND  P4<>Q4  AND  ”这一段(先生我还没结贴过怎么会是自动结贴的吗)

[ 本帖最后由 fdxxhjc 于 2015-7-11 11:12 编辑 ]
2015-07-11 11:11
快速回复:请教回避取数使和为指定值
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.043308 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved