1. 對(duì)數(shù)器的說明
先直接上左神對(duì)對(duì)數(shù)器的總結(jié)??:
- 有一個(gè)要測(cè)的方法a;
- 實(shí)現(xiàn)復(fù)雜度不好褪贵,但易實(shí)現(xiàn)的方法b掂之;
- 實(shí)現(xiàn)一個(gè)樣本隨機(jī)產(chǎn)生器;
- 把方法a和方法b跑相同的隨機(jī)樣本脆丁,看結(jié)果是否相同世舰;
- 如果有一個(gè)隨機(jī)樣本使結(jié)果不一致,打印樣本進(jìn)行人工干預(yù)槽卫,改正方法a和方法b跟压;
- 當(dāng)樣本數(shù)量很多時(shí)比對(duì)測(cè)試依然正確,則a正確歼培。
左神概括精簡(jiǎn)干練震蒋,我再做一點(diǎn)多余的說明吧(手動(dòng)??)。
首先躲庄,要明確該方法是用于驗(yàn)證算法正確性的查剖,即如果你想到一個(gè)很好的,復(fù)雜度低的算法噪窘,但你不能確定你想的算法是否正確笋庄,這時(shí),對(duì)數(shù)器簡(jiǎn)直就是一個(gè)神器倔监。
對(duì)數(shù)器是使用大量的隨機(jī)數(shù)據(jù)驗(yàn)證算法直砂。使用對(duì)數(shù)器,
- 首先浩习,你要有一個(gè)已經(jīng)實(shí)現(xiàn)的方法b静暂,方法b主要是提供用于驗(yàn)證方法a的數(shù)據(jù),不需要太好的復(fù)雜度瘦锹;
- 另外籍嘹,由于需要大量的用于驗(yàn)證的數(shù)據(jù)闪盔,需要一個(gè)樣本隨機(jī)產(chǎn)生器弯院,用于生成隨機(jī)樣本;
- 將隨機(jī)樣本帶入方法a和方法b泪掀,比較兩種方法產(chǎn)生的結(jié)果听绳,看是否相同;
- 方法a和方法b產(chǎn)生的結(jié)果可能存在一些不同异赫,這是我們就需要將這些不同的地方打印出來椅挣,進(jìn)行人工干預(yù)头岔,看哪兒不同,進(jìn)行相應(yīng)的修改鼠证,在代入隨機(jī)樣本實(shí)驗(yàn)峡竣;
- 如果代入的樣本容量足夠多時(shí),方法a和方法b的輸出結(jié)果仍然相同量九,則可以認(rèn)為方法a時(shí)正確的适掰。