我有一个程序要从一种语言移植到另一种语言。我正在使用我自己开发的翻译程序来做这件事。这样做的相关结果是,我预计我的系统中存在许多我需要查找和修复的错误。每个错误都可能出现在许多地方,修复它会修复它出现的所有地方的错误。(我觉得有一个非常大的杠杆,我在短端推动,我非常努力,但是当事情移动时,它们会移动很多。)
我有能力运行执行日志差异,所以我通过测试套件在偏离原始程序执行之前可以运行它多远来衡量我的进度。(感谢 BeyondCompare 的 [whatever you want],它适用于 ~1M 行文件:D)
问题是:如果我将运行长度绘制为时间的函数,我应该期望看到什么形状?(更多时间 == 删除更多错误)
我的第一个想法是类似于泊松分布。然而,因为修复每个错误也会删除所有其他出现的错误,这不应该是完全正确的。
(顺便说一句,这可能对估计程序何时完成调试具有现实意义。)
编辑: 问题的更抽象的陈述:
给定从范围 [0,M](其中 N>>M)中选择的 N 个整数的有序列表,该列表沿列表中的位置均匀分布,但不一定具有数字的均匀分布。最后一个“新”号码的预期位置是什么?倒数第二个呢?ETC?