zoukankan      html  css  js  c++  java
  • C#在一段数字区间内随机生成若干个互不相同的随机数

        /// <summary>
            /// Random ra=new Random();  系统自动选取当前时前作随机种子:
            /// Random ra=new Random(6) 指定一个int型的参数作为随机种子;
            /// ra.Next(); 返回一个大于或等于零而小于2,147,483,647的随机数
            /// ra.Next(20);返回一个大于或等于零而小于20的随机数
            /// ra.Next(1,20); 返回一个大于或等于1而小于20之间的随机数
            /// 以下函数返回几个大于或等于某正整数(含0)而小于等于某正整数无重复的正整数.

            /// 示例 int[] a= getRandomNum(12,1,100); //在1-100间随机取12个不同的数并存于数组a
            /// 来自 俱会一处 
            /// </summary>

    public int[] getRandomNum(int num, int minValue, int maxValue)
            {
                if ((maxValue + 1 - minValue - num<0))
                    maxValue += num - (maxValue + 1 - minValue);
                Random ra = new Random(unchecked((int)DateTime.Now.Ticks));
                int[] arrNum = new int[num];
                int tmp = 0;
                StringBuilder sb=new StringBuilder (num *maxValue .ToString ().Trim ().Length );
                  
                for (int i = 0; i <= num - 1; i++)
                {
                    tmp = ra.Next(minValue, maxValue); 
                    while (sb.ToString().Contains("#" + tmp.ToString().Trim() + "#"))
                        tmp = ra.Next(minValue, maxValue+1);
                    arrNum[i] = tmp; 
                    sb.Append( "#" + tmp.ToString().Trim() + "#");
                }
                return arrNum;
            }

     
     
  • 相关阅读:
    bfs入门 (HDU
    Codeforces Round #570 (Div. 3)B
    nyoj 277-车牌号 (map, pair, iterator)
    nyoj 276-比较字母大小 (顺序比较, 逆序输出)
    nyoj 275-队花的烦恼一 (stack, push, pop)
    nyoj 274-正三角形的外接圆面积 (R = PI * a * a / 3)
    nyoj 273-字母小游戏 (getline(cin, string))
    nyoj 268-荷兰国旗问题 (count)
    nyoj 266-字符串逆序输出 (isdigit(), geline(cin, my_string))
    nyoj 264-国王的魔镜 (string[-1:-int(str_len/2+1):-1])
  • 原文地址:https://www.cnblogs.com/zxtceq/p/6932739.html
Copyright © 2011-2022 走看看