| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2947 人关注过本帖, 1 人收藏
标题:请大神帮忙写张表格,就是将总数量为28的两个元素的所有排列与组合都写进表 ...
只看楼主 加入收藏
shuxin211
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2015-8-26
结帖率:100%
收藏(1)
已结贴  问题点数:20 回复次数:70 
请大神帮忙写张表格,就是将总数量为28的两个元素的所有排列与组合都写进表格记录里。
最近想做个K线量化策略测试小工具,无奈水平有限,只好慢慢请教大神们。
需求是将B和P两个元素组成的所有排列与组合写进一张表格记录里面去,B的个数加P的个数总数是28,B的数量可以是0-28个,P的数量也可以是0-28个,即:B个数+P个数=28,B个数=0-28,P个数=0-28,总的组合数是2.68亿多,一张表应该能装下,就是不知道体积有多大。还请大神们帮忙,不胜感激。表格式如下:
序号 BP1 BP2 BP3 BP4 BP5 BP6 BP7 BP8 BP9 BP10 BP11 BP12 BP13 BP14 BP15 BP16 BP17 BP18 BP19 BP20 BP21 BP22 BP23 BP24 BP25 BP26 BP27 BP28
 1    B   B   B   B   B   B   B   B   B   B    B    B    B    B     B    B   B    B    B     B    B    B   B    B    B    B     B    B
 2    B   B   B   B   B   B   B   B   B   B    B    B    B    B     B    B   B    B    B     B    B    B   B    B    B    B     B    P
 3    B   B   B   B   B   B   B   B   B   B    B    B    B    B     B    B   B    B    B     B    B    B   B    B    B    B     P    B
 4    B   B   B   B   B   B   B   B   B   B    B    B    B    B     B    B   B    B    B     B    B    B   B    B    B    P     B    B
 5    B   B   B   B   B   B   B   B   B   B    B    B    B    B     B    B   B    B    B     B    B    B   B    B    p    B     B    B
……
新人求教,还没什么分,抱歉。
搜索更多相关主题的帖子: 不胜感激 记录 元素 
2015-08-27 00:04
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:10 
VFP9 代码
程序代码:
CREATE CURSOR t1 (a1 c(1))
INSERT INTO t1 VALUES ("B")
INSERT INTO t1 VALUES ("P")
TEXT TO csql NOSHOW 
SELECT aa.a1 bp1,bb.a1 bp2,cc.a1 bp3,dd.a1 bp4,ee.a1 bp5,ff.a1 bp6,gg.a1 bp7,hh.a1 bp8,ii.a1 bp9,jj.a1 bp10,kk.a1 bp11,ll.a1 bp12,mm.a1 bp13,nn.a1 bp14,oo.a1 bp15,pp.a1 bp16,qq.a1 bp17,rr.a1 bp18,ss.a1 bp19,tt.a1 bp20,uu.a1 bq21,vv.a1 bp22,ww.a1 bp23,xx.a1 bp24,yy.a1 bp25,zz.a1 bp26,ab.a1 bp27,ac.a1 bp28 FROM t1 aa,t1 bb,t1 cc,t1 dd,t1 ee,t1 ff,t1 gg,t1 hh,t1 ii,t1 jj,t1 kk,t1 ll,t1 mm,t1 nn,t1 oo,t1 pp,t1 qq,t1 rr,t1 ss,t1 tt,t1 uu,t1 vv,t1 ww,t1 xx,t1 yy,t1 zz,t1 ab,t1 ac
ENDTEXT 
EXECSCRIPT(csql)

文件太大不能生成

坚守VFP最后的阵地
2015-08-27 01:14
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
如果生成一个字段可能行

坚守VFP最后的阵地
2015-08-27 01:19
shuxin211
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2015-8-26
收藏
得分:0 
以下是引用sdta在2015-8-27 01:19:46的发言:

如果生成一个字段可能行

