相关疑难解决方法(0)

C#随机数生成器卡在一个循环中

我正在使用.NET创建一个人工生命程序,我正在使用C#在Singleton中定义的伪随机类.我的想法是,如果我在整个应用程序中使用相同的随机数生成器,我只能保存种子,然后从种子重新加载以重新计算某个有趣的运行.

public sealed class RandomNumberGenerator : Random
{
    private static readonly RandomNumberGenerator instance = new RandomNumberGenerator();

    RandomNumberGenerator()
    {

    }

    public static RandomNumberGenerator Instance
    {
        get
        {
            return instance;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我还想要一个可以给我两个不同随机数的方法.

public static Tuple<int, int> TwoDifferentRandomNumbers(this Random rnd, int minValue, int maxValue)
    {
        if (minValue >= maxValue)
            throw new ArgumentOutOfRangeException("maxValue", "maxValue must be greater than minValue");
        if (minValue + 1 == maxValue)
            return Tuple.Create<int, int>(minValue, maxValue);

        int rnd1 = rnd.Next(minValue, maxValue);
        int rnd2 = rnd.Next(minValue, maxValue);
        while (rnd1 == …
Run Code Online (Sandbox Code Playgroud)

c# random thread-safety

5
推荐指数
2
解决办法
2066
查看次数

标签 统计

c# ×1

random ×1

thread-safety ×1