生成随机数的问题

发布于 2024-09-26 18:29:39 字数 466 浏览 4 评论 0原文

可能的重复:
为什么我的C# 中的随机数生成器不是随机的?

亲爱的朋友,

我想生成 4 个 1 - 55 之间的随机数,但问题是大多数时候我收到 2 个相同的数字:( 例如生成的数字是2 2 5 9 或 11 11 22 22! 我不知道为什么? 我使用 :

Random random = new Random();
return random.Next(min, max);

来生成随机数。我把它们放在一段时间内,重复 4 次。有什么想法吗?你能帮我吗?

Possible Duplicate:
Why does it appear that my random number generator isn't random in C#?

Dear friends

I want to generate 4 random number between 1 - 55 ,but the problem is that most of the time I receive 2 number same :( for example the generated number is 2 2 5 9 or 11 11 22 22!
I dont know why?
I use :

Random random = new Random();
return random.Next(min, max);

for generating my random number. I put them in a While for repeating 4 times. Any Idea?Would u help me plz?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

时光是把杀猪刀 2024-10-03 18:29:40

当您创建一个 new Random() 而不指定种子时,它会使用当前系统时间进行播种。

我不记得它使用的精度(滴答声?毫秒?),但如果您创建新的随机对象并快速连续使用它们,它们可以轻松地具有相同的种子和从而返回相同的结果。

创建一个 new Random(),并对其重复调用 .Next(min, max)

When you create a new Random() without specifying a seed, it seeds it using the current system time.

I don't remember off the top of my head the precision it uses (ticks? milliseconds?) but if you create new Random objects and use them in quick succession, they could easily have the same seed and thus return the same results.

Create one new Random(), and call .Next(min, max) on it repeatedly.

撩心不撩汉 2024-10-03 18:29:39

您应该只创建一个 Random() 对象并重复使用它,而不是为生成的每个随机数创建一个新对象。

原因是每次创建一个新的 Random 对象时,它都会从当前时间开始为自己播种。如果您在短时间内创建多个 Random 对象,那么它们将在相同的时间播种,因此它们将生成相同的数字。

You should create just one Random() object and reuse it instead of creating a new one for each random number you generate.

The reason is that every time you create a new Random object it seeds itself from the current time. If you create multiple Random objects within a short period of time then then they will seed with the same time, and so they will generate the same numbers.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文