随机数字问题 [英] Problem with randomize numbers
本文介绍了随机数字问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
你好
我对随机数组有问题.我需要有许多随机数,但它们必须完全不同.如果程序生成12,则下次必须生成另一个数字(而不是12)!!!
我写了这段代码:
Hello
I have a problem with random array. I need to have many randomize numbers but they have to be all dissimilar. If program generates 12, it must generate another number next time (not 12)!!!
I wrote this code:
List<int> rn = new List<int>();
Random r = new Random();
bool br = true;
for (int p = 0; p < 10; p++)
{
int i=0;
while (true)
{
i = r.Next(1, 11);
foreach (int a in rn)
{
if (a == i)
br = false;
}
if (br == true)
break;
}
rn.Add(i);
}
但是4或5个数字之后,它的续航时间非常糟糕.
请帮助我.:confused:
but after 4 or 5 numbers it is prolonging very bad.
help me please.:confused:
推荐答案
我写了一个提示,我认为它可以提供帮助.
如何生成许多随机的各种数字? [ ^ ]
简要地:
Hi,
I''ve written a tip and I think it can help.
How to generate many random various numbers?[^]
briefly:
//C#
public static int RandomNumber(ref List<int> numbers, Random random)
{
int count = numbers.Count;
int randomIndex = random.Next(0, count);
int returnedNumber = numbers[randomIndex];
numbers.RemoveAt(randomIndex);
return returnedNumber;
}
使用该方法的必要条件是拥有一个随机变量和一个数字列表,例如:
It''s requisite for using the method, to have a random variable and a list of numbers, for example:
//C#
Random random = new Random();
List<int> numbers = new List<int>();
for (int i = 0; i <= 1000; i++)
{
numbers.Add(i);
}
//Ok, For each using the method, there is a new and defferent random number:
Console.WriteLine(RandomNumber(ref numbers, random));
Console.WriteLine(RandomNumber(ref numbers, random));
Console.WriteLine(RandomNumber(ref numbers, random));
Console.WriteLine(RandomNumber(ref numbers, random));
Console.WriteLine(RandomNumber(ref numbers, random));
Console.ReadKey();
而且我认为您会看到良好的性能.
And I think you''ll see a good performance.
您应该在
br=true;
循环之前设置
foreach (int a in rn)
附录
试试这个:
loop
addendum
Try this :
for (int p = 0; p < 10; p++)
{
int i=0;
while (true)
{
i = r.Next(1, 11);
if (!rn.Contains(i))
{
rn.Add(i);
break;
}
}
}
干杯
Cheers
这篇关于随机数字问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文