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 } }