多谢版主这么晚了帮忙写代码,2.68亿行,29列文件就过大,那我只能把28这个数改成26,再不行改成24这样一个一个的试了,改成24就只有1677万多行的记录,应该差不多了,如果还不行那可能得换数据库了,再次感谢。
2015-08-27 01:46
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
26列可以生成,27列就不行了

坚守VFP最后的阵地
2015-08-27 01:49
shuxin211
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2015-8-26
收藏
得分:0 
以下是引用sdta在2015-8-27 01:14:21的发言:

VFP9 代码
CREATE CURSOR t1 (a1 c(1))
INSERT INTO t1 VALUES ("B")
INSERT INTO t1 VALUES ("P")
TEXT TO csql NOSHOW
SELECT aa.a1 bp1,bb.a1 bp2,cc.a1 bp3,dd.a1 bp4,ee.a1 bp5,ff.a1 bp6,gg.a1 bp7,hh.a1 bp8,ii.a1 bp9,jj.a1 bp10,kk.a1 bp11,ll.a1 bp12,mm.a1 bp13,nn.a1 bp14,oo.a1 bp15,pp.a1 bp16,qq.a1 bp17,rr.a1 bp18,ss.a1 bp19,tt.a1 bp20,uu.a1 bq21,vv.a1 bp22,ww.a1 bp23,xx.a1 bp24,yy.a1 bp25,zz.a1 bp26,ab.a1 bp27,ac.a1 bp28 FROM t1 aa,t1 bb,t1 cc,t1 dd,t1 ee,t1 ff,t1 gg,t1 hh,t1 ii,t1 jj,t1 kk,t1 ll,t1 mm,t1 nn,t1 oo,t1 pp,t1 qq,t1 rr,t1 ss,t1 tt,t1 uu,t1 vv,t1 ww,t1 xx,t1 yy,t1 zz,t1 ab,t1 ac
ENDTEXT
EXECSCRIPT(csql)
文件太大不能生成

我减少到24个,下面代码应该没错吧?运行后说找不到变量csql
CREATE CURSOR t1 (a1 c(1))
INSERT INTO t1 VALUES ("B")
INSERT INTO t1 VALUES ("P")
TEXT TO csql NOSHOW
SELECT aa.a1 bp1,bb.a1 bp2,cc.a1 bp3,dd.a1 bp4,ee.a1 bp5,ff.a1 bp6,gg.a1 bp7,hh.a1 bp8,ii.a1 bp9,jj.a1 bp10,kk.a1 bp11,ll.a1 bp12,mm.a1 bp13,nn.a1 bp14,oo.a1 bp15,pp.a1 bp16,qq.a1 bp17,rr.a1 bp18,ss.a1 bp19,tt.a1 bp20,uu.a1 bq21,vv.a1 bp22,ww.a1 bp23,xx.a1 bp24 FROM t1 aa,t1 bb,t1 cc,t1 dd,t1 ee,t1 ff,t1 gg,t1 hh,t1 ii,t1 jj,t1 kk,t1 ll,t1 mm,t1 nn,t1 oo,t1 pp,t1 qq,t1 rr,t1 ss,t1 tt,t1 uu,t1 vv,t1 ww,t1 xx
ENDTEXT
EXECSCRIPT(csql)
我是直接放到命令里去点确定的,可能不是这样用?不好意思,我才开始学VFP.见笑了。

[ 本帖最后由 shuxin211 于 2015-8-27 02:04 编辑 ]
2015-08-27 01:52
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
你用的可能是VFP6,直接用下面代码吧

