随机数生成

时间:2012-04-13 14:54:16

标签: random

生成10个唯一数字的方法应该是什么,这些数字在10个人生成的答案中不应该匹配?

2 个答案:

答案 0 :(得分:3)

这个有一个很好的解决方案。我假设您必须以随机的方式给1-10到10个不同的人(但如果您有10个(或更多)不同的非连续数字,则该原则也有效)。

答案 1 :(得分:2)

您可以使用OS工具生成GUID(全局唯一标识符)。

GUID是一个32位十六进制,如下所示:{21EC2020-3AEA-1069-A2DD-08002B30309D}(从GUID wikipedia article无耻地窃取)。这使它成为128位数。现在,它有所有那些烦人的角色,但没有什么能阻止你删除无关的角色并从十六进制转换并将其视为普通数字。

出于实际原因,您需要注意128位数字在某些语言中有点笨拙,例如C99。但您仍然可以使用编译器扩展(GCC具有__uint128_t)或以其他方式处理它。