123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497 |
- 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("<br />");
- }
- }
- }
- }
- #region 尾数过滤
- /// <summary>
- /// 尾数过滤
- /// </summary>
- 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 连号数
- /// <summary>
- /// 连号数
- /// </summary>
- 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 质合比
- /// <summary>
- /// 质合比
- /// </summary>
- 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 奇偶比
- /// <summary>
- /// 奇偶比
- /// </summary>
- 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 大小比
- /// <summary>
- /// 大小比
- /// </summary>
- 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 过滤和值
- /// <summary>
- /// 和值范围过滤
- /// </summary>
- 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 过滤尾数奇偶
- /// <summary>
- /// 过滤尾数奇偶
- /// </summary>
- 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 过滤首位奇偶
- /// <summary>
- /// 过滤首位奇偶
- /// </summary>
- 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
- }
- }
|