gpt4 book ai didi

C# 为什么在随机数中得到一个零数

转载 作者:行者123 更新时间:2023-12-04 15:09:44 24 4
gpt4 key购买 nike

我正在尝试使用随机数创建数组列表。但有时我的结果为零。我不明白为什么。

如果有人能解释一下,我将不胜感激。

int[] number = new int[6];
Random rnd = new Random();
for (int i = 0; i < number.Length; i++)
{
int random = rnd.Next(1, 26);
if (!number.Contains(random))
{
number[i] = random;
}
}
foreach (int nr in number)
{
Console.Write("|" + nr + "|");
}
//results
|6||12||0||22||25||11|

最佳答案

int[] number = new int[6];

此处创建的数字数组默认为 int值即 0

在某些情况下,您的代码存在问题,因为检查
if (!number.Contains(random))

您可以更改您的代码以包含一个循环来保证您的随机数不在数组中。

int[] number = new int[6];
Random rnd = new Random();
for (int i = 0; i < number.Length; i++)
{
int random = rnd.Next(1, 26);
while (number.Contains(random))
{
random = rnd.Next(1, 26);
}
number[i] = random;
}
foreach (int nr in number)
{
Console.Write("|" + nr + "|");
}

请注意,对于每个新的随机值,我们每次都遍历整个数组以检查它是否存在,因此当前的方法非常耗费性能。您可以使用 as HashSet<int> 来降低性能如果可能的话

关于C# 为什么在随机数中得到一个零数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65438455/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com