コード例 #1
0
ファイル: Program.cs プロジェクト: dawncom/Algorithms
        public static string go()
        {
            LBWeightRamdomDto serversDic = new LBWeightRamdomDto();

            List <string> ipList = new List <string>();

            //根据比例将Ip放到一个list中,再随机取
            foreach (var item in serversDic.ServersDic)
            {
                for (int i = 0; i < item.Value; i++)
                {
                    ipList.Add(item.Key);
                }
            }

            int allWeigth = serversDic.ServersDic.Select(t => t.Value).Sum();

            Random random = new Random();

            var number = random.Next(allWeigth);

            var ipStr = ipList[number].ToString();

            return(ipStr);
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: dawncom/Algorithms
        public static string go2()
        {
            LBWeightRamdomDto ipList = new LBWeightRamdomDto();
            Random            random = new Random();

            var allWeigth = ipList.ServersDic.Select(t => t.Value).Sum();

            var number = random.Next(allWeigth);

            foreach (var item in ipList.ServersDic)
            {
                if (item.Value > number)
                {
                    return(item.Key);
                }
                number -= item.Value;
            }

            return("");
        }