制作一个随机整数数组

Posted

技术标签:

【中文标题】制作一个随机整数数组【英文标题】:Making an array of random ints 【发布时间】:2012-02-10 19:33:12 【问题描述】:

我尝试生成一个随机 int 值数组,其中随机值介于最小值和最大值之间。

到目前为止,我想出了这个代码:

int Min = 0;
int Max = 20;

int[] test2 = new int[5];
Random randNum = new Random();
foreach (int value in test2)

    randNum.Next(Min, Max);

但它还没有完全工作。 我想我可能只缺少 1 行或其他内容。 谁能帮我把我推向正确的方向?

【问题讨论】:

您实际上并没有在每次迭代时为您的数组分配一个值。 【参考方案1】:

您永远不会在 test2 数组中分配值。您已声明它,但所有值都将为 0。以下是如何在指定间隔内为数组的每个元素分配一个随机整数:

int Min = 0;
int Max = 20;

// this declares an integer array with 5 elements
// and initializes all of them to their default value
// which is zero
int[] test2 = new int[5]; 

Random randNum = new Random();
for (int i = 0; i < test2.Length; i++)

    test2[i] = randNum.Next(Min, Max);

您也可以使用 LINQ:

int Min = 0;
int Max = 20;
Random randNum = new Random();
int[] test2 = Enumerable
    .Repeat(0, 5)
    .Select(i => randNum.Next(Min, Max))
    .ToArray();

【讨论】:

第一个给了我更多的错误,到目前为止,我对 c# 的了解大约是 2 周前,呵呵。第二个就像一个魅力。谢谢【参考方案2】:

您需要将 random.next 结果分配给循环内数组的当前索引

【讨论】:

您不能添加到数组中,这是一个列表。如果您在foreach 循环中执行此操作,则该集合将在迭代时被修改。 抱歉,这仍然是一个错误的答案,也是一个糟糕的答案:使用foreach 是访问数组的元素,你不能这样填充它们 啊,我完全忽略了原始问题中的 foreach 循环。

以上是关于制作一个随机整数数组的主要内容,如果未能解决你的问题,请参考以下文章

在 20 个整数的数组中搜索并计算单个随机数

随机生成【1,100】之间的10个整数存放在数组中。

c语言产生4位随机数

在 Java 中随机化整数数组的最快方法

从数组中选择不相等的随机整数(python)

day_5:求范围内的随机正负整数,拍平数组,拍平数组(按需拍平,纯js算法版)-返回一个 十六进制 的 随机颜色