最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

System.Random

這個(gè)是偽隨機(jī)數(shù)生成器

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


System.Security.Cryptography.RandomNumberGenerator

這個(gè)是用于產(chǎn)生密碼的安全隨機(jī)數(shù)生成器,產(chǎn)生出來(lái)的隨機(jī)數(shù)離散度高,產(chǎn)生1,000,000個(gè)32位(8-byte)的隨機(jī)數(shù)無(wú)重復(fù)

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


System.Guid

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

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


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

希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • js事件模型與自定義事件實(shí)例解析

    js事件模型與自定義事件實(shí)例解析

    JavaScript一個(gè)最簡(jiǎn)單的事件模型,需要有事件綁定與觸發(fā),還有事件刪除。本文將對(duì)其具體實(shí)現(xiàn)代碼進(jìn)行解析,需要的朋友一起來(lái)看下吧
    2016-12-12
  • C# 創(chuàng)建Excel氣泡圖的實(shí)例代碼

    C# 創(chuàng)建Excel氣泡圖的實(shí)例代碼

    這篇文章主要介紹了C# 創(chuàng)建Excel氣泡圖的實(shí)例代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • C#使用this關(guān)鍵字實(shí)現(xiàn)串聯(lián)構(gòu)造函數(shù)調(diào)用方法

    C#使用this關(guān)鍵字實(shí)現(xiàn)串聯(lián)構(gòu)造函數(shù)調(diào)用方法

    這篇文章主要介紹了C#使用this關(guān)鍵字實(shí)現(xiàn)串聯(lián)構(gòu)造函數(shù)調(diào)用方法,實(shí)例分析了使用this關(guān)鍵字串聯(lián)構(gòu)造函數(shù)的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-01-01
  • C#從foreach語(yǔ)句中枚舉元素看數(shù)組詳解

    C#從foreach語(yǔ)句中枚舉元素看數(shù)組詳解

    這篇文章主要給大家介紹了關(guān)于C#從foreach語(yǔ)句中枚舉元素看數(shù)組的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-05-05
  • C#使用RegNotifyChangeKeyValue監(jiān)聽(tīng)注冊(cè)表更改的方法小結(jié)

    C#使用RegNotifyChangeKeyValue監(jiān)聽(tīng)注冊(cè)表更改的方法小結(jié)

    RegNotifyChangeKeyValue的最后一個(gè)參數(shù)傳遞false,表示以同步的方式監(jiān)聽(tīng),這篇文章主要介紹了C#使用RegNotifyChangeKeyValue監(jiān)聽(tīng)注冊(cè)表更改的方法小結(jié),需要的朋友可以參考下
    2024-06-06
  • C#?網(wǎng)域賬號(hào)(Domain)驗(yàn)證的實(shí)現(xiàn)

    C#?網(wǎng)域賬號(hào)(Domain)驗(yàn)證的實(shí)現(xiàn)

    本文主要介紹了C#?網(wǎng)域賬號(hào)(Domain)驗(yàn)證的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-04-04
  • C# Newtonsoft.Json庫(kù)的常用屬性和方法詳解

    C# Newtonsoft.Json庫(kù)的常用屬性和方法詳解

    Newtonsoft.Json(也稱(chēng)為Json.NET)是一個(gè)非常流行的用于處理JSON數(shù)據(jù)的庫(kù),它提供了豐富的屬性和方法,用于序列化和反序列化JSON數(shù)據(jù),下面將通過(guò)C#代碼詳細(xì)講解一些常用的屬性和方法,并提供詳細(xì)的代碼注釋,需要的朋友可以參考下
    2025-03-03
  • C# GDI在控件上繪圖的方法

    C# GDI在控件上繪圖的方法

    這篇文章主要介紹了C# GDI在控件上繪圖的方法,包括了常見(jiàn)的鼠標(biāo)事件及繪圖操作,需要的朋友可以參考下
    2014-09-09
  • Unity3D游戲開(kāi)發(fā)數(shù)據(jù)持久化PlayerPrefs的用法詳解

    Unity3D游戲開(kāi)發(fā)數(shù)據(jù)持久化PlayerPrefs的用法詳解

    在本篇文章里小編給大家整理了關(guān)于Unity3D游戲開(kāi)發(fā)之?dāng)?shù)據(jù)持久化PlayerPrefs的使用的相關(guān)知識(shí)點(diǎn)內(nèi)容,需要的朋友們參考下。
    2019-08-08
  • .NET使用C#導(dǎo)入Excel文件數(shù)據(jù)到數(shù)據(jù)庫(kù)

    .NET使用C#導(dǎo)入Excel文件數(shù)據(jù)到數(shù)據(jù)庫(kù)

    將Excel文件中的數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫(kù)中不僅能夠提升數(shù)據(jù)處理的效率和準(zhǔn)確性,還能極大地促進(jìn)數(shù)據(jù)分析和決策制定的過(guò)程,本文將介紹如何在.NET平臺(tái)使用C#導(dǎo)入Excel文件數(shù)據(jù)到數(shù)據(jù)庫(kù)中,需要的可以參考下
    2024-12-12

最新評(píng)論

丰镇市| 芜湖县| 荥阳市| 汤原县| 阳信县| 兴业县| 饶平县| 梁平县| 萨嘎县| 合水县| 延长县| 庆阳市| 新龙县| 麟游县| 红安县| 芜湖县| 科技| 聂荣县| 涟源市| 濮阳市| 河南省| 灯塔市| 达孜县| 云安县| 铜山县| 永宁县| 嘉祥县| 宿松县| 大理市| 广昌县| 石景山区| 房产| 蒲江县| 饶阳县| 丹江口市| 天镇县| 开封县| 察雅县| 克山县| 桓台县| 阿拉善左旗|