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;
        }

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM