生成随机长用户ID

Ull*_*mid 2 java random statistics stochastic long-integer

我正在编写一个Android应用程序,通过以下公式为每个客户端提供长用户ID:

long userID = (long) (Math.random() * 2 * Long.MAX_VALUE - Long.MAX_VALUE);

我是否正确使用MAX_VALUE,即利用每一个可能的长值?

我有两个重复用户ID与10k,100k或100万用户的几率是多少?我该如何计算呢?

Geo*_*scu 8

您可以使用下面提到的任何一种:

  1. 而不是使用随机获取长用户ID,使用以毫秒表示的当前日期和时间.

  2. 使用随机UUID


Big*_*Sea 5

https://github.com/bigfatsea/SUID简单唯一标识符

136年后,您可能会在同一个实例上看到重复的ID,这对于中小型项目来说已经足够了.

例:

long id = SUID.id().get();
Run Code Online (Sandbox Code Playgroud)