【问题标题】:How to generate 8 digits UNIQUE & RANDOM number in C# [closed]如何在 C# 中生成 8 位唯一和随机数 [关闭]
【发布时间】:2013-02-06 16:19:50
【问题描述】:

有人知道如何创建唯一且随机的 8 位数字吗?有一些方法可以创建随机数,但我的要求是创建一个唯一的,它也应该是一个 8 位的随机数。有什么想法吗?

【问题讨论】:

  • 独特是什么意思?与以前的随机数唯一的随机数?在这种情况下,它不是一个真正的随机数。否则只需使用 random.NextDouble()。
  • 你如何定义“独特”?如果您生成 10^9 个这些数字,您将很快用完“唯一”随机数。如果您需要的不仅仅是 8 位数字,请尝试 Guid.NewGuid()
  • 0000004 // 保证随机,通过掷骰子选择。
  • “独特”是什么意思。 8位数字只有这么多。这就像尝试生成一个唯一且随机的 2 位数字(大约 100 次后会变得更难)。
  • @Rawling - 该死的。史诗般的失败。

标签: c# numbers unique


【解决方案1】:
Random rnd = new Random();
int myRandomNo= rnd.Next(10000000, 99999999); // creates a 8 digit random no.

【讨论】:

  • 尽管按照 OP 的要求,它并不能保证其唯一性。
  • 有没有办法在提供给 rnd.Next() 方法的范围内保持这个 myRandomNo 的唯一性?
  • Next() 方法中上限的maxValue独占,与minValue 不同,minValue包容。这意味着该范围包括minValuemaxValue-1 以及介于两者之间的所有数字。要正确包含 所有 8 位数字,对 Next() 的正确调用应该是 rnd.Next(10000000, 100000000)
  • 不保证唯一性。这可能是生产中的一个严重问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多