§ ITPOW >> 文档 >> C#

循环中 Random 刷新问题

作者:vkvi 来源:ITPOW(原创) 日期:2020-12-25

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);


相关文章