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

C#生成隨機數(shù)的方法小結

 更新時間:2015年05月04日 11:51:17   作者:小小的我  
這篇文章主要介紹了C#生成隨機數(shù)的方法,實例總結了C#生成隨機數(shù)的相關技巧,非常具有實用價值,需要的朋友可以參考下

本文實例總結了C#生成隨機數(shù)的方法。分享給大家供大家參考。具體分析如下:

開始,很簡單地使用System.Random類來生成隨機數(shù)。很快,問題就來了,發(fā)現(xiàn)當random的生成間隔小于1ms時,隨機數(shù)就重復了(僅限于每次都新建Random對象),因為新建random時候是默認以當前時間作為隨機種子的。將random改為單例,重復數(shù)的幾率小了,但是隨機數(shù)在一段時間后循環(huán)了(偽隨機數(shù)嘛,沒辦法,要求不了這么多的)。

所以,特意在網(wǎng)上找了一些資料,并親自作了一些性能比較,在此作些總結。

System.Random

這個是偽隨機數(shù)生成器

缺點:生成出來的結果會循環(huán),且Random對象創(chuàng)建間隔小于1ms的時候產生結果會相同;
優(yōu)點:生成速度極快;
效率:高,同一個對象產生1,000,000個結果只需要22ms(不含對象創(chuàng)建時間)


System.Security.Cryptography.RandomNumberGenerator

這個是用于產生密碼的安全隨機數(shù)生成器,產生出來的隨機數(shù)離散度高,產生1,000,000個32位(8-byte)的隨機數(shù)無重復

缺點:速度很慢,對比System.Random是兩個數(shù)量級的效率差距;
優(yōu)點:安全度高,產生的結果可看作環(huán)境無關,而且可以填充任意長度的字節(jié)數(shù)組;
效率:低,同一個對象產生1,000,000個結果需要4221ms(不含對象創(chuàng)建時間)


System.Guid

這個是GUID(UUID)生成器,出來的是128-bit的字節(jié)數(shù)組,通常被表示為8-4-4-4-12的32個hex字符。

缺點:生成長度一定,而且生成出來的結果可能與環(huán)境相關,在高安全需求的環(huán)境不適用;
優(yōu)點:有強大的數(shù)學理論支持,在每秒產生10億筆UUID的情況下,100年后只產生一次重復的機率是50%;
效率:中,產生1,000,000個結果需要255ms(包含Guid對象創(chuàng)建時間)


以上3個都可以當作隨機數(shù)產生器,但相對于大部分的業(yè)務需求, GUID(UUID)已經適用,而且其碰撞幾率在同一個系統(tǒng)內幾乎是不可能的。所以在選擇產生器時GUID是一個不錯的選擇。

希望本文所述對大家的C#程序設計有所幫助。

相關文章

  • C#代碼操作XML進行增、刪、改操作

    C#代碼操作XML進行增、刪、改操作

    這篇文章主要為大家詳細介紹了C# 代碼操作XML進行增、刪、改操作,感興趣的小伙伴們可以參考一下
    2016-07-07
  • C#基于Windows服務的聊天程序(1)

    C#基于Windows服務的聊天程序(1)

    這篇文章主要為大家詳細介紹了C#基于Windows服務的聊天程序的第一篇,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • C#使用Socket實現(xiàn)發(fā)送和接收圖片的方法

    C#使用Socket實現(xiàn)發(fā)送和接收圖片的方法

    這篇文章主要介紹了C#使用Socket實現(xiàn)發(fā)送和接收圖片的方法,涉及C#操作socket發(fā)送與接收文件的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-04-04
  • C#中Thread(線程)和Task(任務)實例詳解

    C#中Thread(線程)和Task(任務)實例詳解

    .NET Framework在System.Threading命名空間中具有與線程相關的類,線程是一小組可執(zhí)行指令,這篇文章主要給大家介紹了關于C#中Thread(線程)和Task(任務)的相關資料,需要的朋友可以參考下
    2022-03-03
  • C#中const用法詳解

    C#中const用法詳解

    這篇文章主要介紹了C#中const用法,實例分析了C#中const的用法及使用技巧,并對比分析了readonly關鍵字與const關鍵字的不同,需要的朋友可以參考下
    2014-11-11
  • C#生成影像金字塔的原理實例

    C#生成影像金字塔的原理實例

    最近在處理一個關于影像金字塔的問題,這個金字塔程序是用C#寫的,需要的朋友可以參考一下
    2013-05-05
  • C#線程同步的幾種方法總結

    C#線程同步的幾種方法總結

    在本篇文章里小編給大家整理的是關于C#線程同步的幾種方法總結,需要的朋友們可以學習下。
    2020-02-02
  • c#檢測端口是否被占用的簡單實例

    c#檢測端口是否被占用的簡單實例

    這篇文章主要介紹了c#檢測端口是否被占用的簡單實例,有需要的朋友可以參考一下
    2013-12-12
  • C# ref and out的使用小結

    C# ref and out的使用小結

    這篇文章主要介紹了C# ref and out的使用小結,幫助大家更好的理解和學習使用c#,感興趣的朋友可以了解下
    2021-03-03
  • C# FTP操作類分享

    C# FTP操作類分享

    這篇文章主要為大家分享了C# FTP操作類的相關代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06

最新評論