| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2947 人关注过本帖, 1 人收藏
标题:请大神帮忙写张表格,就是将总数量为28的两个元素的所有排列与组合都写进表 ...
取消只看楼主 加入收藏
shuxin211
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2015-8-26
收藏
得分:0 
以下是引用吹水佬在2015-8-30 08:41:28的发言:

我的思路也是按你的意思去构想。

不同点是你需要设定一个BP表,我就不需要这个BP表,因目前只理解到如何统计每次选择B或P时统计B和P的数值。当时考虑过,只统计B和P的数值,是否可以不需要这个BP表。BP表至少要28*268435456个元素,对于VFP来说,规模不算小,不一定好处理,但比较直观且算法简单,直接读写表的字段就可以。

测试时采用一个计算表 bpb 来处理:
CREATE CURSOR bpb (bpn I, bp1 I, bp2 I, bpi I)
其中:
bpn 就是那个BP表每条记录转换成10进制的数值,如果是完整的如0,1,2,.....,bpn可不要,直接从记录号换算。
bp1 这个是每次选择B或P后,需确定用来做比对的BP记录(BP表中的那个字段的记录)。
bp2 这个是比对后的BP记录,用来统计B和P数值。
bpi 这个是存放上次比对计数结果和本次比对后的计数结果,也就是存放比对前后的计数结果。

在此将BP表转换成10进制数值来表示,把对表字段的读取变为对数值的位的读取,主要目的是想减少资源的占用,减少BP表装载时的耗费。但运用起来未必高效,它需要做数据转换操作。

如果对数据的位操作运算不了解,可能会感觉有点复杂。数据的位操作运算是计算机最基本的运算,最好弄懂它,它需要对二进制数有所认识。

吹水版主的理解是完全正确的,我的思路其实就是延续了excel里面的设计思路,一环接着一环的往后走然后得到结果就行了,过程很直观,你说的数据量的问题将28减少到26应该差不多了,6000多万条记录,是28的四分之一,我最开始设计的是B+P=32,接近43亿的数据量,即使是在sql server里恐怕也是个不小的工程,如果用sql server的话还得结合其它的开发语言,难度就更大了,所以压缩到B+P=28,希望在VFP里面实现,现在看来可能得压缩到26才行。用我的思路的话解决BP表与K线记录表循环对比得出BP各自的适时数量,问题基本就解决了,后面的事情比较简单。用你的思路来做肯定更科学,优化的比较好,毕竟省了几个环节,虽然涉及到数据转换,总体效率应该会有提升,但是对于菜鸟来说难以完成。我在用excel的时候就不喜欢对数据位进行操作,因为直接对单元格进行操作要简单直接的多,菜鸟都是这样的吧。
2015-08-30 18:09
快速回复:请大神帮忙写张表格,就是将总数量为28的两个元素的所有排列与组合都写 ...
数据加载中...
 
   



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

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