在一组10人生成的答案中,生成10个不应该匹配的唯一数字的方法应该是什么?
发布于 2012-04-13 23:06:39
这个有一个很好的解决方案。我假设你必须以随机的方式给出数字1-10到10个不同的人(但如果你有10个(或更多)不同的、不连续的数字,这个原则也适用)。
发布于 2012-04-14 04:31:48
您可以使用OS工具来生成GUID (全局唯一标识符)。
GUID是一个32位的十六进制,看起来像这样:{21EC2020-3AEA-1069-A2DD-08002B30309D}
(无耻地从GUID wikipedia article窃取)。这使它成为一个128位的数字。现在,它有了所有那些恼人的字符,但没有什么能阻止你删除无关的字符,并从十六进制转换,并将其视为普通数字。
出于实际原因,您需要注意128位数字在某些语言中有点笨拙,比如C99。但是你仍然可以使用编译器扩展(GCC有__uint128_t
),或者以其他方式处理它。
https://stackoverflow.com/questions/10143163
复制相似问题