c#随机数问题
在同一个页面里我要用到多个随机数字
于是写了个方法
public static string GetRandom(int len)
{
StringBuilder strbu = new StringBuilder();
for (int i = 0; i < len; i++)
{
strbu.Append((new Random()).Next(10));
}
return strbu.ToString();
}
但是在同一个页面调用时,得到的随机数是完全一样的,为什么会这样呢?
顺便说一下,本来是做文件上传,用的是时间,但得到的时间有时是一样,就想到用随机数,哪知道,几次产生随机数也是一样的
[解决办法]
试试下面这个方法。
DateTime date = DateTime.Now;
Random ran = new Random( date.Ticks );
strbu.Append(ran.Next(10));
[解决办法]
DateTime date = DateTime.Now;
Random ran = new Random( date.Ticks );
strbu.Append(ran.Next(10));
UP
[解决办法]
StringBuilder strbu = new StringBuilder();
DateTime date = DateTime.Now;
Random ran = new Random((int)date.Ticks);
strbu.Append(ran.Next(10));
Console.WriteLine(strbu.ToString());
[解决办法]
不嫌麻烦就用 跳蚤算法 (提供者 kitygirl)
http://blog.csdn.net/kitegirl/archive/2007/06/26/1666449.aspx
[解决办法]
Random rdn = new Random(7);
for(int i = 0; i < 10; i++)
{
this.textBox1.Text += rdn.Next(7).ToString() + "\n ";
}
要用一个种子。
[解决办法]
不能用random ,用另一个随机函数 ,我不知道怎么写了
[解决办法]
RNGCryptoServiceProvider
[解决办法]
new Random().Next(0,100000);
[解决办法]
// 这里的Base可以看成是你需要的所有字母、符号、数字的一个集合。
public string GetRandom(string Base, int Length)
{
string RandomStr = " ";
Random rand = new Random();
while (RandomStr.Length < StrLength)
{
RandomStr = RandomStr + Base[rand.Next(Base.Length)];
}
return RandomStr;
}
public string GetRandom(int Length)
{
return GetRandom( "0123456789 ",Length);
}
[解决办法]
Random random = new Random();
public string GetRandom(int len)
{
StringBuilder strbu = new StringBuilder();
for (int i = 0; i < len; i++)
{
strbu.Append(random.Next(10));
}
return strbu.ToString();
}
把random设置为对象属性。