System.Random random = new Random(); return random.Next(25)
ArrayList rands = new ArrayList(); private int GenerateRandom() { System.Random random = new Random(); int i = random.Next(25); while(rands.Contains(i) && rands.Count < 25) { i = random.Next(25); } rands.Add(i); return i; } 当然GenerateRandom()最多只能调用25次,超过25次肯定会生成重复的 我也只是给出一个思路,就是将已经生成过的数都保存起来,下次生成随机数的时候先判断一下是否已经生成过了,如果是则重新生成一个新的 lz可以自己再去完善一下
换一种思路. public class Randoms { ArrayList al; System.Random random; Randoms(int Len) { random = new Random(); al = new ArrayList(Len); for (i = 0; i < Len; i++) { al.Add(i); } } public int GetRandom() { if (al.Count == 0) return -1; int index = random.Next(al.Count); int num = al[index]; al.RemoveAt(index); return num; } }
return random.Next(25)
private int GenerateRandom()
{
System.Random random = new Random();
int i = random.Next(25);
while(rands.Contains(i) && rands.Count < 25)
{
i = random.Next(25);
}
rands.Add(i);
return i;
}
当然GenerateRandom()最多只能调用25次,超过25次肯定会生成重复的
我也只是给出一个思路,就是将已经生成过的数都保存起来,下次生成随机数的时候先判断一下是否已经生成过了,如果是则重新生成一个新的
lz可以自己再去完善一下
{
ArrayList al;
System.Random random;
Randoms(int Len)
{
random = new Random();
al = new ArrayList(Len);
for (i = 0; i < Len; i++)
{
al.Add(i);
}
}
public int GetRandom()
{
if (al.Count == 0) return -1;
int index = random.Next(al.Count);
int num = al[index];
al.RemoveAt(index);
return num;
}
}