记录下笔记。
对数器的概念和作用
对数器主要用来测试自己写的程序是否完全正确。该方法通过大量的随机数据进行验证。有时候做算法题可能无法短时间内,或者很难推导出正确的数学式子(比如贪心算法),来验证自己算法的正确,这时候就需要大量的随机样本进行测试验证。
对数器的使用方法
- 有一个你想要测的方法a;
- 实现一个绝对正确但是复杂度不好的方法b;
- 实现一个随机样本产生器;(程序1)
- 实现比对的方法;(程序2)
- 把方法a和方法b比对很多次来验证方法a是否正确;
- 如果有一个样本使得比对出错,打印样本分析是哪个方法出错;
- 当样本数量很多时比对测试依然正确,可以确定方法a已经正确;
从上面几条可以看出,使用对数器验证,首先需要一个自己的测试程序,一个绝对正确的程序(很容易想到的方法,但复杂度高),然后最重要的就是随机样本产生程序1、比对程序2,错误样本打印什么的都是顺带操作了。所以我们需要写两个程序来验证即可。
PS:实际也可以用测试程序先检验方法b的绝对准确性,因为有时候我们对于复杂度高程序b的准确性也无法确定。
对于随机样本发生器,便需要引进随机数,产生不同的数据结构,这个根据算法题目的要求而改变,例如:数组(最常见),二叉树,堆等等。