【发布时间】:2020-04-01 03:44:48
【问题描述】:
我想在一个 8*8 数组中输入 64 个不同的数字,但我遇到了问题...
int[,] check = new int[8, 8];
Random rnd = new Random();
int[,] T = new int[8, 8];
for (int i = 0; i <=7; i++)
{
for (int j = 0; j <=7; j++)
{
int num = rnd.Next(1, 64);
check[i, j] = num;
while (num != check[i,j])
{
T[i, j] = num;
}
Console.Write("{0}\t", T[i, j]);
}
Console.Write("\n\n");
}
【问题讨论】:
-
所写的代码永远无法完成,因为它只能生成 63 个随机数。你实际上并不想要随机数,你知道你想要 1..64。你想要一个随机的order。谷歌“c# random shuffle”找到正确的方法。
-
您可以使用
HashSet来检查随机数是否已被使用。如果不插入二维数组并保存。 -
随机对象提供双精度值。不能存储在 int 中。所以将其转换为整数 int num = Convert.ToInt32(rnd.Next(1, 64)*1000);