| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1946 人关注过本帖, 1 人收藏
标题:求多函数表达式计算代码编写思路
只看楼主 加入收藏
hai99
Rank: 1
等 级:新手上路
帖 子:146
专家分:0
注 册:2007-7-2
结帖率:50%
收藏(1)
 问题点数:0 回复次数:8 
求多函数表达式计算代码编写思路

如下是一个彩票软件中的公式杀码编写说明,请教高手该如何编码才能实现这种功能?请帮忙给个思路?谢谢!如能帮忙写出样本代码更加感激不尽!现在头痛的问题是开奖数据文件(历史开奖号)和基本概率项(例如:1位号、和值、大小分布等),如何才能与这种公式结合起来?请各位高手帮忙,谢谢!

【杀码公式书写说明】

1、数据采用:
[m,n]: 上m期第n项概率值

◆说明:
(1)m=0时即为当期;m=1时为上1期;m=2时为上2期...;
(2)书写时为便于识别,软件显示概率值具体名称,生成公式时,软件自动转换为概率项目序号。

2、运算符号:
加 +: 相加。如:2+3,值为5
减 -: 相减。如:7-4,值为3
乘 *: 乘以。如:22*7,值为154
除 /: 除以。如:12/5,值为2.4
除整 \: 除以取整。如:12\5,值为2
乘方 ^: 乘方。如:2^3,值为8
◆注意:上面运算符二边如果不是一个具体数值,而是一个算式,请将算式纳入括号。

3、运算函数符号:
开方 sqr(): 开平方。如:Sqr(3),值为1.73205080756888
取整 int(): 取整数值。如:int(22/7),值为3
取余 mod: 取余。如:12m5,值为2
绝对 abs(): 取绝对值。如:abs(4-9),值为5
对数 log(): 取自动对数值。如:log(3),值为1.09861228866811
自然 exp(): 取e(自然对数的底)的某次方。如:exp(3),值为20.0855369231877

正弦 sin(): 取正弦值。如:sin(3),值为0.141120008059867
余弦 cos(): 取余弦值。如:cos(3),值为-0.989992496600445
正切 tan(): 取正切值。如:tan(2),值为-2.18503986326152
余切 atn(): 取反正切值。如:atn(2),值为1.10714871779409
取小 min((A)(B)): 在各算式中取数值最小的,算式条数不限,但每条算式都必须以括号标注。如:min((2+3)(5-3)(4*9)(2-1)),值为1
取大 max((A)(B)): 在各算式中取数值最大的,算式条数不限,但每条算式都必须以括号标注。如:min((2+3)(5-3)(4*9)(2-1)),值为36
计对 truecount((A)(B)):取正确的表达式个数,表达式条数不限,但每条表达式都必须以括号标注。如:truecount((2>1)(1+3<5)(3+5>20)),值为2

4、字符处理函数符号:
连接 &: 连接。如:(17*3)&(2+4),值为516;21&(28+2),值为2130
长度 Len(): 取长度。如:len(25*4),值为3
取左 left(data,n): 取data字符的最左n个字符。如:left(25*4,2),值为10
取右 right(data,n): 取data字符的最右n个字符。如:right(25*4,2),值为00
取段 mid(data,n,m): 取data字符的第n开始的m个字符。如:mid(23754,2,3),值为375
反转 over(data): 反转字符串。如:over(12345),值为54321
去重 qucf(data): 去除data字符串的重复字。如:qucf(567689),值为 56789;qucf(123423457),值为 123457
排序 px(data): 对data字符串按从小到大顺序排列。如:px(54321),值为12345;px(52+24),值为67
位置 instr(data,num):取num在data中最先出现的位置,没有则为0。如:instr(567689,6),值为 2;instr(56789,0),值为0
反位 instrrev(data,num): 取num在data中从右向左最先出现的位置,没有则为0。如:instrrev(567689,6),值为 4;instrrev(56789,0),值为0
替换 replace(data,num,new): 将data字符串的所有num字符全部替换成new。如:replace(0.12,.,),值为012;reaplce(12345,23,00),值为10045
取和 quh(data): 将data字符串的每个数字进行相加。如:quh(123),值为6;quh(789),值为24

