c# - 将随机数输入无重复的二维数组

标签 c# arrays random

我想在一个 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");
        }

最佳答案

尝试将数字 0 到 63 随机分配给数组:

    class Program
    {
        const int ROWS = 8;
        const int COLS = 8;
        static void Main(string[] args)
        {
            Random rnd = new Random();

            int[] values = Enumerable.Range(0, ROWS * COLS)
                .Select(x => new { number = x, rand = rnd.Next()})
                .OrderBy(x => x.rand)
                .Select(x => x.number).ToArray();

            int[,] T = new int[ROWS, COLS];

            int count = 0;
            for(int row = 0; row < ROWS; row++)
            {
                for(int col = 0; col < COLS; col++)
                {
                    T[row, col] = values[count++];
                }
            }

        }

关于c# - 将随机数输入无重复的二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59225153/

相关文章:

c# - 是否可以从每个请求中调用一个方法

c# - 3 个数组到 1 个 IEnumerable<test>

c# - 如何允许用户输入 Value1 然后说 Value1 = Value2

c++ - 如何使用 union-find 算法解决这个问题?

ios - random() 会改变吗?

c# - 如何从 C# 更改 GridView 中列的格式

PHP:根据一个键上的组从 Json 数组创建多个 Json 数组

c++ - 具有重复数字的数组的嵌套循环

python - 如何随机选择具有嵌套列表的列表

c++ - 如何使用 SDL 游戏在 C++ 中获取随机值