C#中的隨機數(shù)函數(shù)Random()
更新時間:2022年05月25日 08:29:59 作者:springsnow
這篇文章介紹了C#生成隨機數(shù)的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
一、常用操作
- 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ù)的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C#常用數(shù)據(jù)結(jié)構(gòu)棧的詳細介紹
在C#中,Stack<T> 是一個后進先出(LIFO,Last-In-First-Out)集合類,位于System.Collections.Generic 命名空間中,本文詳細介紹C#常用數(shù)據(jù)結(jié)構(gòu)棧,感興趣的朋友跟隨小編一起看看吧2024-09-09
C#實現(xiàn)綁定DataGridView與TextBox之間關(guān)聯(lián)的方法
這篇文章主要介紹了C#實現(xiàn)綁定DataGridView與TextBox之間關(guān)聯(lián)的方法,涉及C#綁定控件關(guān)聯(lián)性的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-08-08
C#中的ICustomFormatter及IFormatProvider接口用法揭秘
這篇文章主要介紹了C#中的ICustomFormatter及IFormatProvider接口用法揭秘,本文能過分析一段代碼得出一些研究結(jié)果,需要的朋友可以參考下2015-06-06

