在c#中随机选择均匀分布的数字

时间:2014-10-15 17:14:13

标签: c# random

很抱歉,如果之前有人询问过。 我需要从NxN矩阵中随机选择一个条目, 试图使用

Random r = new Random();
int x = r.Next0,N-1);
int y = r.Next(0,N-1);

 //some method to operate on x and y
 Open(x,y);

但是对于N = 10,我只得到大约44个独特的x和y对,之后它只重复已经选择的对。

有什么理由?是因为我使用相同的Random实例吗?

1 个答案:

答案 0 :(得分:0)

此代码将按顺序输出'Keys = 81'(9 * 9),因此您的代码必定存在其他问题。

        Random r = new Random();
        int N = 10;
        Dictionary<string, string> d = new Dictionary<string,string>();
        while (true) {
            int x = r.Next(0, N - 1);
            int y = r.Next(0, N - 1);
            string s = x + "." + y;
            if (!d.ContainsKey(s)) {
                d[s] = s;
                Console.WriteLine("Keys = " + d.Keys.Count);
            }
        }