如下是一个彩票软件中的公式杀码编写说明,请教高手该如何编码才能实现这种功能?请帮忙给个思路?谢谢!如能帮忙写出样本代码更加感激不尽!现在头痛的问题是开奖数据文件(历史开奖号)和基本概率项(例如: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编辑过]