Random rd1=new Random(); //建立随机数
for(int i=0;i<3;i++)
{
int x=rd1.Next(0,9);
Response.Write(x+"<br>");
}
如果只按上面的方法写,Response输出的结果可能有很多种.包括下面的
1,1,1 1,3,4 1,6,7
3,5,6 6,6,6 8,8,0
我怎么才能让三次输出的结果不出现2个以上的重复值?我要的结果是类似下面的
1,3,5 6,7,8 0,2,4
5,7,8 3,5,7 8,2,4谢谢各位了,给我写详细点,小弟刚菜鸟入门。或者有没有别的更好的解决办法。
for(int i=0;i<3;i++)
{
int x=rd1.Next(0,9);
Response.Write(x+"<br>");
}
如果只按上面的方法写,Response输出的结果可能有很多种.包括下面的
1,1,1 1,3,4 1,6,7
3,5,6 6,6,6 8,8,0
我怎么才能让三次输出的结果不出现2个以上的重复值?我要的结果是类似下面的
1,3,5 6,7,8 0,2,4
5,7,8 3,5,7 8,2,4谢谢各位了,给我写详细点,小弟刚菜鸟入门。或者有没有别的更好的解决办法。
{
Random ram1=new Random((i+1)*5*unchecked((int)DateTime.Now.Ticks));
Random ram=new Random((i+2)*unchecked((int)DateTime.Now.Ticks));
int ss=ram.Next(0,5);
int tt=ram1.Next(0,5);
int t=ss+tt;
}
{
string Vchar="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,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[] VcArray=Vchar.Split(new Char [] {','});//拆分成数组
string VNum="";
int temp=-1;//记录上次随机数值,尽量避避免生产几个一样的随机数 Random rand=new Random();
//采用一个简单的算法以保证生成随机数的不同
for(int i=1;i<VcodeNum+1;i++)
{
if(temp!=-1)
{
rand=new Random(i*temp*unchecked((int)DateTime.Now.Ticks));
}
int t=rand.Next(61);
if(temp!=-1&&temp==t)
{
return RndNum(VcodeNum); }
temp=t;
VNum+=VcArray[t];
}
return VNum;
会出现61以上的值。
由于是随机的,你没办法控制什么时候会出现重复值,当数据越少
出现重复值的几率就越大,到最后可能会出现死循环,我做过实验,
当有100条数据时,你取99条数据,估计也要个几小时都说不准,反正我
电脑是CPU100%