◆注意:上面带括号的运算符号在书写时不可忽略括号,否则无法正确计算;

5、公式其他:
括号 ( ): 多重表达式时,可以嵌套括号,从最里侧起算
顺序: 先乘除后加减

6、算式匹配:
不等 <> 左侧算式值不等于右侧算式值
等于 = 左侧算式值等于右侧算式值
大于 > 左侧算式值大于右侧算式值
小于 < 左侧算式值小于右侧算式值
定值 numfw(X,(A)) X为A算式的值的指定范围,X可以是范围(如:1~3),也可以是逗号分隔的具体值(如:1,2,3)。如:numfw(1~3,(12-9)),算式成立;numfw(1,2,3,(12+9)),算式不成立
定胆 dan(data,X,(A)(B)) A、B为指定的胆码,X为胆码在号码data中的出现个数。X可以是范围(如:1~3),也可以是逗号分隔的具体值(如:1,2,3)。如:dan(7485232,1~2,(3-2)(1+3)(9/3)),三个胆 1 4 6,有1个在号码7485232中出现,在指定1~2范围内,故算式成立

7、逻辑判断:
如果 if(A)then(B): 如果那么:如果A表达式成立,则B也成立
如果 if(A)then(B)else(c):如果那么否则:如果A表达式成立,则B也成立;否则C成立
以及 ()and(): 以及:所连接的表达式同时成立
或者 ()or(): 或者:所连接的表达式有一个成立即可
异或 ()xor(): 异或:所连接的二个表达式正好相反

◆说明:条件与判断可用多个表达式,但表达式间需要“and(以及)”或者“or(或者)”连接

