C# 中怎样随机输出从0~100的数字且不重复?(不用数组)

2024-12-20 13:29:03
推荐回答(5个)
回答1:

不用数组?好吧。
楼主大概是想搞个发牌程序?
class Program
{
static void Main(string[] args)
{
List numbersToSelect = new List();
for (int i = 0; i < 100; i++)
{
numbersToSelect.Add(i);
}

for (int j = 99; j >= 0; j--)
{
Random random = new Random();
// 保证index落在List大小范围之内
int index = random.Next(0, j);
Console.WriteLine("当前输出:{0}", numbersToSelect[index]);
// 每次取完之后Remove掉,这样就不会重复了
numbersToSelect.RemoveAt(index);
}

Console.ReadKey();
}
}

回答2:

不用数组,可以用集合ArrayList,将产生的每个随机数与保存在集合中的数相比较,如果没有则保存,如果有则另外产生一个再与集合比较.
直到集合的容量为100时则不能再产生任何一个数了.

回答3:

生成0-100的随即数你会吧.
生成之后,拿生的东西放到一个集合里面.
在次生成的时候则循环集合里面的每个元素.
判断是否重复,如果重复则在生成一个随即数
就可以了

回答4:

这个还算随机数吗?
比如生成了99个,那剩下的就是必然的了,不是随机数了.随机数不适合用在这儿

回答5:

Random r = new Random();
int x=r.Next(0, 100);
Console.WriteLine(x);
输出0-100之间的随机数