我想编个彩票过滤程序:
中国福彩双色球33选6共1107568种组合,比如
1,2,3,4,5,6为第1注
1,2,3,4,5,7为第2注
1,2,3,4,5,8为第3注
28,29,30,31,32,33为第1107568注
今已知某注号码中的6个号码,比如
code[1]=i
code[2]=j
code[3]=k
code[4]=l
code[5]=m
code[6]=n
那么,号码code是1107568注号码中的第几注??
pos=i????j?????k????l????m?????n这个表达式怎么写???
中国福彩双色球33选6共1107568种组合,比如
1,2,3,4,5,6为第1注
1,2,3,4,5,7为第2注
1,2,3,4,5,8为第3注
28,29,30,31,32,33为第1107568注
今已知某注号码中的6个号码,比如
code[1]=i
code[2]=j
code[3]=k
code[4]=l
code[5]=m
code[6]=n
那么,号码code是1107568注号码中的第几注??
pos=i????j?????k????l????m?????n这个表达式怎么写???
你搞得这样诚肯把人都吓着了吧假定code是有序的
http://topic.csdn.net/u/20080620/10/92230368-b2f6-41ab-bbce-713ff31c49ab.html呵呵,我可不是来吵架了
谢谢回复啊!!
我说的不是查询比较,而是直接通过对6个号码的计算得到这注号码在所有组合中的序号
否则这样比较的话不得了:
for k:=1 to 1000000 do
begin
code[1]:=*;code[2]:=*;code[3]:=*;code[4]:=*;code[5]:=*;code[6]:=*;
for i:=1 to 1107568 do
begin
num:=0;
for j:=1 to 6 do
if code[j]=allcode[i,j] then num:=num+1;
if num>=6 then goto out;//如果6个号码都相同,说明找到
end;
out:
pos:=i;//保存序号
end;
之所以不这样写,首先要定义一个超大数组allcode(1107568个元素),另外,我要找的可不是一两次,而是100万次,这样写的话程序立马会死掉!!,所以只能直接算出来,不能找。各位还有什么高招啊,急啊!!!
谢谢回复啊!!
我说的不是查询比较,而是直接通过对6个号码的计算得到这注号码在所有组合中的序号
否则这样比较的话不得了:
for k:=1 to 1000000 do
begin
code[1]:=*;code[2]:=*;code[3]:=*;code[4]:=*;code[5]:=*;code[6]:=*;
for i:=1 to 1107568 do
begin
num:=0;
for j:=1 to 6 do
if code[j]=allcode[i,j] then num:=num+1;
if num>=6 then goto out;//如果6个号码都相同,说明找到
end;
out:
pos:=i;//保存序号
end;
之所以不这样写,首先要定义一个超大数组allcode(1107568个元素),另外,我要找的可不是一两次,而是100万次,这样写的话程序立马会死掉!!,所以只能直接算出来,不能找。各位还有什么高招啊,急啊!!!