購彩風險非常高,本人純屬很久以前對數字高頻彩的一點研究。目前已經遠離數字彩,重點研究足球籃球比賽資料庫和賽果預測。
這是一篇在草稿箱保存了1年多的文章,一直沒發現,順便修改修改分享給大家。以后會有更多關於足球和籃球體育彩票的玩法分析,希望大家關注。
本人不算專業程序員,但經常敲代碼玩玩。上學時研究的是偽隨機數這個東東,因此對彩票就情有獨鍾,從10年開始,就開始研究雙色球,其中軟件版本改了又改,但一直沒有實際操作過,原因就是雙色球的投注量太大。所以這1年多就沒研究了。最近一次偶然的機會,發現了“高頻彩-快3”,仔細研究了一番,發現這個比雙色球有意思多了,1是每天82期,快,不用等開獎;2是號碼總共就56注。想想應該比較容易。加上玩法多樣,現在也比較收歡迎,所以從10月份開始,就開始重操舊業,用我對數字的理解以及會敲代碼這個特長,結合起來,研究研究(很多老彩民,經驗豐富,但不會寫代碼,不會搞Excel,所以后來被動)各位看官先莫亂說,且把文章看完,順便我也寫下對快3的理解。
【彩票】彩票預測算法(二):朴素貝葉斯分類器在足球勝平負預測中的應用及C#實現 。
注意:我玩的是江蘇快3,俗稱老快3。順便說一下快3的玩發:發一個鏈接吧,有興趣去看。http://cp.360.cn/k3js/
先說一下,彩票的性質其實就是合法的賭博,雖然中國的彩票一直不透明,對快3來說,機器開獎,就更不用說了。
1.我認為快3人為操作的可能性很大,但不是每期都操作,操作的期數在少數;正因為如此,所以現在高頻彩的私彩相當多,而且返獎率比官方高出一大坨。。
2.快3的返獎率不算高,但是快,所以刺激,同時也俗稱吸金器,千萬不要上癮。
切記:玩彩風險非常大,一天輸幾萬的很多,所以看過此文,請謹慎對待彩票。
1.建立基本框架
說平台太大了點,對我來說,其實就是一個分析軟件。因為以前又開發雙色球分析軟件的經驗,所以這次就省事了不少,特別是在數據庫方面,很快就搞定了。先建立基本的數據庫,快3的數據很簡單,就是1個日期,期號,再就是號碼。當然為了提高計算速度,避免每次重復的分析計算,我在數據庫設計的時候,就把一些常規指標進行了統計,直接存到數據庫,比如和值,跨度,奇數,偶數等等。
基本的思路就是:
1.實時采集數據。
2.先對基礎數據進行統計,編寫各種統計算法(其實都是很簡單,就3個號碼,怎么算,對程序員來說都不復雜,即使統計加加減減等)。
3.在初步統計的基礎上,然后編寫一些驗證預測算法,測試准確性,如果可行,就做成界面(結果自己的不斷努力和測試,現在已經取消驗證環節了,直接把有價值的統計數據,放在表格中,人工觀察,實時進行人為判斷,如果機器能自動,那是不可能的,這樣彩票中心可以下崗了)。
4.完善軟件界面,不斷根據自己的經驗,增加統計數據。
2.數據庫建立和數據采集
本人一直使用XCode組件來進行數據庫的操作,具體組件使用,看我博客把。數據庫的建立很簡單,看代碼中的實體模型好了。可能有些冗余,只是沒時間完善而已。主要看看數據采集部分吧。我用的是HtmlAgilityPack組件,這個東西很多人都玩過,不詳細解釋了,HtmlAgilityPack+XPath,可以很輕松的解決固定頁面的數據提取。直接上代碼:
順便提一下,考慮到網站的不穩定性,有時候會連不上,所以我每一種快3都有2種采集方案,就是有2個采集來源。 根據當前的數據庫連接名稱來采集。
#region 抓取數據-52CP private static void GetDataFormWeb_52CP(int perDay, Boolean isUpdateAll) { string url; if (perDay == 0) //今天 { if (JS_K3_DayStatics.Meta.ConnName == "LotTickDayJL") url = @"http://www.52cp.cn/bull/index.php/Index/list_jlks"; else url = @"http://www.52cp.cn/bull/index.php/Index/list_jsks"; } else { if (JS_K3_DayStatics.Meta.ConnName == "LotTickDayJL") { url = @"http://www.52cp.cn/bull/index.php/Index/list_jlks/time/-" + perDay.ToString(); } else { url = @"http://www.52cp.cn/bull/index.php/Index/list_jsks/time/-" + perDay.ToString(); } //前幾天 } HtmlWeb web = new HtmlWeb(); HtmlDocument doc = web.Load(url); HtmlNodeCollection hc = doc.DocumentNode.SelectNodes(@"/html[1]/body[1]/div[3]/div[4]/div[4]/table[1]")[0].SelectNodes(@"tr"); for (int j = hc.Count - 1; j > 0; j--) { HtmlNodeCollection hc1 = hc[j].SelectNodes(@"td"); string noStr = hc1[0].InnerText.Trim(); //如果此期號不存在,就加入 int count = FindCount(_.No, noStr); if (count < 1 && Convert.ToInt32(noStr.Substring(0, 2)) > 11)//只采集12年1月1日之后的數據 { string[] numbers = hc1[2].InnerText.Trim().Split(','); int a = Convert.ToInt32(numbers[0]); int b = Convert.ToInt32(numbers[1]); int c = Convert.ToInt32(numbers[2]); JS_K3Base model = new JS_K3Base(new int[] { a, b, c }); model.No = noStr; model.Day = new DateTime(Convert.ToInt32("20" + model.No.Substring(0, 2)), Convert.ToInt32(model.No.Substring(2, 2)), Convert.ToInt32(model.No.Substring(4, 2))); model.Save(); if (isUpdateAll) { //更新信息表 JS_K3 if (JS_K3.Find(JS_K3._.No, model.No) == null) new JS_K3(model).Save(); } } else { if (JS_K3.FindCount(_.No, noStr) < 1) new JS_K3(Find(_.No, noStr)).Save(); } } } #endregion
3.核心的統計擴展方法
因為計算就是對位置,頻率這些東西進行計算,基本都很簡單,所以都以擴展方法的形式存在。大家具體可以看代碼。里面非常亂,沒時間整理,舉個例子吧:
#region 鄰號出現的情況 /// <summary>連續2期號碼相同個數,剔除后 鄰號出現個數 /// 返回數組第1個為 相同號碼列表 /// 返回數組第2個為 鄰號相同的列表 /// </summary> public static int[][] K3_SameAndCloseCount(this JS_K3[] data) { int[] SameCount = new int[data.Length - 1]; int[] CloseCount = new int[data.Length - 1]; for (int i = 0; i < data.Length -1; i++) { List<int> a1 = new List<int>() { data[i].Number_1, data[i].Number_2, data[i].Number_3 }; List<int> a2 = new List<int>() { data[i + 1].Number_1, data[i + 1].Number_2, data[i + 1].Number_3 } ; //相同號碼及移除 List<int> a3 = new List<int>() { data[i + 1].Number_1, data[i + 1].Number_2, data[i + 1].Number_3 }; foreach (var item in a3) { //都包含才能移除 if (a1.Contains<int>(item) && a2.Contains<int>(item)) { a1.Remove(item); a2.Remove(item); SameCount[i] ++; } } //移除后號碼的鄰號統計,對於位置相減 for (int j = 0; j < a1.Count ; j++) { int temp = Math.Abs(a1[j] - a2[j]); if (temp == 1) CloseCount[i] ++; } } return new int[][] { SameCount, CloseCount }; }
同時對一些高頻數據,重復數據的分析也很重要,下面是一些擴展方法:
/// <summary>2不同重復出現的次數</summary> public static int[] K3_Diff2_RepeatCount(this JS_K3[] data) { Dictionary<string, int> result = new Dictionary<string, int>(); int[] count = new int[2]; foreach (var item in data) { if (item.IsDiff2) { if (result.ContainsKey(item.NoString)) { result[item.NoString]++; count[0]++; } else result.Add(item.NoString, 1); } } foreach (var item in result) if (item.Value > 1) count[1]++; return count; } /// <summary>3同號重復的次數</summary> public static int K3_Same3_RepeatCount(this JS_K3[] data) { Dictionary<string, int> result = new Dictionary<string, int>(); int count = 0; foreach (var item in data) { if (item.IsSame3) { if (result.ContainsKey(item.NoString)) count++; else result.Add(item.NoString, 1); } } return count; }
其實上面這些統計方法都比較簡單,就是一些數據的統計。由於版本很老,當然還有很多其他的,由於經驗不足,封裝得不好,暫時就不全部發出來了。其他代碼和文章還在計划中。至於統計和分析的界面,太久了,我也懶得去找程序。謝謝大家理解,一個小軟件也是面面俱到,非常復雜的。
4.總結
本人2013年10月下旬開始玩江蘇快3,因為自己會寫程序,所有就做軟件研究了下,當然經驗不足,有時候運氣比較好,也贏過。但每天的盤不一樣,很容易就陷進去了。然后看了很多帖子,發現容易虧得很大,所以輸了幾百塊,趕緊收手不玩了,這個心態一定要控制好。也看了很多論壇的帖子,發現很多人都很容易虧大,結合自己的經驗,我發現的確是很容易掉進去,別說幾萬,如果沒有策略,不加分析,幾十萬都很容易輸掉。快3類型很多,說一點體會
1.江蘇快3更刺激,總體平均還是不錯,局部熱號更明顯;相反吉林快3的號更平穩和平均。
2.玩快3不能指望一夜暴富,如果收益能有10-20%,趕緊收手。不要手癢,我有好多次前面都有20-50%的盈利,但還不死心,結果很快就陷進去了。玩彩票心態很重要,一定要忍住,我也在控制自己的心態。
3.不要往死里追,除非你有大量的實際數據做論證,我會寫軟件,所以這方面經驗比較多,當然軟件分析也是多個角度,偶爾也會失誤。因為一旦你陷進去,只需要5-10期,就可以讓你徹底崩潰,快3的刺激就在於速度快,畢竟有56個號,你想在5-10期抓住,還是有難度的,但也有可能。我也有1-2期就追到號的情況。
4.快3一定要有玩法,如果你只是簡單的看和值,追2同號,或者豹子,那么基本會輸的很快,要有自己的策略和計划。
總的來說,高頻彩返獎率50%,已經是世界最低了,真的沒有玩的理由。從概率與回報率來說,閉着眼睛玩足球回報率也比這好(國彩足球返獎率高的時候有70-80%)。希望看到此文的人早點收手。另外群也不再公布了,有人說我拉人賭博,好好看文章把,本來是想給大家一個交流的機會的,我都用了這么大的粗體字,有些人跟瘋狗一樣,亂咬,真實沒話說。
