C#中的隨機數函數Random()
一、常用操作
- NextDouble():返回0-1.0之間的隨機數
- Next():返回非負隨機整數(0-216)
- Next(i):返回一個小於i的非負隨機整數
- Next(i,j):生成i – j 的隨機整數
- NextBytes(byte[]):用隨機整數(0-255)填充指定字節數組的各個元素。
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、不指定隨機種子,則默認有系統時鐘生成種子。
時間間隔如果太短,創建的多個不同的Ramdom對象將具有相同的默認種子值,因而會產生幾組相同的隨機數。
System.Random r1 = new Random(); System.Random r2 = new Random(); Console.WriteLine(r1.Next().ToString());// 615672499 Console.WriteLine(r2.Next().ToString());// 615672499
使用單個Random對象生成所有隨機數可避免此問題。
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
到此這篇關於C#生成隨機數的文章就介紹到這瞭。希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。
推薦閱讀:
- C# Random類隨機函數實例詳解
- C#中32位浮點數Float(Real)一步步按位Bit進行分析
- C#位運算符的基本用法介紹
- C# 從 UTF-8 流中讀取字符串的正確方法及代碼詳解
- Node.js中的Buffer對象及創建方式