如何在C#中生成8位唯一随机数

4

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


4
“unique”是什么意思?是指与之前的随机数不同的随机数吗?如果是这样,那它就不是真正的随机数了。否则,只需使用random.NextDouble()函数即可。 - Michel Keijzers
2
你如何定义“唯一”?如果你生成10^9个这样的数字,你很快就会用完“唯一”的随机数。如果你需要一个不仅仅是8位数字的唯一标识符,可以尝试使用Guid.NewGuid() - Nolonar
6
"0000004"是通过掷骰子随机选择的,确保其随机性。 - Jamiec
1
“unique”是什么意思?只有那么多个8位数字。这就像尝试生成唯一且随机的2位数字(大约100次后变得更难)。 - paul
1
@Rawling - 真糟糕。失败了。 - Jamiec
显示剩余3条评论
1个回答

13
Random rnd = new Random();
int myRandomNo= rnd.Next(10000000, 99999999); // creates a 8 digit random no.

7
并没有保证其独特性,正如原帖中所问。 - Jamiec
有没有办法在rnd.Next()方法提供的范围内保持myRandomNo的唯一性? - Aruna
Next() 方法中上限的 maxValue不包含 的,而 minValue包含 的。这意味着该范围包括 minValuemaxValue-1 和之间的所有数字。为了正确地包含 所有 8 位数,正确的 Next() 调用应该是 rnd.Next(10000000, 100000000) - Heini Samuelsen
1
不保证唯一性。这可能是生产中的严重问题。 - Prakash P

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接