using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
using System.Collections;
using CB.Common;
namespace CB.Web.tool_old
{
public partial class dlt_qss_post : System.Web.UI.Page
{
public int zhushu;
public string type;
public string message;
public bool flag = true;
public string filename = "大乐透在线缩水结果";
public System.Text.StringBuilder NumberString = new System.Text.StringBuilder();
public System.Text.StringBuilder numValue = new System.Text.StringBuilder();
private string qhm, qdm, hhm, hdm;
private string ac;
private int qbjo, qejo; //前区首位号码@前区末位号码
private int hbjo, hejo; //后区首位号码@后区末位号码
private int qbhz, qehz, hbhz, hehz; //前区+后区的开始--结束和值
private string qjob, qdxb, qzhb, qlh, ws; //前区奇偶比,大小比,质合比,连号组数,尾数不同号码
private string hjob, hdxb, hzhb, hlh; //后区奇偶比,大小比,质合比,连号组数
protected void Page_Load(object sender, EventArgs e)
{
GetValue();
if (string.IsNullOrEmpty(qhm) || string.IsNullOrEmpty(hhm))
{
message = "您没有选择任何前区号码或后区号码...";
flag = false;
return;
}
else if (string.IsNullOrEmpty(ac) && qbjo == 0 && qejo == 0 && string.IsNullOrEmpty(qjob) && string.IsNullOrEmpty(qdxb) && string.IsNullOrEmpty(qzhb) && string.IsNullOrEmpty(qlh) && string.IsNullOrEmpty(ws) && qbhz == 0 && qehz == 0)
{
message = "您没有选择前区过滤条件...";
flag = false;
return;
}
else if (hbjo == 0 && hejo == 0 && string.IsNullOrEmpty(hjob) && string.IsNullOrEmpty(hdxb) && string.IsNullOrEmpty(hzhb) && string.IsNullOrEmpty(hlh) && hbhz == 0 && hehz == 0)
{
message = "您没有选择后区过滤条件...";
flag = false;
return;
}
else
{
string[] qhms = qhm.Split(',');
string[] hhms = hhm.Split(',');
string[] qdms = qdm.Split(',');
string[] hdms = hdm.Split(',');
ArrayList qresult = new ArrayList();
ArrayList hresult = new ArrayList();
ArrayList qlist = new ArrayList(qhms);
ArrayList hlist = new ArrayList(hhms);
ArrayList show_tmp = new ArrayList();
ArrayList show_tmp2 = new ArrayList();
int qdmlen = 0;
if (qdms != null && !string.IsNullOrEmpty(qdms[0]))
qdmlen = qdms.Length;
else
qdmlen = 0;
int hdmlen = 0;
if (qdms != null && !string.IsNullOrEmpty(qdms[0]))
qdmlen = qdms.Length;
else
qdmlen = 0;
ArrayList qtemplist = getCombination(qlist, 5 - qdmlen);
ArrayList htemplist = getCombination(hlist, 2 - hdmlen);
#region 生成并过滤前区号码
//生成前区所有号码组合
for (int i = 0; i < qtemplist.Count; i++)
{
string temp = string.Empty;
show_tmp = Add_jiben_danma(qtemplist[i].ToString(), qdm);
show_tmp.Sort();
for (int j = 0; j < show_tmp.Count; j++)
{
if (j == (show_tmp.Count - 1))
{
temp = temp + show_tmp[j].ToString();
}
else
{
temp = temp + show_tmp[j].ToString() + ",";
}
}
if (!string.IsNullOrEmpty(temp))
qresult.Add(temp);
}
qresult = FilterAC(ac, qresult); //过滤AC值
qresult = FilterBJO(qbjo, qresult); //过滤前首位号码的奇偶值
qresult = FilterEJO(qejo, qresult); //过滤前末位号码的奇偶值
qresult = FilterHZ(qbhz, qehz, qresult); //过滤前区和值范围
qresult = FilterJOB(qjob, qresult); //奇偶比
qresult = FilterDXB(qdxb, qresult); //大小比
qresult = FilterZHB(qzhb, qresult); //质合比
qresult = FilterLH(qlh, qresult); //连号个数
qresult = FilterWS(ws, qresult); //尾数
#endregion
#region 生成并过滤后区所有号码
for (int i = 0; i < htemplist.Count; i++)
{
string temp = string.Empty;
show_tmp = Add_jiben_danma(htemplist[i].ToString(), hdm);
show_tmp.Sort();
for (int j = 0; j < show_tmp.Count; j++)
{
if (j == (show_tmp.Count - 1))
{
temp = temp + show_tmp[j].ToString();
}
else
{
temp = temp + show_tmp[j].ToString() + ",";
}
}
if (!string.IsNullOrEmpty(temp))
hresult.Add(temp);
}
//后区号码过滤
hresult = FilterBJO(hbjo, hresult);
hresult = FilterEJO(hejo, hresult);
hresult = FilterHZ(hbhz, hehz, hresult);
hresult = FilterJOB(hjob, hresult);
hresult = FilterDXB(hdxb, hresult);
hresult = FilterZHB(hzhb, hresult);
hresult = FilterLH(hlh, hresult);
#endregion
zhushu = qresult.Count * hresult.Count;
int cc = 0;
for (int i = 0; i < qresult.Count; i++)
{
for (int j = 0; j < hresult.Count; j++)
{
NumberString.Append(qresult[i].ToString() + "," + hresult[j].ToString() + " ");
numValue.Append(qresult[i].ToString() + "," + hresult[j].ToString() + "@");
cc++;
if (cc % 4 == 0)
NumberString.Append("
");
}
}
}
}
#region 尾数过滤
///
/// 尾数过滤
///
private ArrayList FilterWS(string ws, ArrayList Number)
{
ArrayList Numbertemp = new ArrayList();
ArrayList wslist = new ArrayList(ws.Split(','));
int wscount = 0;
if (!string.IsNullOrEmpty(ws))
{
for (int i = 0; i < Number.Count; i++)
{
wscount = ToolsUtils.GetWSCount(Number[i].ToString().Split(','));
if (wslist.Contains(wscount.ToString()))
Numbertemp.Add(Number[i]);
}
Number.Clear();
Number = Numbertemp;
}
return Number;
}
#endregion
#region 连号数
///
/// 连号数
///
private ArrayList FilterLH(string lh, ArrayList Number)
{
ArrayList Numbertemp = new ArrayList();
ArrayList lhlist = new ArrayList(lh.Split(','));
int lhcount = 0;
if (!string.IsNullOrEmpty(lh))
{
for (int i = 0; i < Number.Count; i++)
{
lhcount = ToolsUtils.GetLHCount(Number[i].ToString().Split(','));
if (lhlist.Contains(lhcount.ToString()))
Numbertemp.Add(Number[i]);
}
Number.Clear();
Number = Numbertemp;
}
return Number;
}
#endregion
#region 质合比
///
/// 质合比
///
private ArrayList FilterZHB(string zhb, ArrayList Number)
{
ArrayList Numbertemp = new ArrayList();
ArrayList zhlist = new ArrayList(zhb.Split(','));
string zhbStr = string.Empty;
if (!string.IsNullOrEmpty(zhb))
{
for (int i = 0; i < Number.Count; i++)
{
zhbStr = ToolsUtils.GetZHB(Number[i].ToString().Split(','));
if (zhlist.Contains(zhbStr))
Numbertemp.Add(Number[i]);
}
Number.Clear();
Number = Numbertemp;
}
return Number;
}
#endregion
#region 奇偶比
///
/// 奇偶比
///
private ArrayList FilterJOB(string job, ArrayList Number)
{
ArrayList Numbertemp = new ArrayList();
ArrayList jolist = new ArrayList(job.Split(','));
string jobStr = string.Empty;
if (!string.IsNullOrEmpty(job))
{
for (int i = 0; i < Number.Count; i++)
{
jobStr = ToolsUtils.GetJOB(Number[i].ToString().Split(','));
if (jolist.Contains(jobStr))
Numbertemp.Add(Number[i]);
}
Number.Clear();
Number = Numbertemp;
}
return Number;
}
#endregion
#region 大小比
///
/// 大小比
///
private ArrayList FilterDXB(string dxb, ArrayList Number)
{
ArrayList Numbertemp = new ArrayList();
ArrayList dxlist = new ArrayList(dxb.Split(','));
string dxbStr = string.Empty;
if (!string.IsNullOrEmpty(dxb))
{
for (int i = 0; i < Number.Count; i++)
{
dxbStr = ToolsUtils.GetDXB(Number[i].ToString().Split(','));
if (dxlist.Contains(dxbStr))
Numbertemp.Add(Number[i]);
}
Number.Clear();
Number = Numbertemp;
}
return Number;
}
#endregion
#region 过滤和值
///
/// 和值范围过滤
///
private ArrayList FilterHZ(int bhz, int ehz, ArrayList Number)
{
ArrayList Numbertemp = new ArrayList();
if (bhz > 0 && ehz > 0)
{
int hz = 0;
for (int i = 0; i < Number.Count; i++)
{
hz = 0;
string[] strs = Number[i].ToString().Split(',');
for (int j = 0; j < strs.Length; j++)
{
hz = hz + Convert.ToInt32(strs[j]);
}
if (hz >= bhz && hz <= ehz)
Numbertemp.Add(Number[i]);
}
Number.Clear();
Number = Numbertemp;
}
return Number;
}
#endregion
#region 过滤尾数奇偶
///
/// 过滤尾数奇偶
///
private ArrayList FilterEJO(int qejo, ArrayList Number)
{
ArrayList Numbertemp = new ArrayList();
if (qejo > 0)
{
for (int i = 0; i < Number.Count; i++)
{
string[] strs = Number[i].ToString().Split(',');
int s = Convert.ToInt32(strs[strs.Length - 1]);
//奇数
if (qejo == 1)
{
if (!(s % 2 == 0))
Numbertemp.Add(Number[i]);
}
//偶数
if (qejo == 2)
{
if ((s % 2 == 0))
Numbertemp.Add(Number[i]);
}
}
Number.Clear();
Number = Numbertemp;
}
return Number;
}
#endregion
#region 过滤首位奇偶
///
/// 过滤首位奇偶
///
private ArrayList FilterBJO(int qbjo, ArrayList Number)
{
ArrayList Numbertemp = new ArrayList();
if (qbjo > 0)
{
for (int i = 0; i < Number.Count; i++)
{
int s = Convert.ToInt32(Number[i].ToString().Split(',')[0]);
//奇数
if (qbjo == 1)
{
if (!(s % 2 == 0))
Numbertemp.Add(Number[i]);
}
//偶数
if (qbjo == 2)
{
if ((s % 2 == 0))
Numbertemp.Add(Number[i]);
}
}
Number.Clear();
Number = Numbertemp;
}
return Number;
}
#endregion
#region 过滤AC值
private ArrayList FilterAC(string ac, ArrayList Number)
{
ArrayList aclist = new ArrayList(ac.Split(','));
ArrayList Numbertemp = new ArrayList();
int ac_tmp; //存放AC值变量
if (!string.IsNullOrEmpty(ac))
{
for (int i = 0; i < Number.Count; i++)
{
ac_tmp = ToolsUtils.GetAC(Number[i].ToString().Split(','));
if (aclist.Contains(ac_tmp.ToString()))
{
Numbertemp.Add(Number[i]);
}
}
Number.Clear();
Number = Numbertemp;
}
return Number;
}
#endregion
#region 生成自然组合
private static ArrayList getCombination(ArrayList SampleList, int m)
{
if (m == 1)
{
return SampleList;
}
ArrayList result = new ArrayList();
if (SampleList.Count == m)
{
StringBuilder temp_sb = new StringBuilder();
foreach (string s in SampleList)
{
temp_sb.Append(s + ",");
}
temp_sb.Remove(temp_sb.Length - 1, 1);
result.Add(temp_sb.ToString());
return result;
}
string temp_firstelement = SampleList[0].ToString();
SampleList.RemoveAt(0);
ArrayList temp_samplist1 = new ArrayList();
temp_samplist1.AddRange(SampleList);
ArrayList temp_list1 = getCombination(temp_samplist1, m - 1);
foreach (string s in temp_list1)
{
result.Add(temp_firstelement + "," + s);
}
ArrayList temp_samplist2 = new ArrayList();
temp_samplist2.AddRange(SampleList);
ArrayList temp_list2 = getCombination(temp_samplist2, m);
result.AddRange(temp_list2);
return result;
}
#endregion
#region 基本号码+胆码
private ArrayList Add_jiben_danma(string jiben, string dan)
{
string[] jiben_tmp; //存放结果基本号
string[] dan_tmp; //存放胆码
ArrayList result = new ArrayList();
jiben_tmp = jiben.Split(',');
result.AddRange(jiben_tmp);
if (!string.IsNullOrEmpty(dan))
{
dan_tmp = dan.Split(',');
result.AddRange(dan_tmp);
}
return result;
}
#endregion
#region 取值
private void GetValue()
{
qhm = WRequest.GetFormString("qhm");
qdm = WRequest.GetFormString("qdm");
hhm = WRequest.GetFormString("hhm");
hdm = WRequest.GetFormString("hdm");
ac = WRequest.GetFormString("ac");
qbjo = WRequest.GetFormInt("qbjo", 0);
qejo = WRequest.GetFormInt("qejo", 0);
hbjo = WRequest.GetFormInt("hbjo", 0);
hejo = WRequest.GetFormInt("hejo", 0);
qbhz = WRequest.GetFormInt("qbhz", 0);
qehz = WRequest.GetFormInt("qehz", 0);
hbhz = WRequest.GetFormInt("hbhz", 0);
hehz = WRequest.GetFormInt("hehz", 0);
qjob = WRequest.GetFormString("qjob");
qdxb = WRequest.GetFormString("qdxb");
qzhb = WRequest.GetFormString("qzhb");
qlh = WRequest.GetFormString("qlh");
ws = WRequest.GetFormString("ws");
hjob = WRequest.GetFormString("hjob");
hdxb = WRequest.GetFormString("hdxb");
hzhb = WRequest.GetFormString("hzhb");
hlh = WRequest.GetFormString("hlh");
}
#endregion
}
}