首页 > 后端开发 > C++ > 如何在 C# 中生成六个唯一的随机数?

如何在 C# 中生成六个唯一的随机数?

DDD
发布: 2025-01-12 13:37:46
原创
935 人浏览过

How to Generate Six Unique Random Numbers in C#?

避免重复:C#随机数生成器

你的代码旨在生成六个介于1到49之间的随机数。然而,这些数字可能包含重复项,这在类似彩票的场景中是不可接受的。为了解决这个问题,我们将探讨一种在C#中生成唯一随机数的有效方法。

解决方案:

将生成的数字存储在一个集合中。每次生成一个新数字时,检查它是否已存在于集合中。如果存在,则继续生成另一个数字,直到找到一个唯一的数字为止。

以下是你的代码的修改版本,它实现了此解决方案:

<code class="language-csharp">var randomNumbers = new List<int>();
var random = new Random();

while (randomNumbers.Count < 6)
{
    int randomNumber = random.Next(1, 50); // 生成1到49之间的随机数
    if (!randomNumbers.Contains(randomNumber))
    {
        randomNumbers.Add(randomNumber);
    }
}</code>
登录后复制

或者,我们可以采用以下策略:

洗牌并选择法:

  1. 创建一个从1到49的数字序列。
  2. 使用随机函数对序列进行洗牌。
  3. 从洗牌后的序列中选择前六个数字。

以下是这种方法的代码:

<code class="language-csharp">var rnd = new Random();
var randomNumbers = Enumerable.Range(1, 49).OrderBy(x => rnd.Next()).Take(6).ToList();</code>
登录后复制

这种方法保证了唯一随机数的生成,无需自定义循环或额外检查重复项。

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板