是否有任何可能性在非常大的数字部分(超过C/C++中的最大整数类型的最大值,比如2^20)中找到循环长度,而不涉及磁盘去执行它?最好的情况是按顺序分析它们,因为它们是从标准输入到达的,但我确信这是不可能的,我需要将它们存储在内存中。但我希望我错了。数字值是整数,它们来自标准输入。在非常大的数字序列中查找期间
实施例: 输入:(1 2 3 ...(2^20个的三元组1 2 3)...... 1 2 3) 期望的结果:3
EDIT
让我们将周期看作一个周期(f(x)= f(x + t),对于某个t) - 寻找t的值 - 寻找t的值
假设操作存储器太少而无法存储所有数字(数字可能大于2^20),可能是gmp类型。
ummmm ......这样的 “循环” 你的意思是重复子? –
您可能必须解释为什么“3”是您示例中所需的结果。为什么不是1? –
因为3是循环的长度,所以更正 – deha