1. 对数器的说明
先直接上左神对对数器的总结:
- 有一个要测的方法a;
- 实现复杂度不好,但易实现的方法b;
- 实现一个样本随机产生器;
- 把方法a和方法b跑相同的随机样本,看结果是否相同;
- 如果有一个随机样本使结果不一致,打印样本进行人工干预,改正方法a和方法b;
- 当样本数量很多时比对测试依然正确,则a正确。
左神概括精简干练,我再做一点多余的说明吧(手动)。
首先,要明确该方法是用于验证算法正确性的,即如果你想到一个很好的,复杂度低的算法,但你不能确定你想的算法是否正确,这时,对数器简直就是一个神器。
对数器是使用大量的随机数据验证算法。使用对数器,
- 首先,你要有一个已经实现的方法b,方法b主要是提供用于验证方法a的数据,不需要太好的复杂度;
- 另外,由于需要大量的用于验证的数据,需要一个样本随机产生器,用于生成随机样本;
- 将随机样本带入方法a和方法b,比较两种方法产生的结果,看是否相同;
- 方法a和方法b产生的结果可能存在一些不同,这是我们就需要将这些不同的地方打印出来,进行人工干预,看哪儿不同,进行相应的修改,在代入随机样本实验;
- 如果代入的样本容量足够多时,方法a和方法b的输出结果仍然相同,则可以认为方法a时正确的。