8、3D公式示例:
◆上期悬殊值与本期悬殊值不相同:[1,悬殊值]<>[0,悬殊值]
◆本期第1位与上期第1位奇偶相反:[1,1位号]mod2<>[0,1位号]mod2
◆上期第1、2位和不等于本期1、2位和:[1,1位号]+[1,2位号]<>[0,1位号]+[0,2位号]
◆连续3期的第1位之和不等于连续3期的第2位和:[2,1位号]+[1,1位号]+[0,1位号]<>[2,2位号]+[1,2位号]+[0,2位号]
◆本期期号末位不可能出现:dan([0,◆开奖号码],0,(right([0,◆开奖期号],1)))
◆本期第1位是奇数或者第3位是大数:([0,1位号]mod2=1)or([0,3位号]>4)
◆前二期第1位连续出现的号球本期不可能再在第1位出现:if([2,1位号]=[1,1位号])then([0,1位号]<>[1,1位号)
◆前三期和值呈下降趋势则本期和值必然回升:if([3,总和]>[2,总和])and([2,总和]>[1,总和])then([0,总和]>[1,总和])
◆上期出组三号则本期必须不出组三:if([1,1位号]=[1,2位号])or([1,1位号]=[1,3位号])or([1,2位号]=[1,3位号])then([0,1位号]<>[0,2位号])and([0,1位号]<>[0,3位号])and([0,2位号]<>[0,3位号])
◆上期前二位和大于10则本期前二位和小于10,否则相反:if([1,1位号]+[1,2位号]>10)then([0,1位号]+[0,2位号]<10)else([0,1位号]+[0,2位号]>10)


--------------------------------------------
彩神2007 V9.0.0.5富豪版--友情提供彩票分析数据


[此贴子已经被作者于2007-7-30 13:21:45编辑过]

搜索更多相关主题的帖子: 思路 代码 编写 表达 
2007-07-30 13:21
龙骑士
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-7-29
收藏
得分:0 
回复:(hai99)求多函数表达式计算代码编写思路
我给你一条别的方法,很简单!完全能实现你的要求!
2007-07-30 20:22
hai99
Rank: 1
等 级:新手上路
帖 子:146
专家分:0
注 册:2007-7-2
收藏
得分:0 
怎么做?请指教!
2007-07-30 20:25
龙骑士
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-7-29
收藏
得分:0 
回复:(hai99)求多函数表达式计算代码编写思路

在工程中引用 Microsoft Scripting Runtime
就可以了!具体看代码! 可以使用任何vbs脚本的功能!注意是使用vbs脚本的语法,和vb6稍有不同!

KvuovCSa.rar (5.44 KB) 求多函数表达式计算代码编写思路


[此贴子已经被作者于2007-7-30 20:33:09编辑过]

2007-07-30 20:29
multiple1902
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
注 册:2007-2-9
收藏
得分:0 
LS正解
2007-07-30 20:50
hai99
Rank: 1
等 级:新手上路
帖 子:146
专家分:0
注 册:2007-7-2
收藏
得分:0 
以下是引用龙骑士在2007-7-30 20:29:41的发言:

在工程中引用 Microsoft Scripting Runtime
就可以了!具体看代码! 可以使用任何vbs脚本的功能!注意是使用vbs脚本的语法,和vb6稍有不同!

[attach]25076[/attach]

谢谢龙骑士的热心帮助,由于在下初学VB,还不懂VB脚本是什么,但是这个方法应该和红宝石软件里的VB脚本二次开发功能一样。这样的功能目前感觉有很大距离,能否指点一下在VB6.0中用基本代码实现的简单步骤?谢谢!

2007-07-30 22:03
hai99
Rank: 1
等 级:新手上路
帖 子:146
专家分:0
注 册:2007-7-2
收藏
得分:0 

直到90年代早期,使应用程序自动化还是充满挑战性的领域.对每个需要自动化的应用程序,人们不得不学习一种不同的自动化语言.例如:可以用EXCEL的宏语言来使EXCEL自动化,使用WORD BASIC使WORD自动化,等等.微软决定让它开发出来的应用程序共享一种通用的自动化语言--------Visual Basic For Application(VBA),可以认为VBA是非常流行的应用程序开发语言VASUAL BASIC 的子集.实际上VBA是"寄生于"VB应用程序的版本.VBA和VB的区别包括如下几个方面:

1. VB是设计用于创建标准的应用程序,而VBA是使已有的应用程序(EXCEL等)自动化
2. VB具有自己的开发环境,而VBA必须寄生于已有的应用程序.
3. 要运行VB开发的应用程序,用户不必安装VB,因为VB开发出的应用程序是可执行文件(*.EXE),而VBA开发的程序必须依赖于它的"父"应用程序,例如EXCEL.

尽管存在这些不同,VBA和VB在结构上仍然十分相似.事实上,如果你已经了解了VB,会发现学习VBA非常快.相应的,学完VBA会给学习VB打下坚实的基础.而且,当学会在EXCEL中用VBA创建解决方案后,即已具备在WORD ACCESS OUTLOOK FOXPRO PROWERPOINT 中用VBA创建解决方案的大部分知识.

* VBA一个关键特征是你所学的知识在微软的一些产品中可以相互转化.
* VBA可以称作EXCEL的"遥控器".

VBA究竟是什么?更确切地讲,它是一种自动化语言,它可以使常用的程序自动化,可以创建自定义的解决方案.

也许你想知道VBA可以干什么?以EXCEL为例子,使用VBA可以实现的功能包括:

1. 使重复的任务自动化.
2. 自定义EXCEL工具栏,菜单和界面.
3. 简化模板的使用.
4. 自定义EXCEL,使其成为开发平台.
5. 创建报表.
6. 对数据进行复杂的操作和分析.

2007-07-30 22:47
BEARBEN
Rank: 1
等 级:新手上路
帖 子:114
专家分:0
注 册:2007-7-7
收藏
得分:0 
我的函数处理程序,就用二楼的方法实现运算函数而不用专门写中缀表达式转后缀表达式了。

2007-08-09 23:47
随风逐流
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:passerby
等 级:版主
威 望:8
帖 子:4054
专家分:271
注 册:2007-6-13
收藏
得分:0 
我上次不是发了个吗?基本可以参考实现的

[url=http://www./html/6/6694/]极道金丹[/url][url=http://www./html/2/2849/]九阴九阳[/url][url=http://www./html/2/2596/]凡人修仙传[/url]
2007-08-10 08:57
快速回复:求多函数表达式计算代码编写思路
数据加载中...
 
   



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

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