C#生成随机数小结

C#的Random类的实例方法Next可以生成一串伪随机数,Next有三个重载函数:

public virtual int Next();
public virtual int Next(int maxValue);
public virtual int Next(int minValue, int maxValue);

1.public virtual int Next()

说明:返回大于或等于零且小于 System.Int32.MaxValue 的 32 位带符号整数。
Random rand = new Random();
Console.WriteLine(rand.Next());

2.public virtual int Next(int maxValue)

说明:返回大于或等于零且小于 maxValue 的 32 位带符号整数。
Random rand = new Random();
Console.WriteLine(rand.Next(100));

3.public virtual int Next(int minValue, int maxValue)

说明:返回一个大于或等于 minValue 且小于 maxValue 的 32 位带符号整数。
Random rand = new Random();
Console.WriteLine(rand.Next(1000,2000));

和Random类相似的还有一个类Guid,可以用它的静态方法NewGuid来返回一个全局唯一标识符:

Console.WriteLine(Guid.NewGuid().ToString());

附:Random生成随机数测试

//例1
Random rand1 = new Random();
for (int i = 0; i < 50; i++)
{
    Console.WriteLine(rand1.Next(0, 100));
}
//例2
for (int i = 0; i < 50; i++)
{
    Random rand2 = new Random(1000);
    Console.WriteLine(rand2.Next(0, 100));
}

说明:例1生成的随机数不一样,例2生成的随机数总是15。在实际使用中,我们不太可能像例1始终使用同一个Random对象,所以建议在每次初始化时指定一个不同的种子:

//例3
for (int i = 0; i < 100; i++)
{
    Random rand3 = new Random(Guid.NewGuid().GetHashCode());
    Console.WriteLine(rand3.Next(0, 100));
}


评论: 0 | 引用: 0 | 查看次数: 5051
发表评论
登录后再发表评论!