技巧 MAC OS 對拍程式

2022-05-28 03:27:09 字數 1684 閱讀 6770

**hist!

介紹

對拍是資訊學競賽中重要的技巧,它通過乙個效率低下但正確率可以保證的程式,利用龐大的隨機生成資料來驗證我們的高階演算法程式。對拍最大的優勢在於可以通過人力所不能及的速度和數量達到驗證的效果。下面我們來看一下簡單的對拍程式該如何編寫

舉例

給定乙個自然數n (n<=50000),求解1+2+3+...+n的和。

test1.cpp //演算法程式1

test2.cpp //演算法程式2

data.cpp //資料生成器

compare.cpp //比較程式

說明

test1.cpp和test2.cpp都是我們所寫的演算法程式,其中test1.cpp使用樸素的for迴圈求解,**如下:

test1.cpp

test2.cpp利用公式計算,**如下:

test2.cpp

data.cpp是我們寫的資料生成器

data.cpp

而compare.cpp則是對拍程式的主體

compare.cpp

將四個檔案編譯後的可執行檔案放到乙個資料夾裡,用mdfind 檔名 查詢檔案夾位址,cd進入這個資料夾,輸入 ./compare 即可執行。

tips

1.「./」表示當前目錄下,如果在終端中輸入的是./compare 的話就已經預設在當前目錄裡了,程式裡不寫「./」也是可行的。

2.diff函式在得到不同的比較值時會返回「1」。

3.mac os下對比是沒有提示的,知道有不同的結果出現時才有所提示。所以建議自己寫的時候附帶提示功能。

對拍是資訊學競賽中重要的技巧,它通過乙個效率低下但正確率可以保證的程式,利用龐大的隨機生成資料來驗證我們的高階演算法程式。對拍最大的優勢在於可以通過人力所不能及的速度和數量達到驗證的效果。下面我們來看一下簡單的對拍程式該如何編寫

舉例

給定乙個自然數n (n<=50000),求解1+2+3+...+n的和。

test1.cpp //演算法程式1

test2.cpp //演算法程式2

data.cpp //資料生成器

compare.cpp //比較程式

說明

test1.cpp和test2.cpp都是我們所寫的演算法程式,其中test1.cpp使用樸素的for迴圈求解,**如下:

test1.cpp

test2.cpp利用公式計算,**如下:

test2.cpp

data.cpp是我們寫的資料生成器

data.cpp

而compare.cpp則是對拍程式的主體

compare.cpp

將四個檔案編譯後的可執行檔案放到乙個資料夾裡,用mdfind 檔名 查詢檔案夾位址,cd進入這個資料夾,輸入 ./compare 即可執行。

tips

1.「./」表示當前目錄下,如果在終端中輸入的是./compare 的話就已經預設在當前目錄裡了,程式裡不寫「./」也是可行的。

2.diff函式在得到不同的比較值時會返回「1」。

3.mac os下對比是沒有提示的,知道有不同的結果出現時才有所提示。所以建議自己寫的時候附帶提示功能。

對拍程式寫法

一口毒奶 bat的寫法 echo off loop rand.exe in txt mycode.exe in txt myout.txt baoli.exe in txt baoliout.txt fc myout.txt baoliout.txt if not errorlevel 1 goto...

ACM程式對拍

刷過acm題的同學應該都有這種體會,感覺自己已經考慮的很充分了,但就是一直wa,這時候,如果有乙份能夠保證100 正確的 再加上題目資料比較好利用隨機數創造時,便可以使用對拍來找到錯在哪些資料上了。我們需要三個exe檔案加乙個bat檔案再加兩個txt檔案。首先我們先建立乙個資料夾,在資料夾裡新建乙個...

對拍程式c

對拍就是你給兩個程式和乙個隨機資料生成器,然後系統用隨機資料生成器的輸出資料作為你這兩個程式的輸入,比較這兩個程式的輸出,找到這兩個程式輸出不一樣的一組資料。data.exe是資料生成程式 test.exe是你需要檢查的程式 ac.exe是正確的程式 這三個程式需要放在同一目錄下,執行以下對拍程式即...