dlt_qss_post.aspx.cs 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Web;
  4. using System.Web.UI;
  5. using System.Web.UI.WebControls;
  6. using System.Text;
  7. using System.Collections;
  8. using CB.Common;
  9. namespace CB.Web.tool_old
  10. {
  11. public partial class dlt_qss_post : System.Web.UI.Page
  12. {
  13. public int zhushu;
  14. public string type;
  15. public string message;
  16. public bool flag = true;
  17. public string filename = "大乐透在线缩水结果";
  18. public System.Text.StringBuilder NumberString = new System.Text.StringBuilder();
  19. public System.Text.StringBuilder numValue = new System.Text.StringBuilder();
  20. private string qhm, qdm, hhm, hdm;
  21. private string ac;
  22. private int qbjo, qejo; //前区首位号码@前区末位号码
  23. private int hbjo, hejo; //后区首位号码@后区末位号码
  24. private int qbhz, qehz, hbhz, hehz; //前区+后区的开始--结束和值
  25. private string qjob, qdxb, qzhb, qlh, ws; //前区奇偶比,大小比,质合比,连号组数,尾数不同号码
  26. private string hjob, hdxb, hzhb, hlh; //后区奇偶比,大小比,质合比,连号组数
  27. protected void Page_Load(object sender, EventArgs e)
  28. {
  29. GetValue();
  30. if (string.IsNullOrEmpty(qhm) || string.IsNullOrEmpty(hhm))
  31. {
  32. message = "您没有选择任何前区号码或后区号码...";
  33. flag = false;
  34. return;
  35. }
  36. 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)
  37. {
  38. message = "您没有选择前区过滤条件...";
  39. flag = false;
  40. return;
  41. }
  42. else if (hbjo == 0 && hejo == 0 && string.IsNullOrEmpty(hjob) && string.IsNullOrEmpty(hdxb) && string.IsNullOrEmpty(hzhb) && string.IsNullOrEmpty(hlh) && hbhz == 0 && hehz == 0)
  43. {
  44. message = "您没有选择后区过滤条件...";
  45. flag = false;
  46. return;
  47. }
  48. else
  49. {
  50. string[] qhms = qhm.Split(',');
  51. string[] hhms = hhm.Split(',');
  52. string[] qdms = qdm.Split(',');
  53. string[] hdms = hdm.Split(',');
  54. ArrayList qresult = new ArrayList();
  55. ArrayList hresult = new ArrayList();
  56. ArrayList qlist = new ArrayList(qhms);
  57. ArrayList hlist = new ArrayList(hhms);
  58. ArrayList show_tmp = new ArrayList();
  59. ArrayList show_tmp2 = new ArrayList();
  60. int qdmlen = 0;
  61. if (qdms != null && !string.IsNullOrEmpty(qdms[0]))
  62. qdmlen = qdms.Length;
  63. else
  64. qdmlen = 0;
  65. int hdmlen = 0;
  66. if (qdms != null && !string.IsNullOrEmpty(qdms[0]))
  67. qdmlen = qdms.Length;
  68. else
  69. qdmlen = 0;
  70. ArrayList qtemplist = getCombination(qlist, 5 - qdmlen);
  71. ArrayList htemplist = getCombination(hlist, 2 - hdmlen);
  72. #region 生成并过滤前区号码
  73. //生成前区所有号码组合
  74. for (int i = 0; i < qtemplist.Count; i++)
  75. {
  76. string temp = string.Empty;
  77. show_tmp = Add_jiben_danma(qtemplist[i].ToString(), qdm);
  78. show_tmp.Sort();
  79. for (int j = 0; j < show_tmp.Count; j++)
  80. {
  81. if (j == (show_tmp.Count - 1))
  82. {
  83. temp = temp + show_tmp[j].ToString();
  84. }
  85. else
  86. {
  87. temp = temp + show_tmp[j].ToString() + ",";
  88. }
  89. }
  90. if (!string.IsNullOrEmpty(temp))
  91. qresult.Add(temp);
  92. }
  93. qresult = FilterAC(ac, qresult); //过滤AC值
  94. qresult = FilterBJO(qbjo, qresult); //过滤前首位号码的奇偶值
  95. qresult = FilterEJO(qejo, qresult); //过滤前末位号码的奇偶值
  96. qresult = FilterHZ(qbhz, qehz, qresult); //过滤前区和值范围
  97. qresult = FilterJOB(qjob, qresult); //奇偶比
  98. qresult = FilterDXB(qdxb, qresult); //大小比
  99. qresult = FilterZHB(qzhb, qresult); //质合比
  100. qresult = FilterLH(qlh, qresult); //连号个数
  101. qresult = FilterWS(ws, qresult); //尾数
  102. #endregion
  103. #region 生成并过滤后区所有号码
  104. for (int i = 0; i < htemplist.Count; i++)
  105. {
  106. string temp = string.Empty;
  107. show_tmp = Add_jiben_danma(htemplist[i].ToString(), hdm);
  108. show_tmp.Sort();
  109. for (int j = 0; j < show_tmp.Count; j++)
  110. {
  111. if (j == (show_tmp.Count - 1))
  112. {
  113. temp = temp + show_tmp[j].ToString();
  114. }
  115. else
  116. {
  117. temp = temp + show_tmp[j].ToString() + ",";
  118. }
  119. }
  120. if (!string.IsNullOrEmpty(temp))
  121. hresult.Add(temp);
  122. }
  123. //后区号码过滤
  124. hresult = FilterBJO(hbjo, hresult);
  125. hresult = FilterEJO(hejo, hresult);
  126. hresult = FilterHZ(hbhz, hehz, hresult);
  127. hresult = FilterJOB(hjob, hresult);
  128. hresult = FilterDXB(hdxb, hresult);
  129. hresult = FilterZHB(hzhb, hresult);
  130. hresult = FilterLH(hlh, hresult);
  131. #endregion
  132. zhushu = qresult.Count * hresult.Count;
  133. int cc = 0;
  134. for (int i = 0; i < qresult.Count; i++)
  135. {
  136. for (int j = 0; j < hresult.Count; j++)
  137. {
  138. NumberString.Append(qresult[i].ToString() + "," + hresult[j].ToString() + "&nbsp; &nbsp;");
  139. numValue.Append(qresult[i].ToString() + "," + hresult[j].ToString() + "@");
  140. cc++;
  141. if (cc % 4 == 0)
  142. NumberString.Append("<br />");
  143. }
  144. }
  145. }
  146. }
  147. #region 尾数过滤
  148. /// <summary>
  149. /// 尾数过滤
  150. /// </summary>
  151. private ArrayList FilterWS(string ws, ArrayList Number)
  152. {
  153. ArrayList Numbertemp = new ArrayList();
  154. ArrayList wslist = new ArrayList(ws.Split(','));
  155. int wscount = 0;
  156. if (!string.IsNullOrEmpty(ws))
  157. {
  158. for (int i = 0; i < Number.Count; i++)
  159. {
  160. wscount = ToolsUtils.GetWSCount(Number[i].ToString().Split(','));
  161. if (wslist.Contains(wscount.ToString()))
  162. Numbertemp.Add(Number[i]);
  163. }
  164. Number.Clear();
  165. Number = Numbertemp;
  166. }
  167. return Number;
  168. }
  169. #endregion
  170. #region 连号数
  171. /// <summary>
  172. /// 连号数
  173. /// </summary>
  174. private ArrayList FilterLH(string lh, ArrayList Number)
  175. {
  176. ArrayList Numbertemp = new ArrayList();
  177. ArrayList lhlist = new ArrayList(lh.Split(','));
  178. int lhcount = 0;
  179. if (!string.IsNullOrEmpty(lh))
  180. {
  181. for (int i = 0; i < Number.Count; i++)
  182. {
  183. lhcount = ToolsUtils.GetLHCount(Number[i].ToString().Split(','));
  184. if (lhlist.Contains(lhcount.ToString()))
  185. Numbertemp.Add(Number[i]);
  186. }
  187. Number.Clear();
  188. Number = Numbertemp;
  189. }
  190. return Number;
  191. }
  192. #endregion
  193. #region 质合比
  194. /// <summary>
  195. /// 质合比
  196. /// </summary>
  197. private ArrayList FilterZHB(string zhb, ArrayList Number)
  198. {
  199. ArrayList Numbertemp = new ArrayList();
  200. ArrayList zhlist = new ArrayList(zhb.Split(','));
  201. string zhbStr = string.Empty;
  202. if (!string.IsNullOrEmpty(zhb))
  203. {
  204. for (int i = 0; i < Number.Count; i++)
  205. {
  206. zhbStr = ToolsUtils.GetZHB(Number[i].ToString().Split(','));
  207. if (zhlist.Contains(zhbStr))
  208. Numbertemp.Add(Number[i]);
  209. }
  210. Number.Clear();
  211. Number = Numbertemp;
  212. }
  213. return Number;
  214. }
  215. #endregion
  216. #region 奇偶比
  217. /// <summary>
  218. /// 奇偶比
  219. /// </summary>
  220. private ArrayList FilterJOB(string job, ArrayList Number)
  221. {
  222. ArrayList Numbertemp = new ArrayList();
  223. ArrayList jolist = new ArrayList(job.Split(','));
  224. string jobStr = string.Empty;
  225. if (!string.IsNullOrEmpty(job))
  226. {
  227. for (int i = 0; i < Number.Count; i++)
  228. {
  229. jobStr = ToolsUtils.GetJOB(Number[i].ToString().Split(','));
  230. if (jolist.Contains(jobStr))
  231. Numbertemp.Add(Number[i]);
  232. }
  233. Number.Clear();
  234. Number = Numbertemp;
  235. }
  236. return Number;
  237. }
  238. #endregion
  239. #region 大小比
  240. /// <summary>
  241. /// 大小比
  242. /// </summary>
  243. private ArrayList FilterDXB(string dxb, ArrayList Number)
  244. {
  245. ArrayList Numbertemp = new ArrayList();
  246. ArrayList dxlist = new ArrayList(dxb.Split(','));
  247. string dxbStr = string.Empty;
  248. if (!string.IsNullOrEmpty(dxb))
  249. {
  250. for (int i = 0; i < Number.Count; i++)
  251. {
  252. dxbStr = ToolsUtils.GetDXB(Number[i].ToString().Split(','));
  253. if (dxlist.Contains(dxbStr))
  254. Numbertemp.Add(Number[i]);
  255. }
  256. Number.Clear();
  257. Number = Numbertemp;
  258. }
  259. return Number;
  260. }
  261. #endregion
  262. #region 过滤和值
  263. /// <summary>
  264. /// 和值范围过滤
  265. /// </summary>
  266. private ArrayList FilterHZ(int bhz, int ehz, ArrayList Number)
  267. {
  268. ArrayList Numbertemp = new ArrayList();
  269. if (bhz > 0 && ehz > 0)
  270. {
  271. int hz = 0;
  272. for (int i = 0; i < Number.Count; i++)
  273. {
  274. hz = 0;
  275. string[] strs = Number[i].ToString().Split(',');
  276. for (int j = 0; j < strs.Length; j++)
  277. {
  278. hz = hz + Convert.ToInt32(strs[j]);
  279. }
  280. if (hz >= bhz && hz <= ehz)
  281. Numbertemp.Add(Number[i]);
  282. }
  283. Number.Clear();
  284. Number = Numbertemp;
  285. }
  286. return Number;
  287. }
  288. #endregion
  289. #region 过滤尾数奇偶
  290. /// <summary>
  291. /// 过滤尾数奇偶
  292. /// </summary>
  293. private ArrayList FilterEJO(int qejo, ArrayList Number)
  294. {
  295. ArrayList Numbertemp = new ArrayList();
  296. if (qejo > 0)
  297. {
  298. for (int i = 0; i < Number.Count; i++)
  299. {
  300. string[] strs = Number[i].ToString().Split(',');
  301. int s = Convert.ToInt32(strs[strs.Length - 1]);
  302. //奇数
  303. if (qejo == 1)
  304. {
  305. if (!(s % 2 == 0))
  306. Numbertemp.Add(Number[i]);
  307. }
  308. //偶数
  309. if (qejo == 2)
  310. {
  311. if ((s % 2 == 0))
  312. Numbertemp.Add(Number[i]);
  313. }
  314. }
  315. Number.Clear();
  316. Number = Numbertemp;
  317. }
  318. return Number;
  319. }
  320. #endregion
  321. #region 过滤首位奇偶
  322. /// <summary>
  323. /// 过滤首位奇偶
  324. /// </summary>
  325. private ArrayList FilterBJO(int qbjo, ArrayList Number)
  326. {
  327. ArrayList Numbertemp = new ArrayList();
  328. if (qbjo > 0)
  329. {
  330. for (int i = 0; i < Number.Count; i++)
  331. {
  332. int s = Convert.ToInt32(Number[i].ToString().Split(',')[0]);
  333. //奇数
  334. if (qbjo == 1)
  335. {
  336. if (!(s % 2 == 0))
  337. Numbertemp.Add(Number[i]);
  338. }
  339. //偶数
  340. if (qbjo == 2)
  341. {
  342. if ((s % 2 == 0))
  343. Numbertemp.Add(Number[i]);
  344. }
  345. }
  346. Number.Clear();
  347. Number = Numbertemp;
  348. }
  349. return Number;
  350. }
  351. #endregion
  352. #region 过滤AC值
  353. private ArrayList FilterAC(string ac, ArrayList Number)
  354. {
  355. ArrayList aclist = new ArrayList(ac.Split(','));
  356. ArrayList Numbertemp = new ArrayList();
  357. int ac_tmp; //存放AC值变量
  358. if (!string.IsNullOrEmpty(ac))
  359. {
  360. for (int i = 0; i < Number.Count; i++)
  361. {
  362. ac_tmp = ToolsUtils.GetAC(Number[i].ToString().Split(','));
  363. if (aclist.Contains(ac_tmp.ToString()))
  364. {
  365. Numbertemp.Add(Number[i]);
  366. }
  367. }
  368. Number.Clear();
  369. Number = Numbertemp;
  370. }
  371. return Number;
  372. }
  373. #endregion
  374. #region 生成自然组合
  375. private static ArrayList getCombination(ArrayList SampleList, int m)
  376. {
  377. if (m == 1)
  378. {
  379. return SampleList;
  380. }
  381. ArrayList result = new ArrayList();
  382. if (SampleList.Count == m)
  383. {
  384. StringBuilder temp_sb = new StringBuilder();
  385. foreach (string s in SampleList)
  386. {
  387. temp_sb.Append(s + ",");
  388. }
  389. temp_sb.Remove(temp_sb.Length - 1, 1);
  390. result.Add(temp_sb.ToString());
  391. return result;
  392. }
  393. string temp_firstelement = SampleList[0].ToString();
  394. SampleList.RemoveAt(0);
  395. ArrayList temp_samplist1 = new ArrayList();
  396. temp_samplist1.AddRange(SampleList);
  397. ArrayList temp_list1 = getCombination(temp_samplist1, m - 1);
  398. foreach (string s in temp_list1)
  399. {
  400. result.Add(temp_firstelement + "," + s);
  401. }
  402. ArrayList temp_samplist2 = new ArrayList();
  403. temp_samplist2.AddRange(SampleList);
  404. ArrayList temp_list2 = getCombination(temp_samplist2, m);
  405. result.AddRange(temp_list2);
  406. return result;
  407. }
  408. #endregion
  409. #region 基本号码+胆码
  410. private ArrayList Add_jiben_danma(string jiben, string dan)
  411. {
  412. string[] jiben_tmp; //存放结果基本号
  413. string[] dan_tmp; //存放胆码
  414. ArrayList result = new ArrayList();
  415. jiben_tmp = jiben.Split(',');
  416. result.AddRange(jiben_tmp);
  417. if (!string.IsNullOrEmpty(dan))
  418. {
  419. dan_tmp = dan.Split(',');
  420. result.AddRange(dan_tmp);
  421. }
  422. return result;
  423. }
  424. #endregion
  425. #region 取值
  426. private void GetValue()
  427. {
  428. qhm = WRequest.GetFormString("qhm");
  429. qdm = WRequest.GetFormString("qdm");
  430. hhm = WRequest.GetFormString("hhm");
  431. hdm = WRequest.GetFormString("hdm");
  432. ac = WRequest.GetFormString("ac");
  433. qbjo = WRequest.GetFormInt("qbjo", 0);
  434. qejo = WRequest.GetFormInt("qejo", 0);
  435. hbjo = WRequest.GetFormInt("hbjo", 0);
  436. hejo = WRequest.GetFormInt("hejo", 0);
  437. qbhz = WRequest.GetFormInt("qbhz", 0);
  438. qehz = WRequest.GetFormInt("qehz", 0);
  439. hbhz = WRequest.GetFormInt("hbhz", 0);
  440. hehz = WRequest.GetFormInt("hehz", 0);
  441. qjob = WRequest.GetFormString("qjob");
  442. qdxb = WRequest.GetFormString("qdxb");
  443. qzhb = WRequest.GetFormString("qzhb");
  444. qlh = WRequest.GetFormString("qlh");
  445. ws = WRequest.GetFormString("ws");
  446. hjob = WRequest.GetFormString("hjob");
  447. hdxb = WRequest.GetFormString("hdxb");
  448. hzhb = WRequest.GetFormString("hzhb");
  449. hlh = WRequest.GetFormString("hlh");
  450. }
  451. #endregion
  452. }
  453. }