CREATE CURSOR t1 (a1 c(1))
INSERT INTO t1 VALUES ("B")
INSERT INTO t1 VALUES ("P")
SELECT aa.a1 bp1,bb.a1 bp2,cc.a1 bp3,dd.a1 bp4,ee.a1 bp5,ff.a1 bp6,gg.a1 bp7,hh.a1 bp8,ii.a1 bp9,jj.a1 bp10,kk.a1 bp11,ll.a1 bp12,mm.a1 bp13,nn.a1 bp14,oo.a1 bp15,pp.a1 bp16,qq.a1 bp17,rr.a1 bp18,ss.a1 bp19,tt.a1 bp20,uu.a1 bq21,vv.a1 bp22,ww.a1 bp23,xx.a1 bp24 FROM t1 aa,t1 bb,t1 cc,t1 dd,t1 ee,t1 ff,t1 gg,t1 hh,t1 ii,t1 jj,t1 kk,t1 ll,t1 mm,t1 nn,t1 oo,t1 pp,t1 qq,t1 rr,t1 ss,t1 tt,t1 uu,t1 vv,t1 ww,t1 xx

坚守VFP最后的阵地
2015-08-27 02:22
shuxin211
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2015-8-26
收藏
得分:0 
以下是引用sdta在2015-8-27 02:22:25的发言:

你用的可能是VFP6,直接用下面代码吧

CREATE CURSOR t1 (a1 c(1))
INSERT INTO t1 VALUES ("B")
INSERT INTO t1 VALUES ("P")
SELECT aa.a1 bp1,bb.a1 bp2,cc.a1 bp3,dd.a1 bp4,ee.a1 bp5,ff.a1 bp6,gg.a1 bp7,hh.a1 bp8,ii.a1 bp9,jj.a1 bp10,kk.a1 bp11,ll.a1 bp12,mm.a1 bp13,nn.a1 bp14,oo.a1 bp15,pp.a1 bp16,qq.a1 bp17,rr.a1 bp18,ss.a1 bp19,tt.a1 bp20,uu.a1 bq21,vv.a1 bp22,ww.a1 bp23,xx.a1 bp24 FROM t1 aa,t1 bb,t1 cc,t1 dd,t1 ee,t1 ff,t1 gg,t1 hh,t1 ii,t1 jj,t1 kk,t1 ll,t1 mm,t1 nn,t1 oo,t1 pp,t1 qq,t1 rr,t1 ss,t1 tt,t1 uu,t1 vv,t1 ww,t1 xx

版主这么晚还不睡啊?我用的是vfp9,是不是要重新建个项目才行呢?先试试再说,早点休息吧,熬夜太晚对身体不好啊。深表感谢。
2015-08-27 02:29
shuxin211
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2015-8-26
收藏
得分:0 
以下是引用sdta在2015-8-27 02:22:25的发言:

你用的可能是VFP6,直接用下面代码吧

CREATE CURSOR t1 (a1 c(1))
INSERT INTO t1 VALUES ("B")
INSERT INTO t1 VALUES ("P")
SELECT aa.a1 bp1,bb.a1 bp2,cc.a1 bp3,dd.a1 bp4,ee.a1 bp5,ff.a1 bp6,gg.a1 bp7,hh.a1 bp8,ii.a1 bp9,jj.a1 bp10,kk.a1 bp11,ll.a1 bp12,mm.a1 bp13,nn.a1 bp14,oo.a1 bp15,pp.a1 bp16,qq.a1 bp17,rr.a1 bp18,ss.a1 bp19,tt.a1 bp20,uu.a1 bq21,vv.a1 bp22,ww.a1 bp23,xx.a1 bp24 FROM t1 aa,t1 bb,t1 cc,t1 dd,t1 ee,t1 ff,t1 gg,t1 hh,t1 ii,t1 jj,t1 kk,t1 ll,t1 mm,t1 nn,t1 oo,t1 pp,t1 qq,t1 rr,t1 ss,t1 tt,t1 uu,t1 vv,t1 ww,t1 xx


用这个代码貌似可以了,真是大神啊,非常感谢,明天再仔细研究,先睡了,你也早点休息吧。
2015-08-27 02:32
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
不知道你想干什么。一行就是一个28位的整数,你要全集数据,临时算就可以了,用不着做成文件。

授人以渔,不授人以鱼。
2015-08-27 10:05
快速回复:请大神帮忙写张表格,就是将总数量为28的两个元素的所有排列与组合都写 ...
数据加载中...
 
   



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

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