中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

C#封裝類對(duì)數(shù)組進(jìn)行隨機(jī)排序

2018-07-20    來(lái)源:open-open

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬(wàn)Linux鏡像隨意使用

這個(gè)一個(gè)擴(kuò)充C#隨機(jī)數(shù)發(fā)生器的類,可以隨機(jī)生成指定范圍的數(shù)字,可以隨機(jī)對(duì)數(shù)組進(jìn)行排序,非常好用

using System;

namespace DotNet.Utilities
{
    /// <summary>
    /// 使用Random類生成偽隨機(jī)數(shù)
    /// </summary>
    public class RandomHelper
    {
        //隨機(jī)數(shù)對(duì)象
        private Random _random;

        #region 構(gòu)造函數(shù)
        /// <summary>
        /// 構(gòu)造函數(shù)
        /// </summary>
        public RandomHelper()
        {
            //為隨機(jī)數(shù)對(duì)象賦值
            this._random = new Random();
        }
        #endregion

        #region 生成一個(gè)指定范圍的隨機(jī)整數(shù)
        /// <summary>
        /// 生成一個(gè)指定范圍的隨機(jī)整數(shù),該隨機(jī)數(shù)范圍包括最小值,但不包括最大值
        /// </summary>
        /// <param name="minNum">最小值</param>
        /// <param name="maxNum">最大值</param>
        public int GetRandomInt(int minNum, int maxNum)
        {
            return this._random.Next(minNum, maxNum);
        }
        #endregion

        #region 生成一個(gè)0.0到1.0的隨機(jī)小數(shù)
        /// <summary>
        /// 生成一個(gè)0.0到1.0的隨機(jī)小數(shù)
        /// </summary>
        public double GetRandomDouble()
        {
            return this._random.NextDouble();
        }
        #endregion

        #region 對(duì)一個(gè)數(shù)組進(jìn)行隨機(jī)排序
        /// <summary>
        /// 對(duì)一個(gè)數(shù)組進(jìn)行隨機(jī)排序
        /// </summary>
        /// <typeparam name="T">數(shù)組的類型</typeparam>
        /// <param name="arr">需要隨機(jī)排序的數(shù)組</param>
        public void GetRandomArray<T>(T[] arr)
        {
            //對(duì)數(shù)組進(jìn)行隨機(jī)排序的算法:隨機(jī)選擇兩個(gè)位置,將兩個(gè)位置上的值交換

            //交換的次數(shù),這里使用數(shù)組的長(zhǎng)度作為交換次數(shù)
            int count = arr.Length;

            //開(kāi)始交換
            for (int i = 0; i < count; i++)
            {
                //生成兩個(gè)隨機(jī)數(shù)位置
                int randomNum1 = GetRandomInt(0, arr.Length);
                int randomNum2 = GetRandomInt(0, arr.Length);

                //定義臨時(shí)變量
                T temp;

                //交換兩個(gè)隨機(jī)數(shù)位置的值
                temp = arr[randomNum1];
                arr[randomNum1] = arr[randomNum2];
                arr[randomNum2] = temp;
            }
        }
        #endregion
    }
}

標(biāo)簽:

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:C#得到隨機(jī)安全碼(哈希加密)的封裝類

下一篇:C# 四舍五入round函數(shù)使用