【发布时间】:2019-07-15 11:31:43
【问题描述】:
我想生成随机数并将它们放入一个数组中,但它们应该只在这个数组中出现一次。这就像一个迷你乐透游戏。 这是我现在拥有的代码:
int[] arrA = new int[10];
Random random = new Random();
for (int i = 0; i <= arrA.Length -1; i++)
{
arrA[i] = random.Next(1, 15);
Console.WriteLine(arrA[i]);
}
Console.ReadKey();
生成随机数并将其放入此数组中。我只需要知道如何编程让它们只出现一次。
【问题讨论】:
-
当你选择一个随机数时,检查它是否已经在数组中。如果是,请选择另一个。
-
但是我该怎么做呢?
-
.Contains(...)? -
只要求一个数字并不是随机,尤其是在范围很小的时候。当您放置唯一性约束时,您最终会得到更多可预测的数字
-
一个做你想做的单线是: var arrA = Enumerable.Range(1,14).OrderBy(g => random.Next()).Take(10).ToArray( ); (这个想法来自stackoverflow.com/a/34716618/1633949)