我必须测试生成随机密钥的应用程序。密钥是根据系统状态生成的。有1,7668470647783843295832975007429e + 72州可能。状态变化是伪随机的。如何找到系统的第一个重复值状态?
我做了一些尝试,但我的解决方案很远。现在我使用sqlite来存储数据,因为如果我尝试使用系统内存,我会捕获内存不足的异常。使用sqlite它很慢..我目前使用的Sqlite只包含一个包含系统状态的文本字段(主键)。
我正在寻找关于如何找到系统生成的第一个重复值的想法。谢谢你!
答案 0 :(得分:2)
这是一个足够大的状态空间,我猜你不太可能实际上遇到重复的值,但你几乎肯定想要避免实际存储所有中间值。我会尝试基于双指针循环检测算法之一:https://en.wikipedia.org/wiki/Cycle_detection