예제 #1
0
        /// <summary>
        /// [多值多列]设置值快乐扑克3方法
        /// </summary>
        /// <typeparam name="TEntity">泛型实体</typeparam>
        /// <param name="entity">实体</param>
        /// <param name="indexStart">开奖号开始</param>
        /// <param name="indexEnd">开奖号结束</param>
        /// <param name="count">项中列的个数</param>
        /// <param name="minNum">项最小值</param>
        /// <param name="maxNum">项最大值</param>
        /// <param name="index">项索引</param>
        /// <param name="missNumber">遗漏值</param>
        /// <param name="lastMiss">上期遗漏</param>
        /// <param name="maxMiss">最大遗漏</param>
        /// <param name="times">遗漏次数</param>
        /// <param name="avgMiss">平均遗漏</param>
        /// <param name="recordCount"></param>
        private static void GetMultiKLPK3Value <TEntity>(TEntity entity, int indexStart, int indexEnd, int minNum, int maxNum, int[] index, int[] missNumber, int[] lastMiss, int[] maxMiss, int[] times, int[] avgMiss, int recordCount) where TEntity : GP_KLPK3_ShanDong
        {
            IList <int> list = LotteryUtils.GetOpenCodeList <TEntity>(entity, indexStart, indexEnd);

            //var pkchars = new string[] { "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K" };
            for (int i = maxNum; i >= minNum; i--)
            {
                missNumber[i - minNum]++;
                var n = list.Count(p => (p % 100 - 1) == i);
                if (n > 0)
                //if(list.Any(p=>(p%100-1)==i))
                //if (list.Contains(i))
                {
                    index[i - minNum] += n;
                    if (null != lastMiss)
                    {
                        lastMiss[i - minNum] = missNumber[i - minNum];//上期遗漏
                    }
                    missNumber[i - minNum] = 0;
                    if (null != times)
                    {
                        times[i - minNum]++;
                    }
                }
                //最大遗漏
                if (null != maxMiss)
                {
                    if (missNumber[i - minNum] > maxMiss[i - minNum])
                    {
                        maxMiss[i - minNum] = missNumber[i - minNum];
                    }
                }
                // avgMiss[i - minNum] = maxMiss[i - minNum] / (times[i - minNum] + 1);//计算平均遗漏
                if (null != avgMiss && null != times)
                {
                    avgMiss[i - minNum] = (recordCount - times[i - minNum]) / (times[i - minNum] + 1);//计算平均遗漏
                }
            }
        }