更好的 C# 随机函数

问题描述 投票:0回答:3

我正在生成许多随机数,我需要一个好的函数,因为这没有多大帮助:

public static class Randomizer
{
    static Random random = new Random((int)DateTime.Now.Ticks);

    public static int RandomInteger(int minimum, int maximum)
    {
        return random.Next(minimum, maximum + 1);
    }

    public static double RandomDouble()
    {
        return random.NextDouble();
    }
}

当我使用这个类时,我的数字经常是相同的。您知道如何提高随机发生器输出的随机性吗?

c# .net random
3个回答

0
投票

查看 Jon Skeet 的 MiscUtil

有一个静态随机类,可以正常工作。

顺便问一下,您需要随机数还是唯一数?


-3
投票

您的数字相同的原因是您每次调用该类时都会创建一个新的随机数,这意味着它将使用 DateTime.Now.Ticks 中的相同数字进行种子

您应该将其设为非静态类。实例化一次,然后从对象中重复调用相同的函数

© www.soinside.com 2019 - 2024. All rights reserved.