随机卡号的生成

lhfdc 2007-04-01 12:54:21
我在页面上写了一个生成卡号的函数
public string Rndnum()
{
int j1;
string strchoice="0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z";
string [] strresult=strchoice.Split(new char[] {','});
string strreturn="";
Random rnd=new Random(unchecked((int)DateTime.Now.Ticks));
for(int i=0;i<6;i++)
{
Random rnd1=new Random(rnd.Next()*unchecked((int)DateTime.Now.Ticks));
j1=rnd1.Next(35);
rnd=new Random(rnd.Next()*unchecked((int)DateTime.Now.Ticks));
strreturn=strreturn+strresult[j1].ToString();
}

return "06330403"+strreturn;

}
在页面上调用这个函数,让它执行10次,
for(int i=0;i<10;i++)
{
string strnum=Rndnum();
Response.write(strnum)
}
结果发现输出的10个strnum的都是一样的,应该怎么解决
...全文
426 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
happyhippy 2007-04-01
  • 打赏
  • 举报
回复
用我上面的方法,
补充:
Rndnum(Random rnd)方法中不要在构造Random对象实例,始终只用通过参数中传进来的实例rnd
daishengs 2007-04-01
  • 打赏
  • 举报
回复
private char[] constant=
{
'0','1','2','3','4','5','6','7','8','9',
'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'
};
private string GenerateRandom(int Length)
{
System.Text.StringBuilder newRandom = new System.Text.StringBuilder(36);
Random rd= new Random();//

for(int i=0;i<Length;i++)
{
newRandom.Append(constant[rd.Next(36)]);
}
return newRandom.ToString();
}
private string GenerateRandom(int Length,int Ini)
{
System.Text.StringBuilder newRandom = new System.Text.StringBuilder(36);
Random rnd=new Random();
int r1=rnd.Next(11,14);
Random rd= new Random(r1*unchecked((int)DateTime.Now.Ticks)+Ini);//

for(int i=0;i<Length;i++)
{
newRandom.Append(constant[rd.Next(36)]);
}
return newRandom.ToString();
}


调用

for(int i=1;i<11;i++)
{
string strnum=GenerateRandom(8,i);
Response.write(strnum)
}

lhfdc 2007-04-01
  • 打赏
  • 举报
回复
upupupup
lhfdc 2007-04-01
  • 打赏
  • 举报
回复
按上面的方式还是不行,还有没有其它的方法,
happyhippy 2007-04-01
  • 打赏
  • 举报
回复
Random时伪随机数生成器!

考虑把Random实例提出来:
public string Rndnum(Random rnd){……}

Random rnd = new Random();
for(int i=0;i<10;i++)
{
string strnum=Rndnum(rnd);
Response.write(strnum)
}

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