产生指定上限的随机数
Random ran = new Random();
int n = ran.Next(100);
|
产生指定上下限的随机数
Random ran = new Random();
int n = ran.Next(100, 1000);
|
用 Random 结合数组产生指定范围随机数
public string GetRandom(string[] arr) { Random ran = new Random(); int n = ran.Next(arr.Length - 1); return arr[n]; }
调用方法:
string[] arr = { "25", "28", "30", "50", "60" }; GetRandom(arr);
|
用 Random 产生小数随机数
public double NextDouble(Random ran, double minValue, double maxValue) { return ran.NextDouble() * (maxValue - minValue) + minValue; }
Random ran = new Random(); double randNum = NextDouble(ran, 1.52, 2.65); Response.Write(randNum);// 结果 2.30927768119112
// 保留指定位数 public double NextDouble(Random ran, double minValue, double maxValue, int decimalPlace) { double randNum = ran.NextDouble() * (maxValue - minValue) + minValue; return Convert.ToDouble(randNum.ToString("f" + decimalPlace)); }
Random ran = new Random(); double randNum = NextDouble(ran, 5.16, 8.68, 2);// 保留两位小数 Response.Write(randNum);// 结果 8.46
|
产生相对不重复的随机数
System.Security.Cryptography命名空间下提供一个名为RNGCryptoServiceProvider的类,它采用系统当前的硬件信息、进程信息、线程信息、系统启动时间和当前精确时间作为填充因子,通过更好的算法生成高质量的随机数
byte[] randomBytes = new byte[4]; RNGCryptoServiceProvider rngServiceProvider = new RNGCryptoServiceProvider(); rngServiceProvider.GetBytes(randomBytes); Int32 result = BitConverter.ToInt32(randomBytes, 0);
|