我用Java写了一个小程序,它生成5000个随机UUID,并在其中找到最重复的字符,结果我总是得到"-"(显然总是出现20000次(是";4〃;(我运行了好几次程序,总是得到相同的结果(。
我只是对这个事实感到好奇,想知道是否有人有技术解释,或者这真的只是巧合。
谢谢!
这是我用来生成5000个随机UUID的函数。
UUID.randomUUID().toString();
它们看起来像:
xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx
其中M和N肯定不是随机的(它们表示版本和变体(,其余的也可能不是随机的,这取决于你使用的模式。您编写的代码将获得版本4,这意味着"M"始终为4,"N"的一半也是不变的。你会得到122个比特的随机性;而不是128。
4是最常见的数字,因为根据UUID设计,第13个"数字"总是4。