首页 >后端开发 >C++ >如何在 C# 中生成不重复的随机数?

如何在 C# 中生成不重复的随机数?

Linda Hamilton
Linda Hamilton原创
2025-01-21 13:11:10846浏览

How to Generate Non-Repeating Random Numbers in C#?

在 C# 中生成不重复的随机数

在需要生成随机唯一数字的应用程序开发中,开发人员经常会遇到 System.Random 类的问题。即使使用了 DateTime.Now.Ticks 作为种子,仍然可能出现重复数字的情况。

解决重复值问题

System.Random.Next() 本身并不保证生成的数字的唯一性。当结合较窄的范围(例如 0 到 10)时,遇到重复值的概率会更高。

替代方法:列表维护

为了克服这个限制,一种更健壮的方法是维护一个已生成数字的列表。通过检查潜在数字是否已存在于列表中,可以避免重复。

以下是使用此策略的修改后的实现:

<code class="language-csharp">public Random a = new Random();
public List<int> randomList = new List<int>();
int MyNumber = 0;

private void NewNumber()
{
    MyNumber = a.Next(0, 10);
    if (!randomList.Contains(MyNumber))
        randomList.Add(MyNumber);
}</code>

通过维护已生成数字的列表并过滤掉重复项,这种方法确保了真正唯一值的创建。

以上是如何在 C# 中生成不重复的随机数?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn