C#中的隨機數(shù)函數(shù)Random()
更新時間:2022年05月25日 08:29:59 作者:springsnow
這篇文章介紹了C#生成隨機數(shù)的方法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
一、常用操作
- NextDouble():返回0-1.0之間的隨機數(shù)
- Next():返回非負隨機整數(shù)(0-216)
- Next(i):返回一個小于i的非負隨機整數(shù)
- Next(i,j):生成i – j 的隨機整數(shù)
- NextBytes(byte[]):用隨機整數(shù)(0-255)填充指定字節(jié)數(shù)組的各個元素。
System.Random r = new Random(); s1 = r.NextDouble().ToString();//0.868992506465405 s2 = r.Next().ToString(); //1665548020 s3 = r.Next(10).ToString(); //5 s4 = r.Next(1000, 2000).ToString();//1885 byte[] buffer = new byte[255]; r.NextBytes(buffer); s5 = buffer[254].ToString(); ;//207
二、種子操作
1、不指定隨機種子,則默認有系統(tǒng)時鐘生成種子。
時間間隔如果太短,創(chuàng)建的多個不同的Ramdom對象將具有相同的默認種子值,因而會產(chǎn)生幾組相同的隨機數(shù)。
System.Random r1 = new Random(); System.Random r2 = new Random(); Console.WriteLine(r1.Next().ToString());// 615672499 Console.WriteLine(r2.Next().ToString());// 615672499
使用單個Random對象生成所有隨機數(shù)可避免此問題。
System.Random r = new Random(); Console.WriteLine(r.Next().ToString());// 1933637733 Console.WriteLine(r.Next().ToString());// 1799552041
2、種子值相同時,其隨機序列也相同。
System.Random r1 = new Random(1); System.Random r2 = new Random(1); System.Random r3 = new Random(2); byte[] buffer1 = new byte[2]; byte[] buffer2 = new byte[2]; byte[] buffer3 = new byte[2]; r1.NextBytes(buffer1); r2.NextBytes(buffer2); r3.NextBytes(buffer3); s1 = String.Join(",", buffer1);// 70,208 s2 = String.Join(",", buffer2);// 70,208 s3 = String.Join(",", buffer3);// 113,147
到此這篇關(guān)于C#生成隨機數(shù)的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C#實現(xiàn)listview Group收縮擴展的方法
這篇文章主要介紹了C#實現(xiàn)listview Group收縮擴展的方法,結(jié)合實例形式分析了listview控件的相關(guān)使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下2016-03-03c# 動態(tài)加載dll文件,并實現(xiàn)調(diào)用其中的簡單方法
下面小編就為大家?guī)硪黄猚# 動態(tài)加載dll文件,并實現(xiàn)調(diào)用其中的簡單方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01C#利用TreeView控件實現(xiàn)目錄跳轉(zhuǎn)
這篇文章主要為大家詳細介紹了C#潤滑利用TreeView控件實現(xiàn)目錄跳轉(zhuǎn)功能,文中的示例代碼講解詳細,感興趣的小伙伴可以動手嘗試一下2022-07-07