我正在编写一个 android 应用程序,通过这个公式为每个客户端提供一个长用户 ID:
long userID = (long) (Math.random() * 2 * Long.MAX_VALUE - Long.MAX_VALUE);
我是否正确利用了 MAX_VALUE,即利用了每一个可能的长期价值?
我有 10k、100k 或 1m 用户的两个重复用户 ID 的可能性有多大?我怎么能计算这个?
我正在编写一个 android 应用程序,通过这个公式为每个客户端提供一个长用户 ID:
long userID = (long) (Math.random() * 2 * Long.MAX_VALUE - Long.MAX_VALUE);
我是否正确利用了 MAX_VALUE,即利用了每一个可能的长期价值?
我有 10k、100k 或 1m 用户的两个重复用户 ID 的可能性有多大?我怎么能计算这个?
您可以使用以下任何一种:
使用以毫秒表示的当前日期和时间,而不是使用随机获取长用户 ID。
使用随机 UUID
https://github.com/bigfatsea/SUID简单唯一标识符
您可能会期望 136 年后在同一实例上出现重复的 id,这对于中小型项目来说已经足够了。
例子:
long id = SUID.id().get();
您可以使用生成随机 UUIDrandomUUID()