首页 >后端开发 >C++ >如何生成唯一且不重复的随机数?

如何生成唯一且不重复的随机数?

Barbara Streisand
Barbara Streisand原创
2025-01-12 13:47:43752浏览

How Can I Generate Unique Random Numbers Without Duplicates?

避免重复的随机数生成器

在生成彩票或其他场景的随机数时,确保同一行中的数字唯一至关重要。最初提供的代码未能解决此问题,可能导致重复。

解决重复问题

为了解决这个问题,必须将生成的数字存储在一个集合中。每次选择一个新数字时,检查它是否已存在于集合中。如果存在,则生成一个新数字,直到找到一个唯一的数字为止。

使用不同的方法

或者,一种更有效的方法是生成 1 到 49 之间的数字序列,随机打乱它们,然后从打乱的序列中选择前六个数字。这确保了唯一性,无需不断检查。

以下是使用此方法改进后的代码:

<code>var rnd = new Random();
var randomNumbers = Enumerable.Range(1, 49).OrderBy(x => rnd.Next()).Take(6).ToList();</code>

此代码生成一个随机序列,然后对其进行洗牌并选择前六个数字,保证没有重复。

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

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