首页 > 编程笔记 > C#笔记 阅读:13

C# Random生成随机数(附带实例)

C# 的 System 命名空间内有 Random 类,这个类可以产生随机数。

要产生随机数首先要创建随机数对象,语法如下:
Random rnd = new Random();              // rnd就是随机数对象
有了随机数对象 rnd 后,就可以用此对象调用 Next() 方法生成随机数了。

在面向对象的方法中,Next() 的用法有下列几种:

上述 min、max 都是 int 数据类型。


【实例 1】产生整数的随机数。
Random rnd = new Random();
int i, r;
Console.WriteLine("产生 5 个 0 ~ 2147483647(不含) 随机数");
for (i = 0; i < 5; i++)
{
    r = rnd.Next();
    Console.Write($"{r}\t");
}
Console.WriteLine();
Console.WriteLine("产生 8 个 0 ~ 6(不含) 的随机数");
for (i = 0; i < 8; i++)
{
    r = rnd.Next(6);
    Console.Write($"{r}\t");
}
Console.WriteLine();
Console.WriteLine("产生 8 个 1 ~ 7(不含) 的随机数");
for (i = 0; i < 8; i++)
{
    r = rnd.Next(1, 7);
    Console.Write($"{r}\t");
}
执行结果为:
产生 5 个 0 ~ 2147483647(不含) 随机数
1195709968     1818420620     694702415 1561246397     318308710
产生 8 个 0 ~ 6(不含) 的随机数
4    3    4    4    0    5    5    5   
产生 8 个 1 ~ 7(不含) 的随机数
4    3    4    4    3    4    6    4     

【实例 2】产生 5 个 0~1.0 的随机数。
Random rnd = new Random();
int i;
double r;
Console.WriteLine("产生 5 笔 0 ~ 1.0(不含) 随机数");
for (i = 0; i < 5; i++)
{
    r = rnd.NextDouble();
    Console.WriteLine($"{r}\t");
}
执行结果为:
产生 5 笔 0 ~ 1.0(不含) 随机数
0.483980573473489  
0.951977861557146  
0.250364108593373  
0.211847398994419  
0.0765989283456462 

C#随机数种子

基本上每次执行前面的随机数实例时,都可以获得不一样的随机数,如果想要每次执行都获得一样的随机数,在创建随机数对象时,需设定随机数种子,语法如下:
Random rnd = new Random(int seed);
上述语句中 seed 是种子的值,数据类型是 int,设定以后可以获得一样的随机数。在一些数据实验中,我们期待每次使用的随机数都一样,方便追踪数据变化,这时可以使用随机数种子,产生固定的随机数。

【实例 3】使用值为 100 的随机数种子,创建 5 笔随机数,读者可以重复执行此程序,每次可以获得一样的随机数。
Random rnd = new Random(100);
int i, r;
Console.WriteLine("产生 5 个 0 ~ 2147483647(不含) 随机数");
for (i = 0; i < 5; i++)
{
    r = rnd.Next();
    Console.Write($"{r}\t");
}
执行结果为:
产生 5 个 0 ~ 2147483647(不含) 随机数
2080427802    341851734    1431988776    1938005744    761513014
再次执行程序,得到的结果是一样的。

相关文章