灵感来自this question ,询问者假设系统的用户很少会在完全相同的时间执行某些操作。
根据我所知道的做出这样的假设,我可以保证用户实际上会同时做一些事情。但是,我不知道如何实际计算预期的碰撞频率。
例如如果我们假设每个用户每 3 分钟执行一次操作,并且我们的计时器实际上只精确到毫秒,那么计算冲突频率的公式是什么?
鉴于生日问题的维基百科条目可以概括为公式 其中 d 是 180,000 毫秒,p 是碰撞概率。
因此,对于 3 个用户来说,在任何给定的 3 分钟时间内,我们得到的发生冲突的概率为 2.4996E-05。
问题就变成白天发生碰撞的可能性有多大? 工作日中有 60-*60*8/3 = 9600 个 3 分钟时段,则任意一天发生碰撞的概率为 1-((1-2.4996E-05)^9600) = 21%。事情发展成梨形的可能性很大。
最佳答案
3分钟后你将有180000毫秒。如果您知道用户数量,则可以使用 Birthday Paradox 的概率以确定碰撞的可能性。
还要考虑到您的计时器可能不会精确到毫秒,即使它可能以毫秒为单位进行测量。许多计时器基于每秒运行远少于 1000 次的滴答。
关于datetime - 如何计算预期碰撞频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5086623/