Ejemplo n.º 1
0
        /// <summary>
        /// 获取指定号码的可能周期
        /// </summary>
        /// <param name="span">周期对象数据</param>
        /// <param name="spans">所有周期样本</param>
        /// <param name="CaiData">配置数据对象</param>
        /// <returns></returns>
        private string getNextCyclesByNum(NumSpanData span, List <int> spans, CaiConfigData CaiData)
        {
            string num   = span.num;
            int    avg   = span.SpanAvg;
            int    lastp = span.SpanTillNow;

            List <int> cycles = new List <int>();

            for (int i = 3; i < spans.Count; i++)
            {
                int cycle = 0;
                for (int j = 0; j < i - 1; j++)
                {
                    int currentspan = spans[j];
                    cycle += currentspan;
                }
                int next = avg * i - cycle;
                next = next - lastp;
                int cycleMax = CaiData.PeriodPerDay * 2;
                if (next > 0 && next < cycleMax)
                {
                    cycles.Add(next);
                }
            }

            cycles = cycles.OrderBy(x => x).ToList();

            CaiData.StatusLabel = span.num + " NextCycles Geted!";

            return(BizBase.ListToString(cycles, true));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 获取指定号码的热度趋势
        /// </summary>
        /// <param name="span"></param>
        /// <param name="CaiData"></param>
        /// <returns></returns>
        private NumSpanData getHotTrends(NumSpanData span, CaiConfigData CaiData, List <DwNumber> dtos)
        {
            List <int> times = new List <int>();
            int        max   = dtos.Count >= 1008?1008:dtos.Count;

            for (int i = 0; i < 10; i++)
            {
                //按日期推算每一天前的1008期出现的次数
                List <DwNumber> list = dtos.GetRange(i * CaiData.PeriodPerDay, max);
                times.Add(list.Where(x => x.P2 == span.num).ToList().Count);
            }
            //判断趋向热
            if (times[0] == times.Max() && times[times.Count - 1] == times.Min() && times.Max() - times.Min() >= 3)
            {
                span.HotTrend = 1;
            }
            else if (times[0] == times.Min() && times[times.Count - 1] == times.Max() && times.Max() - times.Min() >= 3)
            {
                span.HotTrend = -1;
            }
            else if (times[0] != times.Max() && times[times.Count - 1] != times.Max() && times.Max() - times.Min() >= 3)
            {
                span.HotTrend = -1;
            }
            else if (times[0] != times.Min() && times[times.Count - 1] != times.Min() && times.Max() - times.Min() >= 3)
            {
                span.HotTrend = 1;
            }
            else
            {
                span.HotTrend = 0;
            }

            span.HotRecent = BizBase.ListToString(times);

            return(span);
        }