C# 如何避免重复随机数,我想在asp.net中生成数十亿个随机数,但它是重复的 static Random r=new Random(); 公共静态int Randfunc(int开始,int结束) { 列表编号=新列表(); int n=r.Next(开始、结束); 返回n; }

C# 如何避免重复随机数,我想在asp.net中生成数十亿个随机数,但它是重复的 static Random r=new Random(); 公共静态int Randfunc(int开始,int结束) { 列表编号=新列表(); int n=r.Next(开始、结束); 返回n; },c#,C#,试试这样的方法 static Random r = new Random(); public static int Randfunc(int start, int end) { List<int> numbers = new List<int>(); int n = r.Next(start, end); return n; } var start=0//最小数字范围 var端=1000//最大数字范围 int i=0; 随机=新随机(); v

试试这样的方法

static Random r = new Random();

public static int Randfunc(int start, int end)
{
    List<int> numbers = new List<int>();
    int n = r.Next(start, end);
    return n;
}
var start=0//最小数字范围
var端=1000//最大数字范围
int i=0;
随机=新随机();
var numbers=新的HashSet();
while(i<100)//收集100个唯一的数字
{
var编号=随机。下一步(开始、结束);
如果(!numbers.Contains(number))
{
数字。添加(数字);
i++;
}
}

您不做任何事情来跟踪您已经生成的数字,至少不在本代码中。为什么禁止多次随机生成相同的数字?它也可能会给你1,1,1,1,1,1,1。是的,如果你禁止重复数字,那么它就不再是随机的了。听起来你需要一个替代品。
        var start = 0;//Min range of numbers
        var end = 1000;//Max range of numbers
        int i = 0;
        Random random = new Random();
        var numbers = new HashSet<int>();
        while(i < 100)//Collect 100 unique numbers
        {
            var number = random.Next(start, end);
            if (!numbers.Contains(number))
            {
                numbers.Add(number);
                i++;
            }
        }