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++;
}
}