Random 是伪随机,所以只要种子相同,每次出来的结果都相同。
默认以时间作为种子,所以在循环中,如果没有多余的耗时运算,每次都会采用相同的种子。
for (int i = 0; i < 10; i++) { Random random = new Random(); string s = ""; for (int j = 0; j < 10; j++) { s += random.Next(0, 10); } Response.Write(s); Response.Write(","); }
如上代码,10 个数字,每个数字 10 位,在我电脑上,10 个数字都是一样的,解决办法:
Random random = new Random();
改为:
Random random = new Random((int)DateTime.Now.Ticks + i);