大乐透,复式和胆拖投注兑奖算法

unit udltdj;

interface

uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Data.DB, Vcl.Grids,
Vcl.DBGrids, Vcl.DBCtrls, Vcl.StdCtrls, Vcl.ComCtrls;

type
Tfrmdltdj = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
DBGrid1: TDBGrid;
ListBox1: TListBox;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
Panel4: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
ComboBox3: TComboBox;
Button1: TButton;
Panel5: TPanel;
Label5: TLabel;
ComboBox5: TComboBox;
Label6: TLabel;
ComboBox6: TComboBox;
Button2: TButton;
ComboBox7: TComboBox;
ComboBox8: TComboBox;
Label7: TLabel;
Label8: TLabel;
DBNavigator1: TDBNavigator;
ComboBox4: TComboBox;
Label4: TLabel;
Label9: TLabel;
Label10: TLabel;
ComboBox9: TComboBox;
ComboBox10: TComboBox;
ComboBox11: TComboBox;
ComboBox12: TComboBox;
Label11: TLabel;
Label12: TLabel;
procedure FormShow(Sender: TObject);
procedure FormHide(Sender: TObject);
procedure ComboBox2DropDown(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure ComboBox3DropDown(Sender: TObject);
procedure ComboBox5DropDown(Sender: TObject);
procedure ComboBox7DropDown(Sender: TObject);
procedure ComboBox6DropDown(Sender: TObject);
procedure ComboBox8DropDown(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure ComboBox1DropDown(Sender: TObject);
procedure ComboBox4DropDown(Sender: TObject);
procedure ComboBox9DropDown(Sender: TObject);
procedure ComboBox10DropDown(Sender: TObject);
procedure ComboBox11DropDown(Sender: TObject);
procedure ComboBox12DropDown(Sender: TObject);
private
function ProcPZCount(n,r:integer):int64;
public
{ Public declarations }
end;

var
frmdltdj: Tfrmdltdj;

implementation

{$R .dfm}
uses ulottodata;
function Tfrmdltdj.ProcPZCount(n,r:integer):int64;
var
I,J:integer;
I0,J0:Int64;
begin
if ((r<0)or(n<0)or(n<r)) then Result:=0 else
if (r=0)or(n=0) then Result:=1 else
begin
I0:=1; J0:=1;
For I:=n downto n-r+1 do
begin
J0:=(n-I+1);
I0:=(I
I0) div J0;
end;
Result:=I0;
end;
end;

procedure Tfrmdltdj.Button1Click(Sender: TObject);
var
n1,n2,r1,r2,n3,n4:Integer;
sr:string;
t1,t2,t3,t4:Int64;
ct,cc,hct,hcc:Int64;
prize,tprize:double;
sc,s1,s2:string;
begin
listbox1.Items.Clear;
n1:=strtoint(combobox1.Text); //前区选号
n2:=strtoint(combobox2.Text); //后区选号
// sr:=combobox1.Text;
r1:=5; //投注类型
r2:=2;
n3:=strtoint(combobox3.Text); //前区命中
n4:=strtoint(combobox4.Text); //后区命中
t1:=ProcPZCount(n1,r1);
t2:=ProcPZCount(n2,r2);
listbox1.Items.Add(‘投注注数:’+inttostr(t1t2));
listbox1.Items.Add(‘投注金额:’+inttostr(2
t1*t2));
dmlottodata.FDQuery4.Close;
dmlottodata.FDQuery4.SQL.Clear;
dmlottodata.FDQuery4.SQL.Add(‘select * from “main”.“dltdj” ‘);
dmlottodata.FDQuery4.SQL.Add(’ where (cc<=’+inttostr(n3)+‘) and (hcc<=’+inttostr(n4)+‘)’);
dmlottodata.FDQuery4.Open;
dmlottodata.FDQuery4.First;
tprize:=0;
while not dmlottodata.FDQuery4.Eof do
begin
sc:=dmlottodata.FDQuery4.FieldByName(‘cname’).asstring+‘:’;
ct:=dmlottodata.FDQuery4.FieldByName(‘ct’).asInteger;
cc:=dmlottodata.FDQuery4.FieldByName(‘cc’).asInteger;
hct:=dmlottodata.FDQuery4.FieldByName(‘hct’).asInteger;
hcc:=dmlottodata.FDQuery4.FieldByName(‘hcc’).asInteger;
prize:=dmlottodata.FDQuery4.FieldByName(‘prize’).asfloat;
t3:=ProcPZCount(n3,cc)*ProcPZCount(n1-n3,(r1-cc));
t4:=ProcPZCount(n4,hcc)*ProcPZCount(n2-n4,(r2-hcc));

// t2:= ProcPZCount(n2,cc)*ProcPZCount(n1-n2,(r1-cc));

 listbox1.Items.Add(sc+'注数:'+inttostr(t3*t4)+'奖金:'+floattostr(t3*t4*prize));

 tprize:=tprize+t3*t4*prize;


 dmlottodata.FDQuery4.next;

end;
listbox1.Items.Add(‘总中奖金额:’+floattostr(tprize));
listbox1.Items.Add(‘盈亏金额:’+floattostr(tprize-2t1t2));
end;

procedure Tfrmdltdj.Button2Click(Sender: TObject);
var
n1,n2,n3,n4,rn:Integer;
m1,m2,m3,m4,rm:Integer;

t1,t2,tn,tm:Int64;
ct,cc,hct,hcc:Int64;
prize,tprize:double;
sc,s1,s2:string;
begin
listbox1.Items.Clear;
rn:=5; //投注类型
rm:=2;
n1:=strtoint(combobox5.Text); //前区胆选个数
n2:=strtoint(combobox9.Text); //前区胆命中个数
n3:=strtoint(combobox7.Text); //前区拖选个数
n4:=strtoint(combobox10.Text); //前区拖命中个数

m1:=strtoint(combobox6.Text); //后区胆选个数
m2:=strtoint(combobox11.Text); //后区胆命中个数
m3:=strtoint(combobox8.Text); //后区拖选个数
m4:=strtoint(combobox12.Text); //后区拖命中个数

t1:=ProcPZCount(n3,rn-n1);
t2:=ProcPZCount(m3,rm-m1);

listbox1.Items.Add(‘投注注数:’+inttostr(t1t2));
listbox1.Items.Add(‘投注金额:’+inttostr(2
t1*t2));
dmlottodata.FDQuery4.Close;
dmlottodata.FDQuery4.SQL.Clear;
dmlottodata.FDQuery4.SQL.Add(‘select * from “main”.“dltdj” ‘);
dmlottodata.FDQuery4.SQL.Add(’ where (cc<=’+inttostr(n2+n4)+‘) and (hcc<=’+inttostr(m2+m4)+‘)’);
dmlottodata.FDQuery4.Open;
dmlottodata.FDQuery4.First;
tprize:=0; tn:=0;tm:=0;
while not dmlottodata.FDQuery4.Eof do
begin
sc:=dmlottodata.FDQuery4.FieldByName(‘cname’).asstring+‘:’;
ct:=dmlottodata.FDQuery4.FieldByName(‘ct’).asInteger;
cc:=dmlottodata.FDQuery4.FieldByName(‘cc’).asInteger;
hct:=dmlottodata.FDQuery4.FieldByName(‘hct’).asInteger;
hcc:=dmlottodata.FDQuery4.FieldByName(‘hcc’).asInteger;

 prize:=dmlottodata.FDQuery4.FieldByName('prize').asfloat;

// t2:= ProcPZCount(n2,cc)*ProcPZCount(n4,(r-cc));

 if (rn>=cc+n1-n2) and (rm>=hcc+m1-m2) then
 begin
     tn:=ProcPZCount(n4,cc-n2)*ProcPZCount(n3-n4,rn-cc-n1+n2);
     tm:=ProcPZCount(m4,hcc-m2)*ProcPZCount(m3-m4,rm-hcc-m1+m2);
 end;

 listbox1.Items.Add(sc+'注数:'+inttostr(tn*tm)+'奖金:'+floattostr(tn*tm*prize));

 tprize:=tprize+tn*tm*prize;


 dmlottodata.FDQuery4.next;

end;
listbox1.Items.Add(‘总中奖金额:’+floattostr(tprize));
listbox1.Items.Add(‘盈亏金额:’+floattostr(tprize-2t1t2));
end;

procedure Tfrmdltdj.ComboBox10DropDown(Sender: TObject);
var
I,J: Integer;
S: string;
begin

J:=strtoint(combobox9.Text) ;
Combobox10.items.clear;
for I := 0 to 5-J do
begin
s:=inttostr(I);

 combobox10.Items.Add(s);

end;
end;

procedure Tfrmdltdj.ComboBox11DropDown(Sender: TObject);
var
I,J: Integer;
S: string;
begin

J:=strtoint(combobox6.Text) ;
Combobox11.items.clear;
for I := 0 to J do
begin
s:=inttostr(I);

 combobox11.Items.Add(s);

end;
end;

procedure Tfrmdltdj.ComboBox12DropDown(Sender: TObject);
var
I,J: Integer;
S: string;
begin

J:=strtoint(combobox11.Text) ;
Combobox12.items.clear;
for I := 0 to 2-J do
begin
s:=inttostr(I);

 combobox12.Items.Add(s);

end;
end;
procedure Tfrmdltdj.ComboBox1DropDown(Sender: TObject);
var
I: Integer;
S: string;
begin
Combobox1.items.clear;
for I := 5 to 35 do
begin
s:=inttostr(I);
//if i<10 then s:=‘0’+s;
combobox1.Items.Add(s);
end;
end;

procedure Tfrmdltdj.ComboBox2DropDown(Sender: TObject);
var
I: Integer;
S: string;
begin
Combobox2.items.clear;
for I := 2 to 12 do
begin
s:=inttostr(I);
//if i<10 then s:=‘0’+s;
combobox2.Items.Add(s);
end;
end;

procedure Tfrmdltdj.ComboBox3DropDown(Sender: TObject);
var
I: Integer;
S: string;
begin

Combobox3.items.clear;
for I := 0 to 5 do
begin
s:=inttostr(I);

 combobox3.Items.Add(s);

end;
end;

procedure Tfrmdltdj.ComboBox4DropDown(Sender: TObject);
var
I: Integer;
S: string;
begin

Combobox4.items.clear;
for I := 0 to 2 do
begin
s:=inttostr(I);

 combobox4.Items.Add(s);

end;
end;

procedure Tfrmdltdj.ComboBox5DropDown(Sender: TObject);
var
I: Integer;
S: string;
begin

Combobox5.items.clear;
for I := 0 to 4 do
begin
s:=inttostr(I);

 combobox5.Items.Add(s);

end;
end;

procedure Tfrmdltdj.ComboBox6DropDown(Sender: TObject);
var
I: Integer;
S: string;
begin

Combobox6.items.clear;
for I := 0 to 1 do
begin
s:=inttostr(I);

 combobox6.Items.Add(s);

end;
end;

procedure Tfrmdltdj.ComboBox7DropDown(Sender: TObject);
var
I,J: Integer;
S: string;
begin
J:=strtoint(combobox5.Text) ;
Combobox7.items.clear;
for I := 5-J to 35-J do
begin
s:=inttostr(I);
// if i<10 then s:=‘0’+s;
combobox7.Items.Add(s);
end;
end;

procedure Tfrmdltdj.ComboBox8DropDown(Sender: TObject);
var
I,J: Integer;
S: string;
begin

J:=strtoint(combobox6.Text) ;
Combobox8.items.clear;
for I := 2-J to 12-J do
begin
s:=inttostr(I);

 combobox8.Items.Add(s);

end;
end;

procedure Tfrmdltdj.ComboBox9DropDown(Sender: TObject);
var
I,J: Integer;
S: string;
begin

J:=strtoint(combobox5.Text) ;
Combobox9.items.clear;
for I := 0 to J do
begin
s:=inttostr(I);

 combobox9.Items.Add(s);

end;
end;

procedure Tfrmdltdj.FormHide(Sender: TObject);
begin
dmlottodata.FDTable5.Close;
end;

procedure Tfrmdltdj.FormShow(Sender: TObject);
begin
dmlottodata.FDTable5.open;
end;

initialization
RegisterClass(Tfrmdltdj);
finalization
UnRegisterClass(Tfrmdltdj);
end.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值