亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C#?生成隨機(jī)數(shù)的方法示例

 更新時(shí)間:2024年12月17日 08:39:41   作者:咱們不氣  
本文介紹了C#中的Random類,用于生成隨機(jī)數(shù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

C# 提供了一種強(qiáng)大而方便的工具類 Random ,用于生成隨機(jī)數(shù)。這里將分類討論如何通過 C# 實(shí)現(xiàn)隨機(jī)數(shù)生成,以及應(yīng)用于實(shí)際情況中的一些具體方案。

一、Random 類概述

Random 類表示一個(gè)偽隨機(jī)數(shù)生成器,用于生成滿足隨機(jī)性統(tǒng)計(jì)要求的數(shù)字序列。

重載的 Random.Next()

Random.Next() 方法提供了三種重載:

  • Next():生成大于等于 0 且小于 Int32.MaxValue 的 32 位整數(shù)。

  • Next(int minValue, int maxValue):生成從 minValue (包括) 到 maxValue (不包括) 的整數(shù)。

示例

/// <summary>
/// 生成隨機(jī)數(shù)列表
/// </summary>
/// <returns></returns>
public List<int> RDNumber()
{
    List<int> col = new List<int>();
    for (int i = 0; i < 6; i++)
    {
        Random rd = new Random(); // 初始化一個(gè)新的 Random 實(shí)例
        var a = rd.Next();        // 生成一個(gè)隨機(jī)數(shù)
        col.Add(a);
    }
    return col;
}

二、生成不重復(fù)的隨機(jī)數(shù)

方法一:利用 List 根據(jù)重復(fù)狀態(tài)迭代

通過檢查隨機(jī)數(shù)是否存在,防止重復(fù):

/// <summary>
/// 指定范圍內(nèi)的不重復(fù)隨機(jī)數(shù)(要求隨機(jī)數(shù)個(gè)數(shù)小于隨機(jī)數(shù)范圍否則程序會陷入死循環(huán)??稍谘h(huán)中加入跳出機(jī)制)
/// </summary>
/// <param name="Number">隨機(jī)數(shù)個(gè)數(shù)</param>
/// <param name="minNum">隨機(jī)數(shù)下限</param>
/// <param name="maxNum">隨機(jī)數(shù)上限</param>
/// <returns></returns>
public List<int> GetRandomArray(int Number, int minNum, int maxNum)
{
    int j;
    List<int> b = new List<int>();
    Random r = new Random();
    for (j = 0; j < Number; j++)
    {
        int i = r.Next(minNum, maxNum + 1);
        if (b.Contains(i))  //是否包含這個(gè)數(shù)
        {
            j = j - 1;
        }
        else
        {
            b.Add(i);
        }
    }
    return b;
}

方法二:使用索引替換

思想是用一個(gè)數(shù)組來保存索引號,先隨機(jī)生成一個(gè)數(shù)組位置,然后把隨機(jī)抽取到的位置的索引號取出來,并把最后一個(gè)索引號復(fù)制到當(dāng)前的數(shù)組位置,然后使隨機(jī)數(shù)的上限減一,具體如:先把這100個(gè)數(shù)放在一個(gè)數(shù)組內(nèi),每次隨機(jī)取一個(gè)位置(第一次是1-100,第二次是1-99,...),將該位置的數(shù)用最后的數(shù)代替。 

int[] index = new int[15];
for (int i = 0; i < 15; i++)
    index[i] = i;
Random r = new Random();
//用來保存隨機(jī)生成的不重復(fù)的10個(gè)數(shù)
int[] result = new int[10];
int site = 15;//設(shè)置上限
int id;
for (int j = 0; j < 10; j++)
{
    id = r.Next(1, site - 1);
    //在隨機(jī)位置取出一個(gè)數(shù),保存到結(jié)果數(shù)組
    result[j] = index[id];
    //最后一個(gè)數(shù)復(fù)制到當(dāng)前位置
    index[id] = index[site - 1];
    //位置的上限減少一
    site--;
}

三、生成字母數(shù)字的隨機(jī)組合

這里先說一下說一下ASCII:ASCII(American Standard Code for Information Interchange, 美國標(biāo)準(zhǔn)信息交換代碼)是基于拉丁字母的一套電腦編碼系統(tǒng),主要 用于顯示現(xiàn)代英語和其他西歐語言。它是現(xiàn)今最通用的單字節(jié)編碼 系統(tǒng),并等同于國際標(biāo)準(zhǔn)ISO/IEC 646。

ASCII 系統(tǒng)概述

  • 大寫字母 A-Z 的 ASCII 值范圍為 65-90

  • 小寫字母 a-z 的 ASCII 值范圍為 97-122

示例代碼

/// <summary>
/// 生成單個(gè)隨機(jī)數(shù)字
/// </summary>
public int createNum(Random random)
{
    int num = random.Next(10);
    return num;
}
/// <summary>
/// 生成單個(gè)大寫隨機(jī)字母
/// </summary>
public string createBigAbc(Random random)
{
    //A-Z的 ASCII值為65-90
    int num = random.Next(65, 91);
    string abc = Convert.ToChar(num).ToString();
    return abc;
}
/// <summary>
/// 生成單個(gè)小寫隨機(jī)字母
/// </summary>
public string createSmallAbc(Random random)
{
    //a-z的 ASCII值為97-122
    int num = random.Next(97, 123);
    string abc = Convert.ToChar(num).ToString();
    return abc;
}

生成隨機(jī)字母數(shù)字組合

/// <summary>
/// 生成隨機(jī)字母數(shù)字組合
/// </summary>
/// <returns></returns>
public string GetRandom()
{
    Random random = new Random();
    //創(chuàng)建一個(gè)StringBuilder對象存儲密碼
    StringBuilder sb = new StringBuilder();
    //使用for循環(huán)把單個(gè)字符填充進(jìn)StringBuilder對象里面變成14位密碼字符串
    for (int i = 0; i < 14; i++)
    {
        //隨機(jī)選擇里面其中的一種字符生成
        switch (random.Next(3))
        {
            case 0:
                //調(diào)用生成生成隨機(jī)數(shù)字的方法
                sb.Append(createNum(random));
                break;
            case 1:
                //調(diào)用生成生成隨機(jī)小寫字母的方法
                sb.Append(createSmallAbc(random));
                break;
            case 2:
                //調(diào)用生成生成隨機(jī)大寫字母的方法
                sb.Append(createBigAbc(random));
                break;
        }
    }
    return sb.ToString();
}

到此這篇關(guān)于C# 生成隨機(jī)數(shù)的方法的文章就介紹到這了,更多相關(guān)C# 生成隨機(jī)數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

最新評論