请用C#写一个生成绝对不重复随机数的方法
时间: 2024-02-03 22:01:40 浏览: 19
C 是一种通用的、面向过程的编程语言,用于开发各种软件,包括操作系统、应用程序和游戏等。C 语言的语法简洁易懂,在学习曲线上很容易上手。同时,它还具有很强的表达能力,使用者可以轻松控制计算机的低层细节。C 语言是许多其他语言(包括 C++、Java、Python 等)的基础,因此学习 C 语言对于任何想要成为计算机程序员的人都非常重要。
相关问题
一个C#随机数的问题,解决随机数重复
在C#中,我们可以使用Random类来生成随机数。但是,如果我们不小心使用了相同的种子,就会导致生成的随机数重复。为了解决这个问题,我们可以使用不同的种子来生成不同的随机数。
下面是一个示例代码,它使用当前时间作为种子来生成随机数:
```
Random rnd = new Random(DateTime.Now.Millisecond);
int randomNumber = rnd.Next(1, 101);
```
在这个示例中,我们使用了当前时间的毫秒数作为种子。由于时间一直在变化,因此每次生成的随机数都不同。
如果需要生成多个随机数,可以在循环中使用不同的种子,例如:
```
for (int i = 0; i < 10; i++)
{
Random rnd = new Random(DateTime.Now.Millisecond + i);
int randomNumber = rnd.Next(1, 101);
Console.WriteLine(randomNumber);
}
```
在这个示例中,我们在每次循环中使用了不同的种子,即当前时间的毫秒数加上循环变量i的值。这样可以确保生成的随机数不会重复。
random不重复随机数
生成不重复的随机数有多种方法。其中一种方法是通过使用数组来存储已经生成的随机数,并使用循环和判断语句来确保生成的随机数不重复。以下是一个示例代码:
```C#
public int[] GetRandomArray(int Number, int minNum, int maxNum)
{
int[] b = new int[Number];
Random r = new Random();
for (int i = 0; i < Number; i++)
{
int num = r.Next(minNum, maxNum + 1);
while (b.Contains(num))
{
num = r.Next(minNum, maxNum + 1);
}
b[i] = num;
}
return b;
}
```
该方法通过循环生成随机数,并使用`Contains()`方法来检查已生成的随机数是否与新生成的随机数重复。如果重复,则重新生成随机数,直到找到一个不重复的随机数为止。