iOS开发 - NSUUID的重复概率问题

文章目录

概述

对于 [[NSUUID UUID] UUIDString] 产生的字符串有可能重复吗?概率是多少?code代码时是否需要考虑?

探索

根据 NSUUID的苹果官方说明 阐述:

UUIDs (Universally Unique Identifiers), 也被称作 GUIDs (Globally Unique Identifiers) 或者 IIDs (Interface Identifiers), 是128位值. NSUUID创建的uuid符合RFC 4122 version 4,使用随机字节创建。

可见UUID的分为5个版本,version 1 ,version 2 , version 3-5 ,version 4 ,那么看下NSUUID的version 4的重复概率是多少?

  • version 4 的重复概率

对于version 4, 文章中的 The Random UUID probability of duplicates 计算了这个概率,由于version 4 在总共128位中,2位表示rfc 4122(“leach salz”)uuid,4位表示版本(0100表示“随机生成”),因此随机生成的uuid有122个随机位。

计算概率是0.00000000006(6×10−11),相当在大约100年的时间内每秒生成10亿个uuid之后,创建一个副本的概率才会达到50%

所以重复的概率可以视为 0


参考文章:
1.https://stackoverflow.com/questions/1155008/how-unique-is-uuid/6963990#6963990
2.Random_UUID_probability_of_duplicates
3.https://developer.apple.com/documentation/foundation/nsuuid
4.https://nshipster.com/uuid-udid-unique-identifier/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值