| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1160 人关注过本帖
标题:效率太低请大神修正,求助!
只看楼主 加入收藏
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
现在需要做的事情是把history.dbf的6个号码和ssq.dbf里的6个号码逐一对比,
如何对比,如:history.dbf中有一条记录6个号码分别为:010203040608;ssq.dbf中有一条记录6个号码分别为:050607080910。如何比较,请楼主说明。

坚守VFP最后的阵地
2014-03-03 13:09
洗洗彩票
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2014-3-1
收藏
得分:0 
1、历史数据截止日期20140302,期号为2014022,共1615期,历史数据表命名为history.dbf
2、生成双色球的组合注数(共1107568注),组合数据表命名为ssq.dbf
3、现在需要做的事情是把ssq.dbf的6个号码和历史数据表history.dbf里的6个号码逐一对比
依次选中ssq.dbf的6个号码,与100期、300期、500期或全部的历史数据比较:
0个号码在历史数据中出现的次数,
1个号码在历史数据中出现的次数,
2个号码组合在历史数据中出现的次数,
3个号码组合在历史数据中出现的次数,
4个号码组合在历史数据中出现的次数,
5个号码组合在历史数据中出现的次数,
6个号码组合在历史数据中出现的次数

例如:ssq.dbf里的ID=1的 01 02 03 04 05 06与history.dbf表里的1615期比较的结果是
0红    411    --0红就是没有相同的数    记为    R1
1红    718    ----1红就是有1个相同的数    记为    R2
2红    392    ----2红就是有2个相同的数    记为    R3
3红     78    ----3红就是有3个相同的数    记为    R4
4红     16    ----4红就是有4个相同的数    记为    R5
5红      0    ----5红就是有5个相同的数    记为    R6
6红      0    ----6红就是有6个相同的数    记为    R7
2014-03-03 14:06
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
以下是引用洗洗彩票在2014-3-3 14:06:18的发言:

1、历史数据截止日期20140302,期号为2014022,共1615期,历史数据表命名为history.dbf
2、生成双色球的组合注数(共1107568注),组合数据表命名为ssq.dbf
3、现在需要做的事情是把ssq.dbf的6个号码和历史数据表history.dbf里的6个号码逐一对比
依次选中ssq.dbf的6个号码,与100期、300期、500期或全部的历史数据比较:
0个号码在历史数据中出现的次数,
1个号码在历史数据中出现的次数,
2个号码组合在历史数据中出现的次数,
3个号码组合在历史数据中出现的次数,
4个号码组合在历史数据中出现的次数,
5个号码组合在历史数据中出现的次数,
6个号码组合在历史数据中出现的次数
 
例如:ssq.dbf里的ID=1的 01 02 03 04 05 06与history.dbf表里的1615期比较的结果是
如:SSQ.DBF中有一条记录为:020809101523,HISTORY.DBF中有一条记录为:050608101831
上面红色字体标注的号码算单个号码,还是按2个号码组合统计。

坚守VFP最后的阵地
2014-03-03 14:24
洗洗彩票
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2014-3-1
收藏
得分:0 
以下是引用sdta在2014-3-3 13:09:18的发言:

如何对比,如:history.dbf中有一条记录6个号码分别为:010203040608;ssq.dbf中有一条记录6个号码分别为:050607080910。如何比较,请楼主说明。

ssq.dbf中有一条记录050607080910       010203040608 比较结果是
2红=1      (--2红就是有2个相同的数,就是06 08)

再例如ssq.dbf中有一条记录050607080910与history.dbf表里的1615期比较的结果是
0红    429    ----0红就是没有相同的数,对比的结果在历史号码里有429组号码与050607080910没有相同的    记为    R1=429
1红    720    ----1红就是有1个相同的数,对比的结果在历史号码里有720组号码                            记为    R2=720
2红    367    ----2红就是有2个相同的数,对比的结果在历史号码里有367组号码                            记为    R3=367
3红     95    ----3红就是有3个相同的数,对比的结果在历史号码里有95组号码                            记为    R4=95
4红      4    ----4红就是有4个相同的数,对比的结果在历史号码里有4组号码                            记为    R5=4
5红      0    ----5红就是有5个相同的数,对比的结果在历史号码里没有5个相同的数                            记为    R6=0
6红      0    ----6红就是有6个相同的数,对比的结果在历史号码里没有6个相同的数                            记为    R7=0
2014-03-03 14:36
洗洗彩票
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2014-3-1
收藏
得分:0 
如:SSQ.DBF中有一条记录为:020809101523,HISTORY.DBF中有一条记录为:050608101831
上面红色字体标注的号码算单个号码,还是按2个号码组合统计。


记作 2红=1

上面红色字体标注的号码算按2个号码组合统计。就是有2个相同,即同2次数为1.
2014-03-03 14:38
洗洗彩票
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2014-3-1
收藏
得分:0 
再例如ssq.dbf中有一条记录050607080910与history.dbf表里的1615期比较的结果是
0红    429    ----0红就是没有相同的数,对比的结果在历史号码里有429组号码与050607080910没有相同的     记为    R1=429
1红    720    ----1红就是有1个相同的数,对比的结果在历史号码里有720组号码                            记为    R2=720
2红    367    ----2红就是有2个相同的数,对比的结果在历史号码里有367组号码                            记为    R3=367
3红     95    ----3红就是有3个相同的数,对比的结果在历史号码里有95组号码                             记为    R4=95
4红      4    ----4红就是有4个相同的数,对比的结果在历史号码里有4组号码                              记为    R5=4
5红      0    ----5红就是有5个相同的数,对比的结果在历史号码里没有5个相同的数                        记为    R6=0
6红      0    ----6红就是有6个相同的数,对比的结果在历史号码里没有6个相同的数                        记为    R7=0

校验:R1+R2+R3+R4+R5+R6+R7=429+720+367+95+4+0+0=1615(就是说与1615期历史号码比较了)
2014-03-03 14:56
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:20 
暂时给你个简单代码
程序代码:
lc=[050607080910]
*CREATE CURSOR t (R0 N(4),R1 N(4),R2 N(4),R3 N(4),R4 N(4),R5 N(4),R6 N(4))
SELECT PADL(N1,2,[0])+[,]+PADL(N2,2,[0])+[,]+PADL(N3,2,[0])+[,]+PADL(N4,2,[0])+[,]+PADL(N5,2,[0])+[,]+PADL(N6,2,[0]) JH,0000 JS FROM HISTORY INTO CURSOR T1 READWRITE
FOR I=1 TO LEN(LC)
    REPLACE ALL JH WITH STRTRAN(JH,SUBSTRC(LC,I*2-1,2),[]) IN T1
ENDFOR
REPLACE ALL JS WITH (17-LEN(ALLTRIM(JH)))/2 IN T1
SELECT JS,COUNT(JS) FROM T1 GROUP BY JS


[ 本帖最后由 sdta 于 2014-3-3 19:42 编辑 ]

坚守VFP最后的阵地
2014-03-03 16:51
洗洗彩票
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2014-3-1
收藏
得分:0 
热烈期盼着楼上大神山力大大
2014-03-03 18:59
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
不知楼主是否看明白代码的思路

坚守VFP最后的阵地
2014-03-03 19:45
洗洗彩票
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2014-3-1
收藏
得分:0 
以下是引用sdta在2014-3-3 19:45:49的发言:

不知楼主是否看明白代码的思路

请指教,还是有不懂
2014-03-04 16:42
快速回复:效率太低请大神修正,求助!
数据加载中...
 
   



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

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