数据结构与算法学习(四)——对数器

1. 对数器的说明

先直接上左神对对数器的总结:

  1. 有一个要测的方法a;
  2. 实现复杂度不好,但易实现的方法b;
  3. 实现一个样本随机产生器;
  4. 把方法a和方法b跑相同的随机样本,看结果是否相同;
  5. 如果有一个随机样本使结果不一致,打印样本进行人工干预,改正方法a和方法b;
  6. 当样本数量很多时比对测试依然正确,则a正确。

左神概括精简干练,我再做一点多余的说明吧(手动)。

首先,要明确该方法是用于验证算法正确性的,即如果你想到一个很好的,复杂度低的算法,但你不能确定你想的算法是否正确,这时,对数器简直就是一个神器。

对数器是使用大量的随机数据验证算法。使用对数器,

  • 首先,你要有一个已经实现的方法b,方法b主要是提供用于验证方法a的数据,不需要太好的复杂度;
  • 另外,由于需要大量的用于验证的数据,需要一个样本随机产生器,用于生成随机样本;
  • 将随机样本带入方法a和方法b,比较两种方法产生的结果,看是否相同;
  • 方法a和方法b产生的结果可能存在一些不同,这是我们就需要将这些不同的地方打印出来,进行人工干预,看哪儿不同,进行相应的修改,在代入随机样本实验;
  • 如果代入的样本容量足够多时,方法a和方法b的输出结果仍然相同,则可以认为方法a时正确的。

对数器的举例(待更新)

你可能感兴趣的:(数据结构与算法学习(四)——对数器)