大家帮我看看首先这是一个生成随机数的方法:
public static string GetRandom(int Sum,int Len)
{
string[] s = {"1","2","3","4","5","6","7","8","9"};
Random r = new Random();
string n = null;
int j = 0;
string p;
for(int i=0;i<Len;i++)
{
p =s[r.Next(0, s.Length)].ToString();
n+=p;
j+= Convert.ToInt32(p);
}
if(j>=Sum)
{
return GetRandom(Sum,Len);
}
return n; }让我百思不得其解的地方在下面的方法中调用上面的方法时,居然生成的随机数是一样的!!
public static void Test()
{
for(int i=0;i<8;i++)
{
base.Response.Write(GetRandom(420,50));
}
}想请大家帮忙看看。在线等!!!
public static string GetRandom(int Sum,int Len)
{
string[] s = {"1","2","3","4","5","6","7","8","9"};
Random r = new Random();
string n = null;
int j = 0;
string p;
for(int i=0;i<Len;i++)
{
p =s[r.Next(0, s.Length)].ToString();
n+=p;
j+= Convert.ToInt32(p);
}
if(j>=Sum)
{
return GetRandom(Sum,Len);
}
return n; }让我百思不得其解的地方在下面的方法中调用上面的方法时,居然生成的随机数是一样的!!
public static void Test()
{
for(int i=0;i<8;i++)
{
base.Response.Write(GetRandom(420,50));
}
}想请大家帮忙看看。在线等!!!
解决方案 »
- 请教C#如何获得指定目录下的多种格式的所有图片文件。
- 100分 C# insert DB2 返回自增ID
- c#如何快速操作大的文本文件
- 【求 C# 打开钱箱代码】
- 急!问一个问题,水晶报表数据源为dataset,在dataset加一字段后,为什么在前面数据库字段下dataset里没有加后的字段.
- Encoding和StringBuilder是属于哪个名字空间
- XML问题......??
- 请教:从任意位置直接退出整个程序用哪个?return?谢谢!
- 可大可小的问题,送你分。希望可以深入一点讨论
- c# 通过句柄获取已经打开的excel表中的值
- ASP.net调用VC COM组件,出现“存储空间不足,无法处理此命令”异常
- 刚刚发现,.net原来可以用中文命名变量!!
{
Random rnd = new Random(i * unchecked((int)DateTime.Now.Ticks) + i);
int r2 = rnd.Next();
Random rm1 = new Random(r2 * unchecked((int)DateTime.Now.Ticks) + i); ;
Response.Write(s[rm1.Next(0, s.Length)]);
}
{
for(int i=0;i<8;i++)
{
base.Response.Write(GetRandom(420,50));//在这里获取随机数并输出。就会发现输出的8组数据全都是一样的!!!!
}
}真是搞不明白。为什么单次可以获取。但放在循环体中时却会得出一样的数据来!!!
使用的是使用与时间相关的默认种子值,由于执行速度比较快,所以导致每次的种子值都一样,所以结果也就一样..
{
for(int i=0;i<8;i++)
{
base.Response.Write(GetRandom(420,50));
//每调用一次后,休眠10ms
System.Threading.Thread.Sleep(10);
}
}这样得到的结果应该就不会一样了...
当然我相信随机数的产生可能不仅与时间有关,可能还和进程,或线程标识有关。
把r做成类的静态变量
谢谢,你的分析很精辟。虽然我曾经怀疑过类似的原因,但是因为我想两次数据获取之间的时间间隔应该不至于影响最终结果,所以把这个结论否决了。这都归结于我自己的理论知识不够扎实to: liujia_0421(SnowLover)
很感谢你的解答,你的解答无疑让我证实了上面的朋友说的结论是正确的并且直接的解决了我的问题。谢谢!to:net_lover(【孟子E章】)
我非常感谢你能在百忙之中给我建议。谢谢最后:感谢所有给我建议的朋友们。谢谢你们。我的问题才得以解决!!!