就是这样的代码,为什么每次生成的都一样?怎么写才生成不一样的? for (int i = 0; i <= 9; i++)
{
Random rs = new Random();
Console.WriteLine(rs.Next(1,100));
}
{
Random rs = new Random();
Console.WriteLine(rs.Next(1,100));
}
/// <summary>
/// 生成随机数
/// </summary>
/// <param name="weishu">位数</param>
/// <returns></returns>
public static string Random(int weishu)
{
string re = null;
Random rnd = new Random();
for (int i = 0; i < weishu; i++)
{
re = re + rnd.Next(10).ToString();
}
return re;
}
for (int i = 0; i <= 9; i++)
{
Console.WriteLine(rs.Next(1,100));
}random 产生的数字是根据时间得来的
就是在极短的时间内(V老大说的时钟周期)你连续new出几个random 他们的数字式一样的
解决办法是sleep()几毫秒 或者使用一个random对象
放到循环外面就好了,因为在循环里面的时候每次都会重新实例化,生成的随机数也就一样了。
rand .Next(最小值,最大值)
Random rnd = new Random(DateTime.Now.Millisecond);Enumerable.Range(1, 100).OrderBy(Guid.NewGuid());
for (int i = 0; i <= 9; i++)
{
Console.WriteLine(rand.Next(1,100));
}